上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 37 下一页
摘要: 打出SG表来可以很容易的发现i为偶数时 SG[i]=i/2 i为奇数时 SG[i]=SG[i/2] 阅读全文
posted @ 2019-04-02 16:47 Aragaki 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 打出PN表来 发现合数除16,34,289都是赢 质数除2,17都是输 阅读全文
posted @ 2019-04-02 10:42 Aragaki 阅读(126) 评论(0) 推荐(0) 编辑
摘要: SG[i]表示一个数二进制下有i个1的SG值 SG[0]=0 打表: 表打出来后面就很简单了 阅读全文
posted @ 2019-04-02 09:48 Aragaki 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 很简单的可以知道 如果P在V的右上角 必输 如果P在V的左下角 必赢 接下里还剩下左上角和右下角两种情况 两种情况其实相同 P是挡不住V通过对角线方向向下/左的移动的 即两者不会相互影响 所以我们只要比较两者走到终点所需时间的长短即可 #include<bits/stdc++.h> using na 阅读全文
posted @ 2019-04-01 20:53 Aragaki 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 写出SG表 发现SG函数规律为Mi%(Li+1) #include<bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while (t--) { int n; cin >> n; int ans = 0; for (i 阅读全文
posted @ 2019-04-01 13:22 Aragaki 阅读(94) 评论(0) 推荐(0) 编辑
摘要: P:先手必输 N:先手必胜 PN图规则:如果一个点能转换到的所有点都是N,那么此点状态为P。若能转化到一个P,即使对手面临必输状态,此点为N. 然后找规律就行 #include<bits/stdc++.h> using namespace std; int main() { int n, m; wh 阅读全文
posted @ 2019-04-01 11:34 Aragaki 阅读(146) 评论(0) 推荐(0) 编辑
摘要: n*n的矩阵如果n为偶数 则可被1*2的矩形完全覆盖 如果n为奇数 则除起点外 其他各自可被1*2矩形完全覆盖 所以当n为偶数 先手赢 n为奇数 后手赢 #include<bits/stdc++.h> using namespace std; int main() { int a, b; while 阅读全文
posted @ 2019-04-01 11:01 Aragaki 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 两堆石子每次可以在大堆中取小堆的倍数个石子 第一个拿光某个堆的玩家赢 假设a>=b 必胜状态:a%b==0或a/b>=2 因为当a/b>=2时 当前玩家可以选择将状态转移至 a%b+b或a%b 同时a%b+b可转移至a%b 则这两个状态中必有一个为必胜态 #include<bits/stdc++.h 阅读全文
posted @ 2019-04-01 10:41 Aragaki 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 把每个点的点权当做是W[i]-V[i] 题目一眼是最大权闭合子图 但是可能会有重边自环和环 需要先搞成简单图 再tarjan缩点 缩点后就是裸的最大权闭合子图 #include<bits/stdc++.h> using namespace std; typedef long long ll; con 阅读全文
posted @ 2019-03-30 23:11 Aragaki 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 最大权闭合子图 1.每个区间收益(i,j)对应一个点 权值为正连S 负连T 2.每个区间收益向其子区间收益(i+1,j)与(i,j-1)对应的两个点连边 容量为INF 3.每个寿司类型对应一个点 连一条边到T 容量为m*w[i]*w[i] 4.每个寿司对应的区间收益点(i,i)连一条边到对应的寿司类 阅读全文
posted @ 2019-03-28 20:18 Aragaki 阅读(160) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 37 下一页