随笔分类 -  枚举

摘要:注意:本题解仅供参考学习,请勿直接抄袭代码,否则造成的后果和笔者无关。 第一题: 题意: 对n个数升序排序。 题解: 快排,不解释。 代码(省略了输入输出函数,下同): 1 val n = getInt (); 2 val l = getIntTable (n); 3 fun qsort [] = 阅读全文
posted @ 2019-11-11 11:49 YuanZiming 阅读(1503) 评论(0) 推荐(0)
摘要:bzoj1661[Usaco2006 Nov]Big Square 巨大正方形 题意: n*n的图中有一些J点,一些B点和一些空白点,问在空白点添加一个J点所能得到的有4个J点组成最大正方形面积。n≤100。 题解: 枚举两个点,然后根据这两个点组成的边尝试在4个上下两个方向组成四边形。 代码: 2 阅读全文
posted @ 2016-10-30 15:01 YuanZiming 阅读(400) 评论(0) 推荐(0)
摘要:bzoj1676[Usaco2005 Feb]Feed Accounting 饲料计算 题意: 知道草料到来时F1kg,第D天F2kg。同时知道每头牛到来时间和离开时间,一牛一天吃1kg草料,问草料到来是第几天。 题解: 直接用区间左端点对应数组元素++,右端点+1对应数组元素--的方法,最后扫一下 阅读全文
posted @ 2016-10-16 15:54 YuanZiming 阅读(191) 评论(0) 推荐(0)
摘要:bzoj1684[Usaco2005 Oct]Close Encounter 题意: 找一个分数它最接近给出一个分数。你要找的分数的分子分母的范围在1..32767。 题解: 枚举所求分数的分子,用其乘上给出分数得到一个浮点数分母,比较分母向上/下取整所得分数与答案比较。 代码: 20160927 阅读全文
posted @ 2016-10-16 14:41 YuanZiming 阅读(186) 评论(0) 推荐(0)
摘要:bzoj1643[Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪 题意: 给出n,问4个整数的平方和为n有多少种方案,顺序不同也算。n≤10000。 题解: 神犇们都用dp,我不会……故直接三重循环枚举1到sqrt(n)判断第四个数是不是整数,结果排名倒数 阅读全文
posted @ 2016-09-26 21:08 YuanZiming 阅读(251) 评论(0) 推荐(0)
摘要:bzoj1635[Usaco2007 Jan]Tallest Cow 最高的牛 题意: n头牛,知道所有牛身高不超过h,给出r条关系(a,b)表示第a+1到b-1头牛都比a,b牛矮,且a牛不必b牛高,问每头牛的最高身高。n≤10000,r≤10000。 题解: 那个“a牛不必比b牛高”的条件没什么用 阅读全文
posted @ 2016-09-25 16:30 YuanZiming 阅读(228) 评论(0) 推荐(0)
摘要:bzoj1651[Usaco2006 Feb]Stall Reservations 专用牛棚 题意: 有N头牛,每头牛有个喝水时间段,这段时间它将专用一个棚。现在给出每头牛的喝水时间段,问至少要多少个棚才能满足它们的要求。n≤50000,时刻≤1000000。 题解: 时间段左端点对应的sum元素+ 阅读全文
posted @ 2016-09-19 21:32 YuanZiming 阅读(207) 评论(0) 推荐(0)
摘要:bzoj1622[Usaco2008 Open]Word Power 名字的能量 题意: n个名字,m个能量字符串,每个名字的能量为其中含有能量字符串的种数(含有指有一个不连续子串与能量字符串相等),问每个名字的能量。n≤1000,m≤100。 题解: 暴力可过(似乎数据弱)。 代码: 201609 阅读全文
posted @ 2016-09-18 20:58 YuanZiming 阅读(230) 评论(0) 推荐(0)
摘要:bzoj1621[Usaco2008 Open]Roads Around The Farm分岔路口 题意: n头牛在路上走,每当它们走到岔路,如果这些牛可以分为数量相差刚好为k的两群,那么它们就会分成这样的两群往前走,否则就会停下来吃草。问最后有多少群在吃草。n≤10^9,k≤1000。 题解: 暴 阅读全文
posted @ 2016-09-18 20:19 YuanZiming 阅读(159) 评论(0) 推荐(0)
摘要:bzoj1599[Usaco2008 Oct]笨重的石子 题意: 三个不同的骰子,分别有S1,S2,S3个面。求出出现几率最大的和是多少。如果有很多种和出现的几率相同,那么就输出小的那一个。2≤S1≤20,2≤S2≤20,2≤S3≤40。 题解: 枚举。 代码: 20160917 阅读全文
posted @ 2016-09-18 19:58 YuanZiming 阅读(143) 评论(0) 推荐(0)
摘要:bzoj3374[Usaco2004 Mar]Special Serial Numbers 特殊编号 题意: 求比一个数大的最小的一半以上的数位相同的数。数位数≤100。 题解: 模拟题。从低位枚举到高位,对于每一位枚举比原数该位大的数,同时枚举这一位之后要由0和哪一个数组成,最后得到一个最小的数输 阅读全文
posted @ 2016-09-16 15:36 YuanZiming 阅读(316) 评论(0) 推荐(0)
摘要:bzoj4397[Usaco2015 dec]Breed Counting 题意: 给定一个长度为N的序列,每个位置上的数只可能是1,2,3中的一种。有Q次询问,每次给定两个数a,b,请分别输出区间[a,b]里数字1,2,3的个数。n≤100000,q≤100000。 题解: 裸前缀和。 代码: 2 阅读全文
posted @ 2016-09-16 10:56 YuanZiming 阅读(190) 评论(0) 推荐(0)
摘要:bzoj2295【POJ Challenge】我爱你啊 题意: 求一个字符串中有多少个"luvletter"(不包括引号)。字符串长度≤100000。 题解: 连kmp都不用…… 代码: 20160905 阅读全文
posted @ 2016-09-11 14:56 YuanZiming 阅读(164) 评论(0) 推荐(0)
摘要:bzoj3687简单题 题意: 给个集合,求所有子集的元素和的异或和。集合元素个数≤1000,整个集合的元素和≤2000000 题解: 用bitset维护每个子集元素和的个数是奇数还是偶数。每次读入一个元素,则bs^=bs<<a[i],意思是将之前所有的子集和加上这个新的元素,然后与已有的子集和异或 阅读全文
posted @ 2016-09-04 15:26 YuanZiming 阅读(216) 评论(0) 推荐(1)
摘要:bzoj2021[Usaco2010 Jan]Cheese Towers 题意: John要建一个奶酪塔,高度最大为T。他有N种奶酪,每种无限个,第i种高度为Hi(一定是5的倍数),价值为Vi。一块高度>=K的奶酪被称为大奶酪,一个奶酪如果在它上方有大奶酪(多块只算一次),它的高度就会变成原来的4/ 阅读全文
posted @ 2016-09-03 21:30 YuanZiming 阅读(321) 评论(0) 推荐(0)
摘要:bzoj1673[Usaco2005 Dec]Scales 天平 题意: n个砝码,每个砝码重量大于前两个砝码质量和,天平承重为c,求天平上最多可放多种的砝码。n≤1000,c≤2^30。 题解: 斐波那契数列到30多项就爆int了,所以本题n其实≤30。故爆搜即可,加个剪枝:当前选的砝码质量和+剩 阅读全文
posted @ 2016-08-25 22:35 YuanZiming 阅读(282) 评论(0) 推荐(0)
摘要:bzoj2102[Usaco2010 Dec]The Trough Game 题意: m个要求,每个要求由一个长度为n的01串和一个数组成,表示只有与给出的01串按位与后1的个数为给出数的01串满足要求。求满足所有要求的01串。m≤100,n≤20。 题解: 暴力枚举01串,我以为会超时,但没有。 阅读全文
posted @ 2016-08-24 22:29 YuanZiming 阅读(220) 评论(0) 推荐(0)
摘要:bzoj1709[Usaco2007 Oct]Super Paintball超级弹珠 题意: n*n的网格中有k头牛。在一个格子里发射子弹可以射中本格子,同行,同列,左斜线,右斜线(就是一个米字形)的牛,问能射中所有牛的格子有几个。n≤100。 题解: 枚举所有格子,从当前格子出发按题目里的方向走累 阅读全文
posted @ 2016-08-15 22:01 YuanZiming 阅读(297) 评论(0) 推荐(0)
摘要:bzoj4582[Usaco2016 Open]Diamond Collector 题意: n个钻石,每个都有一个大小,现在将其装进2个盒子里,每个盒子里的钻石最大的与最小的大小不能超过k,问最多能装多少个。n最大50000。 题解: 我真傻,真的~首先对大小排序,然后找以i为左端点的可装区间,这个 阅读全文
posted @ 2016-08-03 13:59 YuanZiming 阅读(253) 评论(0) 推荐(0)
摘要:bzoj1646[Usaco2007 Open]Catch That Cow 抓住那只牛 题意: 数轴上,起点在n,终点在k,每次走可以向左走一步或向右走一步或瞬移到当前坐标的两倍位置,问最少走几次。0≤n,k≤100000。 题解: bfs,允许走的位置边界为[0,max(n,k)+1]。下界为0 阅读全文
posted @ 2016-08-03 13:45 YuanZiming 阅读(335) 评论(0) 推荐(0)