日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索

發(fā)布時間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述

TBL和X用巧克力棒玩游戲。每次一人可以從盒子里取出若干條巧克力棒,或是將一根取出的巧克力棒吃掉正整數(shù)長度。TBL先手兩人輪流,無法操作的人輸。 他們以最佳策略一共進行了10輪(每次一盒)。你能預測勝負嗎?

輸入

輸入數(shù)據(jù)共20行。 第2i-1行一個正整數(shù)Ni,表示第i輪巧克力棒的數(shù)目。 第2i行Ni個正整數(shù)Li,j,表示第i輪巧克力棒的長度。

輸出

輸出數(shù)據(jù)共10行。 每行輸出“YES”或“NO”,表示TBL是否會贏。如果勝則輸出"NO",否則輸出"YES"

樣例輸入

3
11 10 15
5
13 6 7 15 3
2
15 12
3
9 7 4
2
15 12
4
15 12 11 15
3
2 14 15
3
3 16 6
4
1 4 10 3
5
8 7 7 5 12

樣例輸出

YES
NO
YES
YES
YES
NO
YES
YES
YES
NO

提示

20%的分數(shù),N<=5,L<=100。
40%的分數(shù),N<=7。 50%的分數(shù),L<=5,000。
100%的分數(shù),N<=14,L<=1,000,000,000。

?

先手如果想贏只要第一次將最多的異或和為0的巧克力棒(即剩余的巧克力棒無論如何取都沒有異或和為0的方案)都拿出來即可。這樣先手就將必敗態(tài)(異或和為0)留給了后手,后手無論是吃巧克力還是取巧克力都會將必勝態(tài)(異或和不為0)留給先手。那么只要搜索一下所有方案看是否有異或和為0的方案即可,因為有異或和為0的方案就說明先手能取最多異或和為0的巧克力棒。

#include<set> #include<map> #include<queue> #include<cmath> #include<stack> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define ll long long using namespace std; int T; int n; int a[20]; int ans; int num; void dfs(int dep,int x) {if(dep==n+1){if(num==1&&x==0){ans=1;}return ;}dfs(dep+1,x);num=1;dfs(dep+1,x^a[dep]); } int main() {T=10;while(T--){scanf("%d",&n);num=0;ans=0;for(int i=1;i<=n;i++){scanf("%d",&a[i]);}dfs(1,0);if(ans==0){printf("YES\n");}else{printf("NO\n");}} }

轉(zhuǎn)載于:https://www.cnblogs.com/Khada-Jhin/p/9609654.html

總結(jié)

以上是生活随笔為你收集整理的BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。