摘要: 题意: 1.有n个星球,每个星球有一个编号(1-n)和一个能量值。 2.一开始将某些星球连通。 3.开战后有很多个操作,查询某个星球能找谁求救或者摧毁两颗星球之间的连通路径,使其不能连通。如果连通则可以相互求救,求救的对象要求能量比自己大并且在连通的星球中能量最大,如果能量最大的星球有多个,则找编号 阅读全文
posted @ 2019-07-18 13:36 守林鸟 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个村庄排成一列,相邻的村庄可以通信,炸毁则不可以通信,进行m个操作。3种操作,1.炸毁某村庄;2.修复上一个被炸毁的村庄;3.查询某个村庄能通信的村庄数(自己算一个)。 解题:求某个点左边扩散和右边扩散的区间和,没被炸毁就算1,炸毁则算0,用二分查找左边界和右边界,假设查询的点为x,则左边 阅读全文
posted @ 2019-07-18 13:07 守林鸟 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题意:给n个数,m个操作,分两种操作,一种是将一段区间的每个数都开根号,另一种是查询区间和。 解题:显然对每个数开根号不能用lazy的区间更新。一个一个更新必然爆时间,对1开根号还是1,如果一段区间都是1,就不用更新了,判断r-l+1 = query()。其他都是线段树的模板。 #include<s 阅读全文
posted @ 2019-07-18 12:51 守林鸟 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题意:牛有m个时间段可以挤奶,每个时间段的开始时间,结束时间,挤奶量不尽相同,寄完一次需要休息r时间,求在n时间内如何安排牛挤奶产量最大。 解题: 1.休息r时间,当做结束时间需要+r 2.以结束时间的先后对各个时间段排序,然后dp求最值。dp[i]表示当前到了第i个时间段。 3.状态转移方程:dp 阅读全文
posted @ 2019-07-18 11:36 守林鸟 阅读(230) 评论(0) 推荐(0) 编辑