随笔分类 -  善用STL

摘要:bzoj1745[Usaco2005 oct]Flying Right 飞行航班 题意: n个农场,有k群牛要从一个农场到另一个农场(每群由一只或几只奶牛组成)飞机白天从农场1到农场n,晚上从农场n到农场1,上面有c个座位,问最多可以满足多少只牛的要求。n≤10000,k≤50000,c≤100。 阅读全文
posted @ 2016-11-16 06:49 YuanZiming 阅读(553) 评论(0) 推荐(0)
摘要:bzoj2208[Jsoi2010]连通数 题意: 给一个有向图,每个点对答案的贡献为该点可达的点个数,求答案。n≤2000,m≤4000000。 题解: 听说暴力可过QAQ不过为了练tanjan还是写了常规写法。 先缩点,接着对每个入度为0的点做dp,每个点维护一个bitset。对于当前点,先将该 阅读全文
posted @ 2016-11-15 21:24 YuanZiming 阅读(377) 评论(0) 推荐(0)
摘要:bzoj2678[Usaco2012 Open]Bookshelf 题意: 给出一个序列,有两个元素ai、bi,要求将一个序列分成几段,每段的bi和不能超过l,每段的代价为该段最大的ai,求一个方案使代价和最小。n≤100000。 题解: 首先方程为f[i]=f[j]+mx[j+1..i],sum[ 阅读全文
posted @ 2016-11-15 21:14 YuanZiming 阅读(226) 评论(0) 推荐(0)
摘要:bzoj4716假摔 题意: 给出一个矩阵,求这个矩阵中权值和第k小的长在xmin到n之间,宽在ymin到m之间的子矩阵。n,m≤1000,k≤250000。 题解: 首先求出长为xmin,宽为ymin的子矩阵放入优先队列,每次取出时如果该矩阵之前没有出现过(用set判重),则将其扩展并放入优先队列 阅读全文
posted @ 2016-11-11 19:43 YuanZiming 阅读(224) 评论(0) 推荐(0)
摘要:bzoj1528[POI2005]sam-Toy Cars bzoj1826[JSOI2010]缓存交换 题意: Jasio有n个不同的玩具,它们都被放在了很高的架子上,地板上不会有超过k个玩具。当Jasio想玩地板上的其他玩具时,他会自己去拿,如果他想玩的玩具在架子上,他的妈妈则会帮他去拿,当她拿 阅读全文
posted @ 2016-11-11 18:54 YuanZiming 阅读(305) 评论(0) 推荐(0)
摘要:bzoj1747[Usaco2005 open]Expedition 探险 题意: n个加油站,每个坐标为x,可加油量为ai。一辆车初始油量为l,从起点到终点,每走一个单位就掉一个单位的油,问最少加油次数。n≤10000,坐标≤1000000。 题解: 先假设永远不加油,之后每走一段路之前如果油不够 阅读全文
posted @ 2016-10-30 15:45 YuanZiming 阅读(248) 评论(0) 推荐(0)
摘要:bzoj3355[Usaco2004 Jan]有序奶牛 题意: 约翰的N头牛排成一行挤奶时,有确定的顺序。他拥有L条关于奶牛顺序的信息,所有的信息都写成“A在B的前面”这样的形式。请帮助约翰删除尽可能多的冗余信息,但要保证能推出原有的顺序。n≤1500。 题解: 首先拓扑排序,并给每个节点设定一个b 阅读全文
posted @ 2016-10-30 15:39 YuanZiming 阅读(365) 评论(0) 推荐(0)
摘要:bzoj1702[Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 题意: N头牛,一共K种特色。每头牛有多种特色。[i,j]段被称为balanced当且仅当K种特色在[i,j]内拥有次数相同。求最大的[i,j]段长度。n≤100000,k≤30。 题解: 得到式子: 阅读全文
posted @ 2016-10-17 21:25 YuanZiming 阅读(276) 评论(0) 推荐(0)
摘要:bzoj1707[Usaco2007 Nov]tanning分配防晒霜 题意: n头牛,第i头适应spf值在ai到bi之间的防晒霜。m种防晒霜,每种spf值为ci,有di瓶,问最多多少奶牛能得到合适的防晒霜。n,m≤2500。 题解: 贪心,把牛按上限从小到大排序,然后对于每只奶牛,应该选它可以用的 阅读全文
posted @ 2016-09-26 21:30 YuanZiming 阅读(195) 评论(0) 推荐(0)
摘要:bzoj1691[Usaco2007 Dec]挑剔的美食家 题意: m种牧草,每种都有一个价钱和鲜度,n头奶牛,每头都有一个牧草价钱下限和牧草鲜度上限,要求从每头奶牛从m种牧草中选取一种符合要求的牧草,使得总价钱最小,两头奶牛选的种类不能相同。n,m≤100000。 题解: 贪心。先将所有牧草按鲜度 阅读全文
posted @ 2016-09-25 15:49 YuanZiming 阅读(307) 评论(0) 推荐(0)
摘要:bzoj1637[Usaco2007 Mar]Balanced Lineup 题意: n头牛,第i头牛位置为ai,种族为bi(只能为0,1),求一个区间(按数轴位置),使得区间两端牛距离差最大且两种种族牛数相等。n≤50000。 题解: 按位置排序。然后利用前缀和sum[i][0]-sum[j-1] 阅读全文
posted @ 2016-09-23 21:42 YuanZiming 阅读(273) 评论(0) 推荐(0)
摘要:bzoj1572[Usaco2009 Open]工作安排Job 题意: n个工作,每个需要的时间都为1,最晚完成时间为ti,价值为vi,问最多能得到的价值。n≤100000。 题解: 先把所有工作按最晚开始时间排序,然后把能做的工作先做掉(如果前面的工作时间有空隙可以填上),处理剩下的工作时,比较之 阅读全文
posted @ 2016-09-18 20:33 YuanZiming 阅读(424) 评论(0) 推荐(0)
摘要:bzoj1724[Usaco2006 Nov]Fence Repair 切割木板 题意: FJ需要n块木板,第i块木板长度为ai。但他只有一块长度为sigma(i,1,n)ai的木板。每切一次的代价为所切割木板的长度,问最小代价。n≤20000 题解: 等价于合并石子(把单块木板的长度看作石子)。故 阅读全文
posted @ 2016-09-18 20:14 YuanZiming 阅读(270) 评论(0) 推荐(0)
摘要:bzoj3383[Usaco2004 Open]Cave Cows 4 洞穴里的牛之四 题意: 平面直角坐标系有n个点,从(0,0)出发,从一个点上可以跳到所有与它横纵坐标距离都≤2的点上,求最少步数使得纵坐标为T。 题解: 先用set存下所有的点。在做dp的时候把所有横纵坐标与当前节点距离≤2的节 阅读全文
posted @ 2016-09-16 15:29 YuanZiming 阅读(337) 评论(0) 推荐(0)
摘要:bzoj3375[Usaco2004 Mar]Paranoid Cows 发疯的奶牛 题意: 依次给出n只奶牛的产奶时间段,求最大的k使得前k只奶牛不存在一个时间段被另一个时间段完全覆盖的情况。n≤100000。 题解: 设当前在处理第i只奶牛,前i-1只奶牛都合法。那么如果前i-1只奶牛中时间段左 阅读全文
posted @ 2016-09-16 15:03 YuanZiming 阅读(329) 评论(0) 推荐(0)
摘要:bzoj2288【POJ Challenge】生日礼物 题意: 给一个序列,求不超过m个连续的部分,使元素和最大。序列大小≤100000 题解: 先把连续的正数和负数合并起来,接着如果正数个数小于m则全选,否则需要确定去掉那个正数或合并哪个正数。初始ans设为所有正数和,将所有的数按绝对值大小放入堆 阅读全文
posted @ 2016-09-11 14:36 YuanZiming 阅读(162) 评论(0) 推荐(0)
摘要:bzoj1150[CTSC2007]数据备份Backup 题意: n个地方,在其中找k对地方,每个地方只属于一对。定义一对的费用为两个地方的距离,求最小费用总和。 题解: 把所有相邻地方距离放入一个集合中,每次取出最小的那个距离x,然后将相邻两边的距离l,r合并成l+r-x。如果这个x缺一边相邻,则 阅读全文
posted @ 2016-09-04 16:06 YuanZiming 阅读(253) 评论(0) 推荐(0)
摘要:bzoj3687简单题 题意: 给个集合,求所有子集的元素和的异或和。集合元素个数≤1000,整个集合的元素和≤2000000 题解: 用bitset维护每个子集元素和的个数是奇数还是偶数。每次读入一个元素,则bs^=bs<<a[i],意思是将之前所有的子集和加上这个新的元素,然后与已有的子集和异或 阅读全文
posted @ 2016-09-04 15:26 YuanZiming 阅读(218) 评论(0) 推荐(1)
摘要:bzoj4236JOIOJI 题意: 给一个只由JOI三个字母组成的串,求最长的一个子串使其中JOI三个字母出现次数相等。串长度≤200000 题解: 有点像bzoj4384,因此推算的过程是差不多的,但还是有不同因为本题要求的是出现次数相等,而那题要求的是不等: cnt[1][i]-cnt[1][ 阅读全文
posted @ 2016-08-16 22:07 YuanZiming 阅读(362) 评论(0) 推荐(0)
摘要:bzoj1604[Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 题意: n只牛,牛结成群当且仅当两只牛曼哈顿距离≤c或存在第三头牛使两头牛与它的曼哈顿距离都≤c,求最大的群和群数。n≤100000 题解: 好神啊。先把曼哈顿距离转成切比雪夫距离,(x,y)转为(x+y 阅读全文
posted @ 2016-08-14 06:43 YuanZiming 阅读(313) 评论(0) 推荐(0)