UVA 11892 - ENimEN
题目链接
题意:给定n堆石头,两人轮流取,每次只能取1堆的1到多个,如果上一个人取了一堆没取完,那么下一个人必须继续取这堆,取到最后一个石头的赢,问谁赢
思路:简单推理一下,后手只可能在堆数偶数并且都是1的情况下才可能赢
代码:
#include
#include
const int N = 20005;
int t, n,...
分类:
其他好文 时间:
2014-07-18 22:35:48
阅读次数:
197
UVA 11534 - Say Goodbye to Tic-Tac-Toe
题目链接
题意:给定一个序列,轮流放XO,要求不能有连续的XX或OO,最后一个放的人赢,问谁赢
思路:sg函数,每一段...看成一个子游戏,利用记忆化求sg值,记忆化的状态要记录下左边和右边是X还是O即可
代码:
#include
#include
const int N = 105;...
分类:
数据库 时间:
2014-07-18 22:34:57
阅读次数:
434
题目链接:点击打开链接
题意:
给定 a个箱子 b个球 常数n (球和箱子都是各不相同的,不会出现有一样的物品)
设 way = 把b个球放到a个箱子中的方法数, 若way >= n则游戏结束
有2个人玩游戏。
若当前轮到 X时
1、 X选择增加一个箱子或增加一个球
2、若增加完后方法数>=n 则X失败
若先手必胜,则输出 Masha ,若先手必败则输出 Stas ,若为平局则输出...
分类:
其他好文 时间:
2014-07-18 22:31:42
阅读次数:
282
题目链接:点击打开链接
题意:
给定2个字符串
选择第一个字符串的其中一个字母删除,使得2个字符串完全相同
问哪些位置可以选
思路:
hash求前缀后缀,然后枚举位置
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
...
分类:
其他好文 时间:
2014-07-18 22:27:50
阅读次数:
210
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
原题
给定一批查询日志,数量为n。其中,有的查询出现了多于n/3次,请在线性时间内,找到所有满足条件的查询。
分析
如果初次遇到这个问题,我们会有什么样的思路呢?
采用hashmap进行计数,O(n)的空间,O(n)的时间进行排序,O(nlogn)快速选择算法,这个也可以做到O(n)...
分类:
其他好文 时间:
2014-07-18 22:18:42
阅读次数:
279
UVA 10165 - Stone Game
题目链接
题意:给定n堆石子,每次能在一堆取1到多个,取到最后一个赢,问谁赢
思路:就裸的的Nim游戏,利用定理求解
代码:
#include
#include
int n, num;
int main() {
while (~scanf("%d", &n) && n) {
int sum = 0;
...
分类:
其他好文 时间:
2014-07-18 22:17:20
阅读次数:
342
UVA 11927 - Games Are Important
题目链接
题意:给定一个有向图,结点上有一些石头,两人轮流移动石头,看最后谁不能移动就输了,问先手还后手赢
思路:求出每个结点的sg函数,然后偶数个石头结点可以不用考虑,因为对于偶数情况,总步数肯定能保证是偶数,所以只要考虑奇数情况的结点
代码:
#include
#include
#include ...
分类:
其他好文 时间:
2014-07-18 21:32:27
阅读次数:
224
UVA 12293 - Box Game
题目链接
题意:两个盒子,一开始一个盒子有n个球,一个只有1个球,每次把球少的盒子中球消掉,把多的拿一些球给这个盒子,最后不能操作的输(球不能少于1个),Alice先手,问谁赢
思路:博弈,题目其实可以转化为,给定一个n,每次把减少1到n/2的数字,最后谁是1谁就输了,那么可以去递推前几项找个规律,或者推理,都可以发现只要是2^i - 1...
分类:
其他好文 时间:
2014-07-18 21:27:44
阅读次数:
186
给定只包含正数的数组,给出一个方法,将数组中的数拼接起来,得到的数,是最大的。 例如: [4, 94, 9, 14, 1] 拼接之后,所得最大数为:9944141
分析
我们可以将两个数字,作为一个整体,进行比较。然后一次排序,就得到了结果。给定例子:5,54,56
比较5和54,实际上就是比较545和554哪个大
比较5和56,实际上就是比较556和565哪个大
...
分类:
其他好文 时间:
2014-07-18 21:24:46
阅读次数:
229
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
原题
给定一个数组,数组中只包含0和1。请找到一个最长的子序列,其中0和1的数量是相同的。
例1:10101010 结果就是其本身。
例2:1101000 结果是110100
请大家展开自己的思路。
分析
这个题目,看起来比较简单,一些同学可能认为题目的描述符合动态规划的...
分类:
其他好文 时间:
2014-07-18 21:21:58
阅读次数:
233