Codeforces Round #573 (Div. 2)

Posted starve

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #573 (Div. 2)相关的知识,希望对你有一定的参考价值。

D. Tokitsukaze, CSL and Stone Game

题意:有n堆石头,每人每次只能去一颗石子,若轮到当前人没任何一堆石子可以取或当前人取到后剩下有俩堆石子个数相同则当前人输;

给定石子序列。

分析:1、若有类似“2 3 3 ”则后手胜,因为有这个序列就必须在这个序列中去石子(因为如果在这个序列以外取子,则会导致输的后者情况),但在这个序列中取不到可解情况,所以该状态为必败态;

    2、若序列中有俩对相同的石子,则后手胜;

   3、除1、2情况外就把利用sum+起来,每个加就+a[i]-(i+1)    为了把他提到前面他不能再动的最优状态(因为俩者都采取最优策略!!!)

技术图片
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[100005];
int main()
    int n;
    ll sum=0;
    cin>>n;
    
    for(int i=1;i<=n;i++)
        cin>>a[i],sum+=a[i];
    sort(a+1,a+1+n);
    int countt=0;
    for(int i=1;i<n;i++)
        if(a[i]==a[i+1])
            if(a[i]==0||(i>1&&a[i-1]+1==a[i])||++countt>1)
                return puts("cslnb"),0;
            
        
    
    sum-=n*(n-1)/2;
    if(sum%2==0)
        puts("cslnb");
    else
        puts("sjfnb");
    return 0;
    
View Code

 

以上是关于Codeforces Round #573 (Div. 2)的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #573 (Div. 2)

Codeforces Round #573 (Div. 2) E. Tokitsukaze and Duel (博弈)

Codeforces Round #573 (Div. 2) A B C

Codeforces Round #436 E. Fire(背包dp+输出路径)

[ACM]Codeforces Round #534 (Div. 2)

Codeforces Round #726 (Div. 2) B. Bad Boy(贪心)