摘要: 题解 想到n3发现思路有点卡住了 对于每个发射塔把激光塔和敌人按照极角排序,对于一个激光塔,和它转角不超过pi的激光塔中间夹的敌人总和就是答案 记录前缀和,用two Points扫一下就行 代码 cpp include define enter putchar('\n') define space 阅读全文
posted @ 2018-08-29 18:44 sigongzi 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题解 我居然都没反应过来二分图内选集合两两不能有边是最大独立集了 我退役吧 显然连边只能在奇数和偶数之间,然后二分图求最大独立集是节点数 最大匹配数 啊当然还有对于1的话只能留一个1 代码 阅读全文
posted @ 2018-08-29 13:00 sigongzi 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题解 那个限制表示一回头要治完前面的所有病人 我们处理一个g[i][j]表示治疗i到j的病人至少会死多少病人 $g[i][j] = g[i + 1][j] + sum[i + 1,j] + min(sum[i + 1,j],(i j) 3 a[i])$ 每次新加一个i,要么治疗i要么转一圈回来再治 阅读全文
posted @ 2018-08-29 12:08 sigongzi 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题解 写数据结构的时候我代码就会变得非常非常长 一看别人1.5K 2.3K 我6.3K…… orzzzzz 我们很容易想到离线倒着插入,然而,有个小锅叫如果size相同保持原来的重儿子不变 我们需要写个线段树,遇到两个size相同的儿子时看两个儿子下一次插入是什么时候,取下一次插入时间较大的儿子,如 阅读全文
posted @ 2018-08-29 10:15 sigongzi 阅读(224) 评论(0) 推荐(0) 编辑