这题也太新颖了吧.. 交互博弈 以前一直以为交互只能出二分 题意:长度为n的环形灯 玩家有两种操作 结束游戏 或者选择k个灯点亮 每次这个k是玩家自己选的 玩家操作后让电脑操作 电脑选择一个最优的点x 然后关掉从x开始的连续k个灯 玩家想要点亮更多的灯 电脑则相反 让你来操作 如果达到了理论上最多灯的状态就算ac了 题解:模拟一下操作就找到规律了.. 如果玩家上一次操作点亮了k个灯 如果当前连续亮灯的最长序列为x <= k 那么电脑操作了之后 至少会多点亮一个灯 就这样一直贪心下去.. 所以我们…
C语言纠错大赛的一道题,正好拿来补博弈~~ 给的代码写的略奇葩..不过还是直接在上面改了.. 题目链接: http://codeforces.com/problemset/problem/549/C 题意: 给你n个数,两个人依次拿走一个数,最后剩下的k个数的和若为奇数,则先手赢,否则后手赢.问谁赢? 分析: 看最后依次操作:此时有k+1个数... 最后一次操作是先手,则 剩下的全为偶数,先手必输 剩下的全为奇数且数字个数为偶数,拿走一个后,先手赢,否则后手赢. 剩下的数有奇有偶,则先手在奇数偶…
Codeforces Round #228 (Div. 1) 题目链接:C. Fox and Card Game Fox Ciel is playing a card game with her friend Fox Jiro. There are n piles of cards on the table. And there is a positive integer on each card. The players take turns and Ciel takes the first…
题目 参考自博客:http://blog.csdn.net/keshuai19940722/article/details/38455269 //字典树,博弈 根据当前节点的后续来确定当前节点的状态,0是由对手决定,1是只有可能输,2是只有可能赢,3是可以决定自己的胜负.这些状态是要综合所有后续情况确定的. #include<stdio.h> #include<iostream> #include<string.h> #include<string> #in…
第一次交互题,记录一下吧 #include <cstdio> #include <iostream> #include <ctime> #include <vector> #include <cmath> #include <map> #include <queue> #include <algorithm> #include <cstring> using namespace std; typed…
题目链接:D. Ithea Plays With Chtholly 题意: 给你n张纸,在纸上写字(在 1 - c之间)可以写m次数 (,).(主要是交互,让你判断) 题解: 首先,看到m>=n*c/2,我们假设从1位置放入数据,如果放入的数据大于前面已经放入的数据那就往后排小于就替换.这样放的话,每个位置替换最大的次数是C,所以最大的次数总数是n*c.发现正好差了一倍.所以我们可以从两边放入,(小于c/2从1放入,大于c/2从N位置放入)这样每个位置替换的最大次数就是c/2,就正好可以过了.(…
题目连接:652F - Ants on a Circle 题目大意:\(n\)个蚂蚁在一个大小为\(m\)的圆上,每个蚂蚁有他的初始位置及初始面向,每个单位时间蚂蚁会朝着当前面向移动一个单位长度,在遇到其它蚂蚁时会立刻掉头.求经过\(t\)个单位时间后每一个蚂蚁的所在位置 题解:首先可以发现,最终答案其实是在不考虑碰撞下得出答案的一个排列,而且蚂蚁们的相对位置是不会改变的.所以如果求出了其中任意一个蚂蚁的位置,就能求出最终的答案. 为了方便起见,先默认所有蚂蚁的位置是按升序排的,且第一个蚂蚁的位…
D. Vladik and Favorite Game time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output This is an interactive problem. Vladik has favorite game, in which he plays all his free time. Game field could…
题目:http://codeforces.com/problemset/problem/493/D 题意:一个n*n的地图,有两个人在比赛,第一个人是白皇后开始在(1,1)位置,第二个人是黑皇后开始在(1,n)位置,然后问你谁嬴,并且如果是白赢输出第一步走的什么 如果有多个答案输出x最小,还有相同输出y最小 思路:在n为奇数的时候,我们白无论走什么,我们黑都可以对称走,最后就会到最中间一行,然后黑色获胜 n为偶数的时候我们白可以先走到(1,2)就可以转换为n为奇数的情况,然后白获胜 #inclu…
Ants on a Circle 感觉这个思路好巧妙啊. 我们能发现不管怎么碰撞,初始态和最终态蚂蚁间的相对顺序都是一样的, 并且所占的格子也是一样的, 那么我们就只需要 找到其中一个蚂蚁的最终位置就能确定所有蚂蚁的位置了, 我们考虑找初始为止离0最近的那个蚂蚁的最终位置,我们能发现 蚂蚁从m-1->0  rk++, 蚂蚁从0->m-1 rk--, 在取模意义下rk就是那个蚂蚁的最终位置. #include<bits/stdc++.h> #define LL long long #…