摘要: 4449: [Neerc2015]Distance on Triangulation Description 给定一个凸n边形,以及它的三角剖分。再给定q个询问,每个询问是一对凸多边行上的顶点(a,b),问点a最少经过多少条边(可以是多边形上的边,也可以是剖分上的边)可以到达点b。 给定一个凸n边形 阅读全文
posted @ 2018-04-03 21:53 zbtrs 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 3 cti (cti.cpp/in/out, 1s, 512MB)3.1 Description有一个 n × m 的地图, 地图上的每一个位置可以是空地, 炮塔或是敌人. 你需要操纵炮塔消灭敌人.对于每个炮塔都有一个它可以瞄准的方向, 你需要在它的瞄准方向上确定一个它的攻击位置,当然也可以不进行攻 阅读全文
posted @ 2018-04-03 16:53 zbtrs 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 1 arg (arg.cpp/in/out, 1s, 512MB)1.1 Description给出一个长度为 m 的序列 A, 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS.1.2 Input Format第一行两个整数 n,m.接下来一行 m 个整数, 表示 A.1.3 阅读全文
posted @ 2018-04-03 16:07 zbtrs 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 分析:解法好神啊...... 前50分可以通过背包dp加一些优化来得到.后面的数据因为询问太多,显然不能一个个处理. 一个神奇的做法:分治. 预处理出对于每一个点i,不考虑它 的答案f[i]. 只需要将它左边和右边的元素插入到背包中即可. 为了达到这一目的. 在分治的时候加一个判断:如果l == r 阅读全文
posted @ 2018-04-03 13:57 zbtrs 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 分析:不算太难的一道题. 如果把每个编号i看作一个点,i向ai连边,那么最后一定会出现环,并且环与环之间是不相交的. 那么我们可以dfs预处理出所有的环,用询问的m除以环的长度,剩下的余数就可以O(1)计算了,时间复杂度O(n). 上面这种做法在处理余数部分时比较容易写错. 一种不容易写错的方法是倍 阅读全文
posted @ 2018-04-03 11:54 zbtrs 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 4715: 囚人的旋律 Description 「不知从何处,流淌出令人熟悉的旋律。 我到底是在哪里,听过这个旋律?」 ——「『囚人的旋律』,是加入了诅咒的旋律哦」 【问题描述】 被诅咒的监狱里流淌着囚人们的歌谣。 将罪恶的青春全部抹杀殆尽。 “看守”执掌“囚犯”的生杀大权。 “囚犯”中藏着可以杀掉 阅读全文
posted @ 2018-04-03 11:09 zbtrs 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 4714: 旋转排列 Description Input 输入仅有一行,包含一个整数n,1≤n≤500000 输入仅有一行,包含一个整数n,1≤n≤500000 Output 输出一行,包含一个整数,代表答案。 输出一行,包含一个整数,代表答案。 Sample Input 4 Sample Outp 阅读全文
posted @ 2018-04-03 10:04 zbtrs 阅读(370) 评论(0) 推荐(0) 编辑