随笔分类 - 高效算法
BZOJ 2440 [中山市选2011]完全平方数 (二分 + 莫比乌斯函数)
摘要:2440: [中山市选2011]完全平方数 Description 小 X 自幼就很喜欢数。但奇怪的是,他十分讨厌完全平方数。他觉得这些数看起来很令人难受。由此,他也讨厌所有是完全平方数的正整数倍的数。然而这丝毫不影响他对其他数的热爱。 这天是小X的生日,小 W 想送一个数给他作为生日礼物。当然他不
阅读全文
BZOJ 4765 普通计算姬 (分块 + BIT)
摘要:4765: 普通计算姬 Description "奋战三星期,造台计算机"。小G响应号召,花了三小时造了台普通计算姬。普通计算姬比普通计算机要厉害一些 。普通计算机能计算数列区间和,而普通计算姬能计算树中子树和。更具体地,小G的计算姬可以解决这么个问题 :给定一棵n个节点的带权树,节点编号为1到n,
阅读全文
BZOJ 1029 [JSOI2007]建筑抢修 (贪心 + 优先队列)
摘要:1029: [JSOI2007]建筑抢修 Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。现在的情况是:T部落基地
阅读全文
UVaLive 3353 Optimal Bus Route Design (最小费用流)
摘要:题意:给定一个 n 个点的有向带权图,让你找若干个圈,使得每个结点恰好属于一个圈,并且总长度尽量小。 析:一开始想的是先缩点,先用DP,来求。。。 题解给的是最小费用流或者是最佳完全匹配,其实都是一样的,因为每个点都只属于一个圈,那么对于每个点的入度和出度都应该是一样的,然后就是把每个点都拆成两个点
阅读全文
BZOJ 1014 [JSOI2008]火星人prefix (Splay + Hash + 二分)
摘要:1014: [JSOI2008]火星人prefix Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字符 m a d a m
阅读全文
BZOJ 1011 [HNOI2008]遥远的行星 (误差分析)
摘要:1011: [HNOI2008]遥远的行星 Description 直线上N颗行星,X=i处有行星i,行星J受到行星I的作用力,当且仅当i<=AJ.此时J受到作用力的大小为 Fi->j=Mi*Mj/(j-i) 其中A为很小的常量,故直观上说每颗行星都只受到距离遥远的行星的作用。请计算每颗行星的受力,
阅读全文
BZOJ 1010 [HNOI2008]玩具装箱toy (斜率优化DP)
摘要:1010: [HNOI2008]玩具装箱toy Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci
阅读全文
BZOJ 3110 K大数查询 (树套树)
摘要:3110: [Zjoi2013]K大数查询 Description 有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。 有N个位置,M个操作。操作有两种,
阅读全文
HDU 5618 Jam's problem again (cdq分治+BIT 或 树状数组套Treap)
摘要:题意:给n个点,求每一个点的满足 x y z 都小于等于它的其他点的个数。 析:三维的,第一维直接排序就好按下标来,第二维按值来,第三维用数状数组维即可。 代码如下: cdq 分治: 树套树:
阅读全文
51Nod 1376 最长递增子序列的数量 (DP+BIT)
摘要:题意:略。 析:dp[i] 表示以第 i 个数结尾的LIS的长度和数量,状态方程很好转移,先说长度 dp[i] = max { dp[j] + 1 | a[i] > a[j] && j < i },然后是数量,dp[i] = sigma(dp[j]) if dp[i] == dp[j] + 1。 如
阅读全文
POJ 2728 Desert King (最优比率树)
摘要:题意:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一条路即可,建造水管距离为坐标之间的欧几里德距离,费用为海拔之差,现在要求方案使得费用与距离的比值最小,很显然,这个题目是要求一棵最优比率生成树。 析:也就是求 r = sigma(x[i] * d) / sigma(x
阅读全文
HDU 3681 Prison Break (二分 + bfs + TSP)
摘要:题意:给定上一个 n * m的矩阵,你的出发点是 F,你初始有一个电量,每走一步就会少1,如果遇到G,那么就会加满,每个G只能第一次使用,问你把所有的Y都经过,初始电量最少是多少。 析:首先先预处理每个F,G,Y的最短距离,用 bfs 可以实现,然后再二分电量,进行判断,在进行判断时,dp[s][i
阅读全文
POJ 3057 Evacuation (二分匹配)
摘要:题意:给定一个图,然后有几个门,每个人要出去,但是每个门每个秒只能出去一个,然后问你最少时间才能全部出去。 析:初一看,应该是像搜索,但是怎么保证每个人出去的时候都不冲突呢,毕竟每个门每次只能出一个人,并不好处理,既然这样,我们可以把每个门和时间的做一个二元组,然后去对应每个人,这样的话,就是成了二
阅读全文
BZOJ 4326 NOIP2015 运输计划 (二分+树上差分)
摘要:4326: NOIP2015 运输计划 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 1930 Solved: 1231[Submit][Status][Discuss] Description 公元 2044 年,人类进入了宇宙纪元。L 国有 n 个
阅读全文
Gym 101201I Postman (贪心)
摘要:题意:有个邮递员,要送信,每次最多带 m 封信,有 n 个地方要去送,每个地方有x 封要送,每次都到信全送完了,再回去,对于每个地方,可以送多次直到送够 x 封为止。 析:一个很简单的贪心,就是先送最远的,如果送完最远的还剩下,那么就送次远的,如果不够了,那么就加上回来的距离,重新带够 m 封信,对
阅读全文
Gym 100792C Colder-Hotter (三分)
摘要:题意:系统有一个点对,让你去猜,每次你猜一个,如果这个数和系统里的那个点距离比上一个你猜的近,那么返回1,否则返回0,第一次猜一定返回0,在不超过500次的情况下,猜出正确答案。 析:是一个简单的三分,横纵坐标可以分开来考虑,每次两次三分,然后看那个点更偏向哪边即可,注意这个题,有一个坑,那就是你输
阅读全文
BZOJ 2002 Bounce 弹飞绵羊 (分块或动态树)
摘要:2002: [Hnoi2010]Bounce 弹飞绵羊 Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时
阅读全文
UVa 3211 Now or later (二分+2-Sat)
摘要:题意:有 n 架飞机,每个飞机早着陆,或者晚着陆,让你安排一个方式,让他们着陆的时间间隔尽量大。 析:首先对于时间间隔,可以用二分来解决,然后就成了一个判定性问题,然后怎么判断该时间间隔是不是成立呢,那么用2-Sat能解决,每次对于时间间隔都小于正在判定的,然后给他们连上相应的边,是连两条,然后跑一
阅读全文
UVALive 7752 Free Figurines (瞎搞)
摘要:题意:给定 n 个盒子,然后告诉你每个盒子在哪个盒子里,数值越大,盒子越大,给定你初态,和末态,问你最少要几步能完成,只有两种操作,一种是把一个盒子连同里面的小盒子放到一个空盒子里,另一种是把一个堆盒子里的最外面的那个盒子拿出来。 析:首先,先遍历一次,如果初态和不一样,那么初态后面的要全部拿出来,
阅读全文
UVa 1608 Non-boring sequences (分治)
摘要:题意:给你一个长度为n序列,如果这个任意连续子序列的中都有至少出现一次的元素,那么就称这个序列是不无聊的,判断这个序列是不是无聊的。 析:首先如果整个序列中有一个只出过一次的元素,假设是第 p 个,那么我就可以看他左边和右边的序列是不是不无聊,也就是判断 1~p-1 和 p+1 ~ n,这可以用分治
阅读全文
浙公网安备 33010602011771号