Cutting Game---博弈
来源:互联网 发布:淘宝店铺买卖 编辑:程序博客网 时间:2024/05/22 16:00
#include "iostream"#include "vector"#include "string.h"#include "set"using namespace std;int mem[200][200];int grundy(int w, int h){ if(mem[w][h] != -1) return mem[w][h]; int i; set<int> s; for(i=2; w-i>=2; i++) //如果切完后宽度为1,输 { //切出的两张纸的grundy值分别为g1, g2, 这两张纸对应状态的grundy值为g1 ^ g2 s.insert(grundy(i, h) ^ grundy(w-i, h)); } for(i=2; h-i>=2; i++) //如果切完后高度为1,输 { s.insert(grundy(w, i) ^ grundy(w, h-i)); } int g = 0; while(s.count(g)) //寻找不包含于s的最小值 g++; return mem[w][h] = g;}int main(){ int w, h; cout << "纸的宽度 w = "; cin >> w; cout << "纸的高度 h = "; cin >> h; memset(mem, -1, sizeof(mem)); int result = grundy(w, h); if(result) cout << "WIN" << endl; else cout << "LOSE" << endl; return 0;}
0 0
- POJ2311 Cutting Game (博弈)
- Cutting Game---博弈
- [POJ2311]Cutting Game(博弈)
- 【POJ2311】Cutting Game-SG博弈
- POJ_P2311 Cutting Game(博弈+SG函数)
- POJ Cutting Game(Nim博弈+grundy数)
- POJ 2311 Cutting Game (sg博弈)
- POJ 2311 Cutting Game 博弈,sg函数
- [POJ2311]Cutting Game(博弈Multi-SG函数)
- POJ2311 Cutting Game(博弈Multi-SG函数)
- POJ 2311-Cutting Game(Nim博弈-sg函数/记忆化搜索)
- poj2311 Cutting Game-----sg
- poj2311 Cutting Game
- POJ 2311 Cutting Game
- POJ-2311-Cutting Game
- POJ 2311 Cutting Game
- POJ - 2311 Cutting Game
- POJ 2311 Cutting Game
- linux shell 中的 2>&1 用法说明
- java 邮箱验证激活
- 报到博客_2016年4月4日
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 java
- leetcode之two sum
- Cutting Game---博弈
- 【Android学习笔记】ListView使用SimpleAdapter适配器
- Android--Android四大组件(二)(Android studio)
- 设计模式
- Android手机游戏摇杆
- USACO 1.1-Friday the Thirteenth
- js配合锚点实现动画滚动与监听
- Odoo(OpenERP)开发实践:在QWeb报表中自定义页眉页脚
- USACO 1.1-gift1