cyclic
这个题直接模拟,先把k%一下防止过大
然后直接做就行了
1 | #include<cstdio> |
book
这个题是最难的
其实是一个贪心,很简单的贪心,但很难想
别人讲也听不懂,我就没搞懂
因为已经读过的书必须放到上面,所以搬后面的书时,必须搬之前看过的书
不如把你下一次要看的书放倒最前面,这样就能搬最小代价的书了。
1 | #include<cstdio> |
set
这是一个树形dp题
很容易得出
一个父节点的方案数可以由子节点组合出来出,而子节点的方案数为,选子节点f[j],不选子节点 1
总数就是f[j]+1
即 f[fa]=(f[j]+1) (f[j]+1) (f[j]+1) 。。。。(f[j]+1) j是子节点
因此可以枚举一个最小的点,当做父节点,找以他为最小值能有多少种方案,还要记得不能重复
有权值相同的点,所以有可能统计两次,又因为是从小到大枚举的,之前在小的结点时已经搜到,只要父节点的编号>子节点就不会重复了;
1 | #include<cstdio> |