codeforces 1147 C

Posted mxang

tags:

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

一开始考虑到了1的个数。。。
后来发现应该是最小值的个数。
考虑两种情况。
最小值的个数不大于一半,那么我们可以选一些石子使得最小值的个数大于一半。
最小值的个数大于一半的话,我们不管怎么选,都会使得最小值的个数小于一半。

然后我们很容易发现后者是必败态,比方说1111这样子。
那么前者就是必胜态了。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,a[55];
int main()
    ios::sync_with_stdio(false);
    cin>>n;int tmp = 0;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    
    for(int i=1;i<=n;i++)
        if(a[i]==*min_element(a+1,a+1+n))tmp++;
    
    if(tmp<=n/2)
        cout<<"Alice"<<endl;
    else
        cout<<"Bob"<<endl;
    

以上是关于codeforces 1147 C的主要内容,如果未能解决你的问题,请参考以下文章

[1147].段式回文

1147 Heaps

1147: 零起点学算法54——Fibonacc

XDOJ_1147_贪心

lightoj-1147 - Tug of War(状压dp)

PAT甲级——1147 Heaps30