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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[hdu1847]博弈,推理

發(fā)布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [hdu1847]博弈,推理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題意:一堆石子,有n個,兩個人輪流取,每次都只能取2的冪次方個數(shù),不能取的人輸

思路:首先0是必?cái)B(tài),2的所有冪次都是必勝態(tài)。由于選的數(shù)模3只能是1或2,恰好又都是2的冪次,0,、3都為必?cái)B(tài),猜想3的所有倍數(shù)也為必?cái)B(tài),證明如下:設(shè)狀態(tài)為x=3k,先手任選一個t,那么(x-t)%3不是1就是2,后手就取(x-t)%3,使得先手面臨的狀態(tài)始終是3的倍數(shù),并且只要先手可以取,那么后手也就可以取,所以3的倍數(shù)都是必?cái)B(tài)。對于x=3k+p,p=1或2的狀態(tài),先手都可以將其變成必?cái)B(tài),即先手取p=x%3即可,因此為必勝態(tài)。


1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859/*?********************************************************************************?*/#include?<iostream>?????????????????????????????????????????????????????????????????//#include?<cstdio>???????????????????????????????????????????????????????????????????//#include?<cmath>????????????????????????????????????????????????????????????????????//#include?<cstdlib>??????????????????????????????????????????????????????????????????//#include?<cstring>??????????????????????????????????????????????????????????????????//#include?<vector>???????????????????????????????????????????????????????????????????//#include?<ctime>????????????????????????????????????????????????????????????????????//#include?<deque>????????????????????????????????????????????????????????????????????//#include?<queue>????????????????????????????????????????????????????????????????????//#include?<algorithm>????????????????????????????????????????????????????????????????//#include?<map>??????????????????????????????????????????????????????????????????????//#include?<cmath>????????????????????????????????????????????????????????????????????//using?namespace?std;????????????????????????????????????????????????????????????????//????????????????????????????????????????????????????????????????????????????????????//#define?pb?push_back????????????????????????????????????????????????????????????????//#define?mp?make_pair????????????????????????????????????????????????????????????????//#define?X?first?????????????????????????????????????????????????????????????????????//#define?Y?second????????????????????????????????????????????????????????????????????//#define?all(a)?(a).begin(),?(a).end()???????????????????????????????????????????????//#define?fillchar(a,?x)?memset(a,?x,?sizeof(a))??????????????????????????????????????//????????????????????????????????????????????????????????????????????????????????????//typedef?pair<int,?int>?pii;?????????????????????????????????????????????????????????//typedef?long?long?ll;???????????????????????????????????????????????????????????????//typedef?unsigned?long?long?ull;?????????????????????????????????????????????????????//????????????????????????????????????????????????????????????????????????????????????//#ifndef?ONLINE_JUDGE????????????????????????????????????????????????????????????????//void?RI(vector<int>&a,int?n){a.resize(n);for(int?i=0;i<n;i++)scanf("%d",&a[i]);}????//void?RI(){}void?RI(int&X){scanf("%d",&X);}template<typename...R>????????????????????//void?RI(int&f,R&...r){RI(f);RI(r...);}void?RI(int*p,int*q){int?d=p<q?1:-1;??????????//while(p!=q){scanf("%d",p);p+=d;}}void?print(){cout<<endl;}template<typename?T>??????//void?print(const?T?t){cout<<t<<endl;}template<typename?F,typename...R>??????????????//void?print(const?F?f,const?R...r){cout<<f<<",?";print(r...);}template<typename?T>???//void?print(T*p,?T*q){int?d=p<q?1:-1;while(p!=q){cout<<*p<<",?";p+=d;}cout<<endl;}???//#endif?//?ONLINE_JUDGE??????????????????????????????????????????????????????????????//template<typename?T>bool?umax(T&a,?const?T&b){return?b<=a?false:(a=b,true);}????????//template<typename?T>bool?umin(T&a,?const?T&b){return?b>=a?false:(a=b,true);}????????//template<typename?T>????????????????????????????????????????????????????????????????//void?V2A(T?a[],const?vector<T>&b){for(int?i=0;i<b.size();i++)a[i]=b[i];}????????????//template<typename?T>????????????????????????????????????????????????????????????????//void?A2V(vector<T>&a,const?T?b[]){for(int?i=0;i<a.size();i++)a[i]=b[i];}????????????//????????????????????????????????????????????????????????????????????????????????????//const?double?PI?=?acos(-1.0);???????????????????????????????????????????????????????//const?int?INF?=?1e9?+?7;????????????????????????????????????????????????????????????//????????????????????????????????????????????????????????????????????????????????????///*?--------------------------------------------------------------------------------?*/int?main()?{#ifndef?ONLINE_JUDGE????freopen("in.txt",?"r",?stdin);????//freopen("out.txt",?"w",?stdout);#endif?//?ONLINE_JUDGE????int?n;????while?(cin?>>?n)?{????????puts(n?%?3??"Kiki"?:?"Cici");????}????return?0;}/*?********************************************************************************?*/

轉(zhuǎn)載于:https://www.cnblogs.com/jklongint/p/4700715.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的[hdu1847]博弈,推理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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