本文主要是介绍Ural1924(模拟+贪心),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:点击打开链接
解题思路:
在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 DoubleQfreopen("in.txt","r",stdin);#endifstd::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;elsesum += k;}else{if( (sum + k) % 2 )sum += k;else if( (sum - k) % 2 )sum -= k;elsesum += k;}k ++;}if(sum % 2 == 0)cout << "black" << endl;elsecout << "grimy" << endl;}
}
更多精彩请访问: 点击打开链接
这篇关于Ural1924(模拟+贪心)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!