摘要: bzoj3289Mato的文件管理 题意: 一共有n份资料,每天随机选一个区间[l,r],Mato按文件从小到大的顺序看编号在此区间内的这些资料。他先把要看的文件按编号顺序依次拷贝出来,再用排序程序给文件大小排序。求每天排序时的交换次数。 题解: 还是莫队,但是转移的时候用树状数组维护逆序对个数,总 阅读全文
posted @ 2016-07-22 19:53 YuanZiming 阅读(140) 评论(0) 推荐(0) 编辑
摘要: bzoj1007[HNOI2008]水平可见直线 题意: 平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的。给出n条直线,已知其斜率和截距,且n条直线两两不重合,求出所有可见的直线。 题解: 和上一道差不多,但是因为是比 阅读全文
posted @ 2016-07-22 19:48 YuanZiming 阅读(181) 评论(0) 推荐(0) 编辑
摘要: bzoj3190[JLOI2013]赛车 题意: 赛场上一共有N辆车。赛道是一条无限长的直线。在这个比赛过程中,如果一辆赛车曾经处于领跑位置的话(即没有其他的赛车跑在他的前面),这辆赛车最后就可以得奖。已知所有赛车的起始位置(离起跑线距离)和速度,求出那些赛车将会得奖。 题解: 有人说是类似线性规划 阅读全文
posted @ 2016-07-21 21:06 YuanZiming 阅读(420) 评论(0) 推荐(0) 编辑
摘要: bzoj2038[2009国家集训队]小Z的袜子(hose) 题意: 把N只袜子从1到N编号,每次求从编号为L到R的袜子中抽两只,有多大的概率抽到颜色相同的袜子。 题解: 不知道要用什么数据结构,但是可以用一个全局的数组保存每个颜色当前数量,使由区间[l,r]推出[l,r±1]的答案和[l±1,r] 阅读全文
posted @ 2016-07-21 21:01 YuanZiming 阅读(306) 评论(0) 推荐(0) 编辑
摘要: bzoj2763[JLOI2011]飞行路线 题意: n个城市,这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市(双向),并且航线有一定的价格,途中可以进行转机。规定可以免费在最多k种航线上搭乘飞机。已知起点终点和k,求这次出行最少花费多少? 题解: 同上,但这次乱搞会TLE,本弱 阅读全文
posted @ 2016-07-21 20:55 YuanZiming 阅读(587) 评论(0) 推荐(0) 编辑
摘要: bzoj2662[BeiJing wc2012]冻结 题意: 有 N 个城市,M 条双向的道路,有K次机会使通过某条道路时时间变慢 50%。注意在一条道路上最多只能使用一次机会,且不必使用完所有机会。 求从城市1 到城市N最少需要多长时间。(每条双向边等价于两条单向边) 题解: 分层图最短路。这道题 阅读全文
posted @ 2016-07-21 20:49 YuanZiming 阅读(349) 评论(0) 推荐(0) 编辑
摘要: bzoj1306[CQOI2009]match循环赛 题意: n支队伍打单循环赛,赢的得3分,平局各得1分,输的不得分。已知n支队伍最终得分,求多少种可能的分数表。 题解: 爆搜,加入各种奇怪剪枝,比如:剩下的比赛全赢分数都不到要求就返回、当前分数超过了要求……还有一个重要的就是如果当前已经是最后一 阅读全文
posted @ 2016-07-21 20:43 YuanZiming 阅读(364) 评论(0) 推荐(0) 编辑
摘要: bzoj1202[HNOI2005]狡猾的商人 题意: 账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai 。所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和。给出m段时间内的总收入,判断账本是否合法。 题解: 太神了,并查集还能这么用。每月作为一个节点,同时保存父节点表示的月 阅读全文
posted @ 2016-07-21 20:25 YuanZiming 阅读(247) 评论(0) 推荐(0) 编辑
摘要: bzoj1143[CTSC2008]祭祀river 题意: Y族居住地水系是一个由岔口和河道组成的网络。每条河道连接着两个岔口,并且水在河道内按照一个固定的方向流动。水系中不会有环流。由于人数众多的原因,Y族的祭祀活动会在多个岔口上同时举行。Y族人认为,如果水流可以从一个祭祀点流到另外一个祭祀点,那 阅读全文
posted @ 2016-07-21 20:20 YuanZiming 阅读(828) 评论(0) 推荐(0) 编辑
摘要: bzoj1303[CQOI2009]中位数图 题意: 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。 题解: 首先将数组中所有小于b的数置为-1,等于的置为0,大于的置为1。然后对b及其右边的数的前缀和(b的位置到该位置所有数的和)出现个数建一个数组r,对b左边的数的每 阅读全文
posted @ 2016-07-21 20:15 YuanZiming 阅读(238) 评论(0) 推荐(0) 编辑