题目链接:Problem - E - Codeforces
题意:给一个 n 个数的数组(由1-n乱序),所有元素初始被染成 红色 ,
玩家轮流。在他们的回合,玩家可以做以下三个动作之一:
- 重新排列排列的元素,使所有红色元素保持其位置(请注意,蓝色元素可以相互交换,但不是强制性的);
- 将一个红色元素的颜色更改为蓝色;
- 跳过转弯。
如果排序为升序,输出 First ,如果为降序输出 Second ,如果平局输出 Tie。
题解:初始序列有一些是 First 不用动的,有一些是 Second 不用动的,还有一些是都需要染色的。两个人赢的最佳策略是先染自己需要染的,尽可能让对方多去染 公共 要染的。如果最后剩一个没有染,这种情况为平局。
借鉴:E. Permutation Game(game)_WYW___的博客-CSDN博客文章来源:https://www.toymoban.com/news/detail-549952.html
文章来源地址https://www.toymoban.com/news/detail-549952.html
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5,mod=998244353;
int w;
int main()
{
int T=1;
cin>>T;
while(T--)
{
int m;
cin>>m;
int x,y;
int dia,dib,dix;
dia=dib=dix=x=y=0;
for(int i=1;i<=m;i++)
{
cin>>w;
if(w==i) x++;
else if(w==m-i+1) y++;
else dix++;
}
dia=m-x-dix;dib=m-y-dix;
if(dia+dix<=dib) cout<<"First\n";
else if(dia>dib+dix) cout<<"Second\n";
else cout<<"Tie\n";
}
return 0;
}
到了这里,关于cf1772 E. Permutation Game的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!