codeforces round 941div2(a,b,c)

题目链接
a,b各控了我半小时,后面博弈就没想出来了

A

大于等于 k k k的全能消去变成 k − 1 k-1 k1,再去结合小于 k k k的也全能消去变成 k − 1 k-1 k1

void solve()
{
    int n,k;cin>>n>>k;
    vector<int>a(n+1);
    bool flag=1;
    map<int,int>mp;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        mp[a[i]]++;
        if(mp[a[i]]>=k)flag=0;
    }
    if(flag||n==1){cout<<n<<'\n';return;}
    cout<<k-1<<'\n';
}

B

只需要判断,是否每条边都有B或W就行了


  void solve()
{
    int n,m;cin>>n>>m;
    vector<string>mv(n+1);
    for(int i=1;i<=n;i++)cin>>mv[i];
    map<char,int>mp;
    for(int i=0;i<m;i++){
        if(mv[1][i]=='B'){mp['B']++;break;}
    }
    for(int i=0;i<m;i++){
        if(mv[n][i]=='B'){mp['B']++;break;}
    }
    for(int i=1;i<=n;i++){
        if(mv[i][0]=='B'){mp['B']++;break;}
    }
    for(int i=1;i<=n;i++){
        if(mv[i][m-1]=='B'){mp['B']++;break;}
    }

    for(int i=0;i<m;i++){
        if(mv[1][i]=='W'){mp['W']++;break;}
    }
    for(int i=0;i<m;i++){
        if(mv[n][i]=='W'){mp['W']++;break;}
    }
    for(int i=1;i<=n;i++){
        if(mv[i][0]=='W'){mp['W']++;break;}
    }
    for(int i=1;i<=n;i++){
        if(mv[i][m-1]=='W'){mp['W']++;break;}
    }
    if(mp['B']==4||mp['W']==4)cout<<"YES"<<'\n';
    else cout<<"NO"<<'\n';
}

C

每轮有两种取法,若最小为 1 1 1则只能取 1 1 1,且会去掉一个或多个 1 1 1;否则可取 ( 1 , m i n ( a 1 , a 2... a n ) ) (1,min(a1,a2...an)) (1,min(a1,a2...an)),且可选择是否去掉一个或多个最小数。所以我们排序去重之后,找到第一个与前一位数相差不是 1 1 1的数,记录位置,则当操作到这个位置时,谁先手谁赢。需要特判一下 1 , 2 , 3 , 4... n 1,2,3,4...n 1,2,3,4...n

void solve()
{
    int n;cin>>n;
    vector<int>a(n+1);
    for(int i=1;i<=n;i++)cin>>a[i];
    sort(a.begin()+1,a.end());
    a.erase(unique(a.begin()+1,a.end()),a.end());
    //for(auto x:a)cout<<x<<' ';
    if(n==1){
        cout<<"Alice"<<'\n';
        return;
    }
    int t=0;
    int m=a.size()-1;
    for(int i=1;i<=m;i++){
        if(a[i]!=i){t=i;break;}
    }
    if(!t){
        if(m&1)cout<<"Alice"<<'\n';
        else cout<<"Bob"<<'\n';
        return;
    }
    if(t&1)cout<<"Alice"<<'\n';
    else cout<<"Bob"<<'\n'; 
}

相关推荐

  1. Codeforces Round 941 (Div. 2) ABC

    2024-07-19 11:12:04       31 阅读
  2. Codeforces Round 941 (Div. 2) F.Missing Subarray Sum

    2024-07-19 11:12:04       29 阅读
  3. codeforces round 941div2(a,b,c)

    2024-07-19 11:12:04       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 11:12:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 11:12:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 11:12:04       58 阅读
  4. Python语言-面向对象

    2024-07-19 11:12:04       69 阅读

热门阅读

  1. C++中传递指针和传递引用应用场合的区别

    2024-07-19 11:12:04       14 阅读
  2. Vue项目的构建方式

    2024-07-19 11:12:04       21 阅读
  3. 【算法】数组中的第K个最大元素

    2024-07-19 11:12:04       21 阅读
  4. AI一点通:向量数据库FAISS 平均延迟的测量

    2024-07-19 11:12:04       20 阅读
  5. Jenkins及其相关插件的具体流程

    2024-07-19 11:12:04       24 阅读
  6. 字母的大小写转换

    2024-07-19 11:12:04       18 阅读
  7. 第13章 专业英语

    2024-07-19 11:12:04       20 阅读
  8. 重置Kafka

    2024-07-19 11:12:04       17 阅读