题目链接:点击打开链接
解题思路:
在1到n之间插入+、-号,两个队伍都使用最优策略。看最后所得结果的奇偶性断胜负。
贪心即可。贪的原则是首先明确这场是谁放置加减号,如果是第一个队伍,那么因为结果是偶数对他们有利,那么我们就尽可能使结果为偶。无论加减都不能使结果为偶数的话,那么索性直接加上即可。同理,对于第二支队伍,只要尽量使当前结果为奇数即可。
完整代码:
#include <algorithm> #include <iostream> #include <cstring> #include <climits> #include <cstdio> #include <string> #include <cmath> #include <map> #include <queue> using namespace std; typedef long long LL; const int MOD = int(1e9)+7; const int INF = 0x3f3f3f3f; const double EPS = 1e-9; const double PI = acos(-1.0); //M_PI; int main() { #ifdef DoubleQ freopen("in.txt","r",stdin); #endif std::ios::sync_with_stdio(false); std::cin.tie(0); int n; while(cin >> n) { int sum = 1 , k = 2; for(int i = 1 ; i <= n - 1 ; i ++) { if(i % 2) { if( (sum + k) % 2 == 0) sum += k; else if( (sum - k) % 2 == 0) sum -= k; else sum += k; } else { if( (sum + k) % 2 ) sum += k; else if( (sum - k) % 2 ) sum -= k; else sum += k; } k ++; } if(sum % 2 == 0) cout << "black" << endl; else cout << "grimy" << endl; } }
原文地址:http://blog.csdn.net/u013447865/article/details/44037833