首页 > 其他分享 >Codeforces Global Round 22 C

Codeforces Global Round 22 C

时间:2022-10-02 02:44:24浏览次数:50  
标签:Alex 22 int Global Codeforces 回合 Bob 我们 define

C. Even Number Addicts

本人没学过博弈论
https://zhuanlan.zhihu.com/p/569862415的指导下写一些自己的理解

首先我们可以想到的就是搜索!
最坏情况下应该是2^50次方
这样我们就可以用一些优化来暴力这道题
这里我们想到的是记忆化搜索
我们设dp[i][j][0/1][0/1]我们还剩i个偶数j个奇数Alex现在是0/1现在是0/1(Alex Bob)的回合并且表示这个状态下(Alex Bob)赢
这样显然是可以表示全的
我们思考转移 因为我们是搜索顺序 我们先考虑最终状态
要是我们当前Alex的回合 我们为偶数 显然是返回1 表示赢!
要是我们当前Alex的回合 我们为奇数 显然是返回0 表示输!
要是我们当前Bob的回合 我们为奇数 显然是返回1 表示赢!
要是我们当前Bob的回合 我们为偶数 显然是返回0 表示输!
当然我们递归回去的时候 就是另一个人的另一个状态 要是我们返回Bob输 那么Alex就一定赢
我们每次都play optically 显然我们要能抓住对面把柄 我们就直接抓住!
所以我们转移时直接|起来即可 别忘了因为传递给的是另一个人 显然我们要取一次反!

#include <bits/stdc++.h>
using namespace std;
const int N = 5e5+10;
const int M = 998244353;
const int mod = 998244353;
#define int long long
#define endl '\n'
#define all(x) (x).begin(),(x).end()
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define _ 0
#define pi acos(-1)
#define INF 0x3f3f3f3f3f3f3f3f
#define fast ios::sync_with_stdio(false);cin.tie(nullptr);
int up(int a,int b){return a<0?a/b:(a+b-1)/b;}
int dp[110][110][2][2];
bool dfs(int x,int y,int cur,int turn){
    int &v = dp[x][y][cur][turn];
    if(~v) return v;
    if(!x && !y) return !cur ^ turn;
    int res = 0;
    if(x) res |= !dfs(x - 1, y, cur, !turn);
    if(y) res |= !dfs(x, y - 1, cur ^ !turn, !turn);
    return v = res;
}
void solve() {
    int n;cin>>n;
    memset(dp,-1,sizeof dp);
    vector<int>a(n+1);
    int n1=0,n0=0;
    for(int i=1;i<=n;i++){
        int x;cin>>x;
        a[i]=x%2;
        a[i]?n1++:n0++;
    }
    puts(dfs(n0,n1,0,0)?"Alice":"Bob");
}
signed main(){
    fast
    int T;cin>>T;
    while(T--) {
        solve();
    }
    return ~~(0^_^0);
}

标签:Alex,22,int,Global,Codeforces,回合,Bob,我们,define
From: https://www.cnblogs.com/ycllz/p/16748180.html

相关文章

  • 乘风破浪,遇见未来新能源汽车(Electric Vehicle)之特斯拉2022 AI Day,从四足特斯拉向二
    特斯拉机器人还有很长的路要走,但这条路已经越走越快。今天,特斯拉的第二届AIDay终于正式召开了。AIDay是特斯拉的年度活动之一,其他的固定活动还包括BatteryDay、Auton......
  • 工作感受月记202210月
    2022年10月01号国庆长假值下午班。2点至11点。今天平安度过,可惜的是,休息的七天长假并不是我期待的那样啊!对于这次的7天长假,我很失望。今天做什么事情都是毛躁的。。。......
  • Codeforces Global Round 22 D
    D.PermutationAddicts我们观察给的条件发现不是那么明朗我们把x变成ai看看ifa[i]<=kb[a[i]]:=a[j](j<i)&&a[j]>k如果没有就把b[a[i]]:=n+1肯定还是>k的这......
  • 2022-2023-1 20221318 《计算机基础和程序设计》第五周学习总结
    作业信息这个作业属于那个班级https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03作业目标学习......
  • 2022 牛客多校题解
    2022牛客多校题解Contest1JContest2JContest3HHack(SAM)枚举B中的右端点,查询最长在A串中向右可以延伸多长。考虑对A串建立一个SAM,然后对于B串从左到右跑SAM的D......
  • Windows 11升级22H2
    Windows11升级22H21.下载Windows1122H2镜像访问MSDNITellYou下载2.添加注册表项绕过Windows11检测参考这篇文章,以管理员权限运行命令行,输入:regadd"HKLM\SY......
  • 闲话 22.10.1
    闲话这才是真正的闲话最后讲了一下求导和积分但是感觉没几个人听听了也没几个人会——bycrs_line如果有不会的东西都可以来找我!给solution引流但是高数很多东西真......
  • 【闲话】2022.10.01
    今天早上下雨充分证明了\(\texttt{雨假同期命题}\)的正确性但是国庆没有放假老天爷:玩我呢早上:\(\textsf{bikuhiku}\):完蛋,早上没外套,我再拿一件吧早操前:\(\texts......
  • The 2022 ICPC Asia Regionals Online Contest (II)部分题解
    ......
  • 2022-2023-1 20201324《信息安全系统设计与实现(上)》第11章
    目录1EXT2文件系统2EXT2文件系统数据结构(1)通过mkfs创建虚拟磁盘(2)虚拟磁盘布局3邮差算法(1)将索引节点号转换为磁盘上的索引节点41级文件系统函数(1)手动实现mkdir(2)手动实现......