博弈
菜得不行的sb
摸了
展开
-
Codeforces Round #300 E. Demiurges Play Again CF538E
首先考虑二分答案 假设是求max 那么把>=mid 的数字都变成1 另外的都变为0假设是A操作的时候那么肯定选一个需要放1尽量少的儿子下去 (因为二分的是mid) 假设是B操作那么要让他底下能选的地方都是1才能让他选到>=mid那么其实这样算出来的其实就是答案了当求min的时候就反过来 A操作的时候要让底下能选的都是0 B操作的时候选一个最少的0的下去#include <iostream>原创 2017-10-13 23:59:31 · 221 阅读 · 0 评论 -
2017 ACM Arabella Collegiate Programming Contest E. Competitive Seagulls GYM101350E
博弈经典套路 考虑把可选择的操作变成2个相同的 然后跟着对手操作为奇数的时候选一个奇数把两边留出相同长度的白色 为偶数的时候选一个2把两边留出相同长度的白色那么只有2 和 3 是不可以的 int t; sd(t); while(t--) { int n; sd(n); if(n==1)puts("first");原创 2017-10-16 10:55:21 · 359 阅读 · 0 评论 -
Circle and Marble UVALive - 6803 (SG函数+nim博弈)
普通的SG博弈 就是对每个可操作的部分算一个mex 也就是SG值 然后把所有能操作的部分的sg值异或起来 为0则先手必输 不为0则先手必胜#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#原创 2018-04-06 13:10:22 · 271 阅读 · 1 评论 -
CS Academy Round #77 (Div. 2 only) C D
https://csacademy.com/contest/round-77/summary/C 对矩阵从右往左做一个先后手的dp dp[o][i][j]表示o玩家在从左边走到i行j列后可以取到的想要的最优解#include <iostream>#include <algorithm>#include <sstream>#include <...原创 2018-04-19 19:18:04 · 168 阅读 · 0 评论 -
2018 SCAU暑假个人排位赛Ⅱ
A HDU - 4333 https://cn.vjudge.net/problem/30656/origin扩展Kmp 先翻倍原串s1得到s2 再用exkmp求s2的后缀跟s1的LCP 假如ex[i]&gt;=len说明相等 &lt; len则判断下一位的大小关系需要注意判断循环节 假如是有循环节的那么需要整体除掉循环次数#include &lt;iostream&gt...原创 2018-07-13 01:44:03 · 205 阅读 · 0 评论