AHS of FCGRC 停课 Day 1
停课了,压力有点大……但是就这样吧,进入正事。
Day 1
A.
题意简述:判断满足若干限制条件的从两个3的全排列到一个3的全排列的映射,提交答案。
理解题意是难点,然后就变成py练习题。考虑搜索,就A了。
B.
不会,打算和期望dp的学习一起写。
C.
题意简述:
有n个点m条边的有向图,且所有边都从(编号)小的点连向大的点。
满足所有连向某个点之间都是(有向边变成无向边的)团。
求极大(有向边变成无向边的)团数量。
显然的结论:
1.i和所有连向它的点成为一个团,而且这个团所在的极大团没有其他比i编号要小的点。
2.所有的极大团都由这样的规则生成。
考虑按编号从小到大枚举点,用h[i]表示被i控制(即除去比i大的点之后i所在的极大团)的团的大小。
对于一个点控制的团(不妨设它为i),去掉它以后,剩下的点必然是一个团且都被其中编号最大的点(不妨设它为j)控制。
若其中最大的点没有控制其他的点(即h[i]-1==h[j]),这意味着j所控制的团不是极大团。
去除这样的j,剩下的按照结论都是极大团。
C.
水题,不表。
D.
题意简述:
求一个长度为n且满足某些限制条件(第i个仅和i-1和i-2个有关)序列的种类数。
考虑将f[i][S]表示吃到i个,且前1个和这个的状态为S的方案数。
容易写出转移方程,但直接转移会TLE。
由于S的状态数很少,考虑矩阵快速幂优化即可。
我觉得这个思路倒算是很玄妙,虽然它一点也不。
E.
题意简述:
有n个数,第i次吃掉前i个数各d[i](即x=max(x-d[i],0))
求每次吃掉多少。
不知道机房里其他人是什么玄学做法,反正我前缀和二分+树状数组硬肝就过了。