Codeforces 786 A. Berzerk】的更多相关文章

题目链接:http://codeforces.com/problemset/problem/786/A 这个题出做$DIV2$的$C$以及$DIV1$的A会不会难了一点啊... 做法和题解并不一样,只是很懂题解中记忆化搜索的时候怎么判断的$LOOP$ 我们都知道组合游戏中一个状态所有的后继如果都是赢的那么这个状态是输的,一个状态只要有一个后继是输的那么这个状态就是赢的. 但是这个题目中有$LOOP$的情况,考虑将一个点拆为两个,分别表示第一个人和第二个人在这个点是必胜还是必败(也就是答案),如果…
题目链接:http://codeforces.com/contest/786/problem/B 典型线段树优化连边,线段树上的每一个点表示这个区间的所有点,然后边数就被优化为了至多${nlogn}$条,注意要区分$2$,$3$操作(建两棵线段树),然后最短路即可. #include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<cstdlib>…
题目链接:http://codeforces.com/contest/786/problem/C 大力膜了一发杜教的代码感觉十分的兹瓷啊! 我们知道如果$k$是给定的我们显然是可以直接一遍$O(n)$的贪心扫过去的,那么问题很显然的变成了支持一个数据结构,维护一段区间内不同数字的个数(事实上是固定左端点求最远的右端点使得这段区间内不同数字的个数小于等于$k$).嗯,很可以,如果写过HH的项链的话你就有可能..... HH的项链是有莫队做法和离线询问预处理$next$数组并用树状数组维护两种做法的…
[题目链接]:http://codeforces.com/contest/787/problem/C [题意] 给你怪物一开始所在的位置; 然后两人轮流操作; 可以选择让这个怪物前进自己的集合里面所拥有的数字所代表的步数; 对于2..n这些怪物的起点以及谁先进行游戏这些信息; 让这个怪物到位置1的人赢 判断谁能赢,输,或者游戏一直循环下去 [题解] 设f[i][j]表示i先玩,然后怪物一开始的位置为j的结果; 则 //-2表示输,-1表示赢,0表示不确定 f[1][1]=f[2][1]=-2;…
http://codeforces.com/problemset/problem/786/A Description Rick and Morty are playing their own version of Berzerk (which has nothing in common with the famous Berzerk game). This game needs a huge space, so they play it with a computer. In this game…
A. Berzerk 题目连接: http://codeforces.com/contest/786/problem/A Description Rick and Morty are playing their own version of Berzerk (which has nothing in common with the famous Berzerk game). This game needs a huge space, so they play it with a computer…
[题目链接] http://codeforces.com/problemset/problem/786/A [题目大意] 有两个人,每个人有一个数集,里面有一些数,现在有一个环,有个棋子放在1, 有个不确定位置的终点,两个人轮流从自己的数集中选择一个数,作为这个棋子移动的步数 问终点在不同位置,不同人先手的时候谁能赢,或者游戏陷入循环 [题解] 我们从st_0_0=st_1_0=0开始倒着推导, 如果一个状态是必败态,那么它的前继节点一定是必胜态 如果一个点的所有后继都是必胜态,那么这个节点一定…
有向图博弈问题. 能转移到一个必败态的就是必胜态. 能转移到的全是必胜态的就是必败态. 转移的时候可以用队列维护. 可以看这个 http://www.cnblogs.com/quintessence/p/6618640.html #include<cstdio> #include<queue> using namespace std; struct Node{ int who,pos; }; queue<Node>q; int n,len[2],to[2][7010],…
小结: A,B,F 切,C 没写 1ll 对照样例才发现,E,G 对照样例过,D 对照样例+看了其他人代码(主要急于看后面的题,能调出来的但偷懒了. CF1674A Number Transformation 考虑若 \(y\) 不能整除 \(x\) 则无解,否则一定存在一组解 \(a=1,b=y\div x\). #include<bits/stdc++.h> #define IOS ios::sync_with_stdio(false) #define TIE cin.tie(0),cou…
/* CF786A - Berzerk http://codeforces.com/contest/786/problem/A 博弈论 直接搜出NP状态图.记得要记忆化剪枝. * */ #include <cstdio> #include <cstring> //#define tle #ifdef tle //#define test using namespace std; ; int now; ][Nmax]; int n; ][Nmax]; ][Nmax]; ]; #ifd…