您的位置:首页 > 其它

hdoj 1847 (同硬币游戏1)

2017-07-03 14:04 274 查看
用了动态规划。

想复杂了,居然还有规律,还好数不大,不然就GG了。

#include<iostream>

#include<cmath>

using namespace std;

int main()

{
int n;
bool flag;
int dp[1010] = {0};
int a[] = { 1,2,4,8,16,32,64,128,256,512 };
for (int i = 0;i<10;i++)
{
dp[a[i]] = 1;

}
for (int i = 1; i <= 1000; i++)
{
if (dp[i] == 0)
{
flag = false;
for (int j = 0; j < 10; j++)
{
if (i - a[j] > 0) {
if (dp[i - a[j]]==0){
dp[i] = 1;
flag = true;
break;
}
}
}
if (!flag)dp[i] = 0;
}
}

while (cin>> n)
{
if(dp
==1)
cout << "Kiki" << endl;
else cout << "Cici" << endl;
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM 博弈