当前位置: 首页 > news >正文

宇宙企画网站无锡品牌网站建设网站

宇宙企画网站,无锡品牌网站建设网站,东莞网站设,免费的国外云服务器目录 1 基础知识2 模板3 工程化 1 基础知识 #xff08;一#xff09; Nim游戏#xff1a; n n n堆物品#xff0c;每堆有 a i a_i ai​个#xff0c;两个玩家轮流取走任意一堆的任意个物品#xff0c;但不能不取。取走最后一个物品的人获胜。 结论#xff1a;如果这n… 目录 1 基础知识2 模板3 工程化 1 基础知识 一 Nim游戏 n n n堆物品每堆有 a i a_i ai​个两个玩家轮流取走任意一堆的任意个物品但不能不取。取走最后一个物品的人获胜。 结论如果这n个数异或之和为0则先手必败否则先手必胜。 代码表示为 #include iostreamusing namespace std;int main() {int n;cin n;int res 0;while (n--) {int x;cin x;res res ^ x;}if (res) puts(Yes);else puts(No);return 0; }二 集合Nim游戏在Nim游戏的基础上对每次取走的石子做了限制每次取走的石子数必须在集合 S S S内。判断是否先手必胜。 抽象建模为 有向图游戏和SG函数在一个有向无环图中只有一个起点上面有一个棋子两个玩家轮流沿有向边推动棋子不能走的玩家判负。 定义mex函数的值为不属于集合S中的最小非负整数即 m e x ( S ) m i n { x } ( x ∉ S , x ∈ N ) mex(S)min\{x\} \ (x\notin S, x\in N) mex(S)min{x} (x∈/S,x∈N) 例如mex({0,2,3}) 1, mex({1,2}) 0。 对于状态 x x x和它的所有 k k k个后继状态 y 1 , y 2 , ⋯ , y k y_1,y_2,\cdots,y_k y1​,y2​,⋯,yk​定义SG函数 S G ( x ) m e x { S G ( y 1 ) , S G ( y 2 ) , ⋯ , S G ( y k ) } SG(x)mex\{SG(y_1), SG(y_2), \cdots, SG(y_k)\} SG(x)mex{SG(y1​),SG(y2​),⋯,SG(yk​)} 而对于由n个有向图组成的组合游戏设它们的起点分别为 s 1 , s 2 , ⋯ , s n s_1,s_2,\cdots,s_n s1​,s2​,⋯,sn​则有定理当且仅当这 n n n个数 S G ( s 1 ) , S G ( s 2 ) , ⋯ , S G ( s n ) SG(s_1),SG(s_2),\cdots,SG(s_n) SG(s1​),SG(s2​),⋯,SG(sn​)的异或和不为0时这个游戏是先手必胜的否则是先手必败的。 C代码如下 #include iostream #include unordered_set #include cstringusing namespace std;const int N 110, M 1e4 10; int n, m; int s[N]; //每次可以取的石子数目 int f[M]; //这堆有x个石子求sg[x]的值int sg(int x) {if (f[x] ! -1) return f[x];unordered_setint S;//x能走到的结点的sg函数值for (int i 0; i n; i) {if (x - s[i] 0) S.insert(sg(x-s[i]));}for (int i 0; ; i) {if (S.count(i) 0) {f[x] i;break;}}return f[x]; }int main() {cin n;for (int i 0; i n; i) cin s[i];int res 0;memset(f, -1, sizeof f);cin m;while (m--) {int x;cin x;res ^ sg(x);}if (res) puts(Yes);else puts(No);return 0; }2 模板 暂无。。。 3 工程化 题目1拆分Nim游戏取走一堆放回两堆规模更小的石子。 解题思路重点在于如何确认某一堆的sg值这样考虑遍历两堆规模更小的石子就是它的下一步状态求得它们的sg值进行mex操作即可得到这堆石子的sg值。 C代码如下 #include iostream #include unordered_set #include cstringusing namespace std;const int N 110;int n; int f[N]; //sg值int sg(int x) {if (f[x] ! -1) return f[x];//x可以走到的状态的sg值unordered_setint S;for (int i 0; i x; i) {for (int j 0; j i; j) {S.insert(sg(i) ^ sg(j));}}//mex操作for (int i 0; ; i) {if (!S.count(i)) {return f[x] i;}} }int main() {memset(f, -1, sizeof f);cin n;int res 0;for (int i 0; i n; i) {int x;cin x;res ^ sg(x);}if (res) puts(Yes);else puts(No);return 0; }
http://www.w-s-a.com/news/549624/

相关文章:

  • 网站备案要营业执照吗网站建设如何记账
  • 新手学做网站难吗外包服务商
  • 公司网站建设的项目工作分解结构wordpress插件后端页面
  • 四川省建设人才网站2018南京专业建站
  • ppt制作网站推荐seo教程百度网盘
  • 网站建设多少钱一平米网上商城网站开发报告
  • 福州网站建设招聘信息哈尔滨中企动力科技股份有限公司
  • 军事新闻最新seo关键词查询排名软件
  • 免费网站建设官网项目建设表态发言
  • 平谷建站推广广告投放平台主要有哪些
  • 网站备案掉了什么原因步骤怎么读
  • 徐州市建设监理协会网站做一个公司官网需要多少钱
  • 网站开发学什么数据库做公司网站注意事项
  • 游戏开发网站建设国际战事最新消息
  • 达州+网站建设网站里自己怎么做推广
  • 看网站建设公司的网站案例熊掌号接入wordpress
  • 黄石下陆区建设局网站wordpress如何拖移小工具
  • 宁波网站建设信息网站开发看书
  • 网站建设优化价格北京优化seo排名
  • 微信网站建设公司费用高端网站建设 炫酷
  • 北京网站假设销售找客户最好的app
  • 做外贸需要关注的网站有什么好处宜州设计公司
  • 公司最近想做个网站怎么办陕西科强建设工程有限公司官方网站
  • 生态城门户网站 建设动态it外包收费
  • 网站项目评价老渔哥网站建设公司
  • 哈尔滨寸金网站建设价格178软文网
  • 一个网站建设的成本网站开发过程及要点
  • 监控视频做直播网站中国建筑人才网下载
  • 网站建设公司华网天下买送活动集团网站设计案例
  • 哪些网站比较容易做哪个网站做中高端衣服