Loading

摘要: Good Luck in CET-4 Everybody! 一堆石子,只能取2的幂次方个,不能取的就输,问先手是否必胜 sg函数模板 这是一维的sg函数,$sg[i] = 0$ 代表只剩下i个石子的时候就是先手必输态,其余的就是先手必胜态 sg函数有点类似于记忆化搜索 #include <iostr 阅读全文
posted @ 2022-04-26 21:38 dgsvygd 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 邂逅明下 两个人进行博弈,给出三个数字,$n, q, p$ 代表一堆有n个石子的石堆,两个人每次至少取 $q$ 个石子,至多取 $p$ 个石子,拿走最后一个石子的人输,问先手是否必胜 巴什博弈拓展 显然可以看出,后手可以将两人同时拿的数量控制在 $p + q$ 内,又因为最后一个拿走石子的人会输,因 阅读全文
posted @ 2022-04-26 21:36 dgsvygd 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 取石子游戏 有一堆石子,第一个人能取任意个,但不能全取完,接下来每个人取的数量至多不超过上一个人取的两倍 把最后一个石头拿走的为胜 博弈 打表 最后发现是斐波那契数列,后手必胜 AC代码 #include <iostream> #include <algorithm> #include <map> 阅读全文
posted @ 2022-04-26 16:48 dgsvygd 阅读(89) 评论(0) 推荐(0) 编辑
摘要: Brave Game 一堆石子,有 $n$ 个,两个人每次至多拿 $m$ 个,且至少拿 $1$ 个,刚好取完最后一个石子的胜利 巴什博弈 对 $m + 1$ 取模即可,若为 $0$ 则后手必胜,否则先手必胜 因为先手不管怎么取,后手都能使得两人摸取的石子总数为 $m+1$ #include <ios 阅读全文
posted @ 2022-04-26 14:51 dgsvygd 阅读(15) 评论(0) 推荐(0) 编辑
摘要: Euclid's Game 两个人进行博弈,轮流操作,给出两个数 $a$ 和 $b$ ,假设 $b \ge a$,则每次操作可以使得 $b-ka$,k为任意整数,并且必须保证操作后的 $b$ 必须为正整数,先使得最小的数为 $0$ 的获胜 博弈论分析 由于给出的 $a$ 和 $b$ 非常大,所以不能 阅读全文
posted @ 2022-04-26 14:43 dgsvygd 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Calendar Game 给出一个终止日期和开始日期,两个人每次只能有两种方式移动的合法日期,如果日期不合法,则不能移动: 移动到当前日期的下一天 移动到当前日期的下一月同一天 先到达终止日期的获胜,不允许到达终止日期后的日期 博弈论 简单的一个博弈图分析,分析一下必胜态和必输态即可,日期处理上面 阅读全文
posted @ 2022-04-26 14:43 dgsvygd 阅读(15) 评论(0) 推荐(0) 编辑
摘要: Play a game 两个人进行博弈,给出 $n*n$ 的格子,棋子起始点在角落,两个人交叉地进行操作,每次只能移动到一个相邻的格子(四个方向),并且访问过的格子不能再访问,如果走到不能走就算输,问先手必胜还是后手必胜 博弈 看了别人的题解才知道 相邻的格子可以成对成对地组合,这样就可以使得先手进 阅读全文
posted @ 2022-04-26 14:41 dgsvygd 阅读(22) 评论(0) 推荐(0) 编辑
摘要: Buggy Robot 有一个机器人在图里,给出初始位置和末位置,图中有障碍的格不能走,同时给出含有4种指令的指令行:上下左右。问最少在指令行中添加或删去多少个指令,使得机器人能走到终点 如果碰到边界或障碍物则不移动 bfs + dp 这个思路的模拟赛的末尾才想出来,debug花了点时间,但是还是没 阅读全文
posted @ 2022-04-26 13:59 dgsvygd 阅读(29) 评论(0) 推荐(0) 编辑
摘要: Distributing Ballot Boxes 二分答案 #include <iostream> #include <cstdio> using namespace std; typedef long long ll; const int maxn = 5e5 + 10; int n, m, n 阅读全文
posted @ 2022-04-26 13:30 dgsvygd 阅读(18) 评论(0) 推荐(0) 编辑
摘要: Queue n个人在排队,每个人的身高都不一样,同时每个人给出他前面比他高的人的数量,或者是他后面比他高的人的数量,要求构造一个排队的顺序(以身高作为代表),能够在满足以上条件的情况下字典序最小 树状数组 + 二分 可以直接用vector的insert做,但是会超时 为了保证字典序最小,我们首先将身 阅读全文
posted @ 2022-04-26 13:28 dgsvygd 阅读(27) 评论(0) 推荐(0) 编辑
摘要: Cup 一个圆柱体的水壶,问体积为V的水,能装满水壶到什么高度 二分 直接二分枚举高度求解即可,计算圆台的体积:补成一个圆锥来算 #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> using nam 阅读全文
posted @ 2022-04-26 13:26 dgsvygd 阅读(20) 评论(0) 推荐(0) 编辑
摘要: Flyer 给若干个人派传单,派n次传单,每次都会给出一个a, b, c,代表在给在编号在 $[a, b]$ 区间内,并且编号为 $a + kc$ 的人派一张传单 最后询问有谁是被派了奇数张传单,并且保证这种人最多只有一个 二分区间 这题的突破口在于奇数传单的人只有一个,由于偶数+偶数为偶数,偶数+ 阅读全文
posted @ 2022-04-26 13:24 dgsvygd 阅读(61) 评论(0) 推荐(0) 编辑