首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
UVA 11489 - Integer Game 博弈
】的更多相关文章
UVA 11489 - Integer Game 博弈
看题传送门 题目大意: S和T在玩游戏,S先.给出一数字串,两人轮流取出一个数字,要求每次取完之后剩下的数为3的倍数,或者没有数字留下.如果两个人足够聪明,求胜利的一方. 思路: 我一开始竟然没有输Case 直接交上去了,WA死了.笨蛋. 分情况讨论呗. 记3.6.9的个数为tsn 如果一开始和就是3的倍数,那S只能拿3.6.9,所以当这tsn为奇数个胜利~ 如果一开始不是3的倍数,那S必须凑成3的倍数,所以之后tsn应该为偶数. 当然,题目还说拿完也算赢.所以只有一个数的时候S胜利. #inc…
UVA 11489 - Integer Game(找规律)
题目链接 #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <ctime> #include <cstdlib> #include <iostream> using namespace std; ]; ]; int main() { ,i,len,sum,ans; scanf("%d",&am…
UVa 11489 (博弈) Integer Game
一个数字能被3整除就等价于这个数的各个数字之和被3整除. 所以一开始的时候先要拿一个能使剩下的数字是3的倍数的数. 然后就一直拿0.3.6.9直到某人不能再拿为止. #include <cstdio> #include <cstring> + ; char s[maxn]; ]; int main() { //freopen("in.txt", "r", stdin); int T; scanf("%d", &T)…
UVA 1558 - Number Game(博弈dp)
UVA 1558 - Number Game 题目链接 题意:20之内的数字,每次能够选一个数字,然后它的倍数,还有其它已选数的倍数组合的数都不能再选,谁先不能选数谁就输了,问赢的方法 思路:利用dp记忆化去求解,要输出方案就枚举第一步就可以,状态转移过程中,选中一个数字,对应的变化写成一个函数,然后就是普通的博弈问题了,必胜态之后必有必败态,必败态之后全是必胜态 代码: #include <stdio.h> #include <string.h> const int N = 10…
UVA 12293 - Box Game(博弈)
UVA 12293 - Box Game 题目链接 题意:两个盒子,一開始一个盒子有n个球.一个仅仅有1个球,每次把球少的盒子中球消掉,把多的拿一些球给这个盒子.最后不能操作的输(球不能少于1个),Alice先手,问谁赢 思路:博弈.题目事实上能够转化为.给定一个n.每次把降低1到n/2的数字,最后谁是1谁就输了,那么能够去递推前几项找个规律,或者推理,都能够发现仅仅要是2^i - 1的数字Bob就赢,否则Alice赢 代码: #include <stdio.h> #include <s…
UVa 424 Integer Inquiry
之前杭电上也做过a + b的高精度的题,不过这道题的区别是有多组数据. 之前做的时候开了3个字符数组a,b,c,在计算的时候还要比较a,b长度,短的那个还要加'0',还设置了一个add来存放进位. 现在看来这种算法确实很繁琐. 而这次只用了两个字符数组,一个放加数,一个放和. 相比之前程序更短小了,而且可读性也提高了. 果然办法都是逼出来的. 没有了add,在判断进位的时候就看那一位的ASCII码是否>'9',然后进位. 尤其需要注意的一点是可能会出现连续进位的情况,比如99999 + 1.解决…
uva 11489
简单博弈 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> #include <set> #include <stack> #include <vector> #include <sstream> #include <string> #include <cstring> #include <al…
UVA 1557 - Calendar Game(博弈dp)
UVA 1557 - Calendar Game 题目链接 题意:给定一个日期,两个人轮流走,每次能够走一月或者一天,问最后谁能走到2001.11.4这个日子 思路:记忆化搜索,对于每一个日期,假设下两个状态有一个非必胜态,那么这个状态是必胜态,假设后继状态都是必胜态,那么该状态为必败态 代码: #include <stdio.h> #include <string.h> const int day[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31,…
uva 1557 - Calendar Game(博弈)
option=com_onlinejudge&Itemid=8&page=show_problem&problem=4332" target="_blank" style="">题目链接:uva 1557 - Calendar Game 题目大意:给定一个日期,每次能够选择加一个月,或者加一天,加一个月的前提是下一个月有相应的日期,比方1.30加一个月变成2.30是不合法的.日期上限为2001.11.4.两个人轮流操作.不能操…
UVA 10891 区间DP+博弈思想
很明显带有博弈的味道.让A-B最大,由于双方都采用最佳策略,在博弈中有一个要求时,让一方的值尽量大.而且由于是序列,所以很容易想到状态dp[i][j],表示序列从i到j.结合博弈中的思想,表示初始状态i->j情况下,先手能获得的最大分数.后手能获得的就是sum[i][j]-dp[i][j].接下来枚举先手选取的是两端的哪一段即可. #include <iostream> #include <cstdio> #include <cstring> using name…