20230520做题笔记

T1

将$2*k$个点配对k个

每个人操作k-1次

所以先手只能破坏k-1个对子

那答案最大就为$min(|P_i-P_{i+k}|)$

后手只需要将i到i+k掏空就行了

T2

经典dp+前缀和优化

T3

发现大数在小数计算后没有意义

题目转化成选择若干个数,从大到小排后计算

复杂度就变成了$O(2^n)$

T4

折半思想,枚举答案

分别算出左边右边的得分

用哈希计算,若满足条件,则可作为答案

T5

打表找规律

$a=s\%(k+1)$

$a=0$,必败

$a=k$,必胜

$a<k$,每个人分别取1,看奇偶性

理论依据:$k^c\%(k+1)=1,k$

T6

发现第一种操作收敛很快

第一种操作直接暴力

能到必败态直接选

否则第二种操作

找一下规律

每次减去一个$a^x$

看谁先减到$b\%a$就输

令$B=b-b\%a$

问题转化成B每次减$a^x$谁不能操作谁就输

即T5

T7

每个游戏独立,求sg值,异或

正常构图方法不可行

考虑打表

发现

$L_i-1<=x<=p*L_i:x-L_i+1$

$x\%p=1:f[(x-1)/p-1]$

T8

发现每一个素数互相独立,按素数拆分游戏,求sg,异或

把对应的次数拉下来

每次找一个$x$,把集合中大于等于x的数减去x

T9

将游戏分类(2,4,8,16)(3,9,27,81)...一类

又变成独立游戏的问题

发现sg值和内部数字无关,只和子集大小有关,所以最多29个

每次决策,选择一个$x$,删去$x$及它的倍数

正常求sg值即可(打表)

T10

先把图转一下,坐标好处理一些

对于某一个状态,枚举切哪一个点,这次操作把图分成几个部分,那此次操作的$sg1=sg_u\oplus sg_d$

那整个图的sg值就是每个决策sg值的$mex$

T11

发现每一轮在交换时,最前面的数只会和前缀$min$交换,所以在i后面的前缀$min$的个数为$c_i$,包含$i$后就是$c_i+1$

那计算到$i-1$时,就是要从后面的前缀$min$中选出$c_{i-1}$个作为当前的前缀$min$,方案数就多乘一个$C_{c_i+1}^{c_{i-1}}$

posted @ 2023-05-20 09:36  hubingshan  阅读(8)  评论(0)    收藏  举报  来源