csp-s模拟测试57(10.2)「天空龙」·「巨神兵」·「太阳神」

题目是古埃及神话???

A. 天空龙


傻逼模拟,看来没有滑天下之大稽QAQ,也没有打错快读(大雾...)

B. 巨神兵


 难度爆增,一脸懵比.....

60分状压:

因为是求有向图,关于有向图好像拓扑用的很多,考虑到每个图的拓扑序是一定的

那么我们可以借此转移,设f[i][j]为当前点的状态为i,出度为零的点的度数为j

向下一层转移时枚举下一层的点集,那么点集S中每个点一定要和j连边,可以和i中除j以外的点连边

然后对于每个点cnt1,表示除j以外与i的连边,cnt2表示与j的连边,该点的贡献为2^cnt1*(2^cnt2-1)

100分

容斥?????

事实上不大会证,当前DP状态为一维f[i]表示当前点的状态为i,因为不知道出度为零的点是谁,那么我们

就开始大力容斥,

另外感谢zzyy大神教我卡常

for(int uu=(~i)&((1<<n)-1),s=uu;s;(--s)&=uu){

for(int l=i;l;l-=lowbit(l)){

第一个是枚举补集,第二个是取出每一位。

 

C. 太阳神


 咕咕咕咕咕咕咕...

 

 

上一篇:一个python代码练习


下一篇:python基础之异常捕获