NOIP2017提高组模拟22-雅礼国庆10.5
来源:互联网 发布:仟家信黄金分析软件 编辑:程序博客网 时间:2024/06/04 19:51
T1
题意:有m(<=1e4)层边,每层有k(<=10)个点,第一层只有一个点S,最后一层只有一个点T。然后整个图是一个DAG,可以一次取反相邻两层的边,问有多少种方案使得最后的S到T的路径数为偶数,有模数。
题解:用f【i】【j】表示做到第i层,路径数的奇偶性情况为j,如果是偶数为0,奇数为1。最后把状态中1 的个数为偶数的累加即可。
代码:http://paste.ubuntu.com/25879093/
T2
题意:给定n+1(n为偶数)个01串,每个串长度为2n,有n个1。
找到任意两个串,使得交的1的个数大于等于
题解:想想直接暴力做,是O(
正解是随机……
代码:http://paste.ubuntu.com/25879353/
T3
题意:给定一棵树,在某些节点放一些灭火器,每个灭火器最多灭S(<=1e9)个点,每个点最多被隔K个单位距离的灭火器灭,问最少要多少个灭火器。
题解:首先贪心将灭火器放在越高越好。
用 g【x】【i】以x为根 距离为i 的需要灭火器房间个数
f【x】【i】以x为根 距离为i 的灭火器个数
做完儿子后,f【x】【i】=
且g【x】【0】=1
i==K时,不能再往上传递了,必须全部灭掉。
所以若g【x】【K】大于0,则用足量的灭火器。
因为对于某个点,如果有若干个灭火器可以灭到该点,那么其实用子树内的灭火器更好。
然后我们发现每次往上传递灭火器,相对距离+2,所以i+j==K或K-1时,要把子树内能灭掉的先灭掉。
最后在把根节点能灭掉的都灭掉。
代码:http://paste.ubuntu.com/25879359/
- NOIP2017提高组模拟22-雅礼国庆10.5
- 【NOIP2017提高A组模拟10.5】Ping
- 【NOIP2017提高A组模拟10.5】Ping
- 【NOIP2017提高A组模拟10.5】Ping
- jzoj5394 【NOIP2017提高A组模拟10.5】Ping
- JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation
- 【JZOJ 5394】【NOIP2017提高A组模拟10.5】Ping
- 【NOIP2017提高A组模拟10.5】Snake vs Block
- [JZOJ5394]【NOIP2017提高A组模拟10.5】Ping
- 4920. 【NOIP2017提高组模拟12.10】降雷皇
- 【NOIP2017提高组模拟12.10】神炎皇
- 【NOIP2017提高组模拟12.10】神炎皇
- 【NOIP2017提高组模拟12.10】幻魔皇
- JZOJ4919. 【NOIP2017提高组模拟12.10】神炎皇
- 【NOIP2017提高组模拟12.10】神炎皇
- 【NOIP2017提高组模拟12.10】幻魔皇
- 【NOIP2017提高组模拟12.10】幻魔皇
- 【JZOJ4921】【NOIP2017提高组模拟12.10】幻魔皇
- 理解JAVA动态代理
- 商人的诀窍(SDUT 2278)
- 数学笔记16——定积分的应用1(对数与面积)
- 采用JPA对Hibernate进行注解操作
- JVM的内存区域
- NOIP2017提高组模拟22-雅礼国庆10.5
- Linux虚拟机NAT方式配置网络
- ffmpeg调用 avformat_open_input失败,返回 -2
- HBase 深入浅出
- leetcode 349
- exit()和_exit()的区别
- Linux Socket 编程与 TCP/UDP协议流程
- AndroidStudio gradle配置
- Ubantu安装boost库