1501-1750
Mmh2000
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1590: [Usaco2008 Dec]Secret Message 秘密信息
题目链接题目大意:n条01信息以及m条01密码,求对于每条密码,有多少条信息与他的最长公共前缀=min(密码长度,该条信息长度)题解:把信息建一棵Trie,分别标记路径结点cov和单词结点dang 查询的时候把密码在Trie上跑一遍,未到结尾对应将答案累加dang(密码比信息长),到结尾将答案累加cov(密码比信息短)我的收获:Trie基本应用#include <iostream>#includ原创 2018-02-02 21:48:18 · 447 阅读 · 0 评论 -
1594: [Usaco2008 Jan]猜数游戏
题目链接题目大意:N个数排成一列,有q个询问,每个询问告诉你区间[l,r]的最小值是多少(这N个数各不相同)。问你这q个询问有没有矛盾,有的话从哪里开始有矛盾题解:二分答案,现在检验前mid个询问是否有矛盾 Orz并查集神奇做法我的收获:并查集强啊#include <stdio.h>#include <stdlib.h>#include <string.h>#include <algorit原创 2017-09-09 19:27:14 · 430 阅读 · 0 评论 -
1578: [Usaco2009 Feb]Stock Market 股票市场
题目链接题目大意:有S种股票,已经知道每一天每一种股票的价格。一共有d天,一开始拥有的钱为m,求最后总共能够拥有多少钱题解:看上去决策非常复杂,似乎需要枚举购买时间 实际上,只需要将第i天向第i+1天转移就可以了 因为第一天买第三天卖出=第一天买第二天卖,再用原价买回来,然后第三天卖出做D-1次完全背包即可我的收获:状态的转移……#include <iostream>#include <cst原创 2017-09-10 15:56:34 · 554 阅读 · 0 评论 -
1676: [Usaco2005 Feb]Feed Accounting 饲料计算
题目链接题目大意:初始F2-F1的饲料,c头牛,每头牛每天都吃掉恰好1千克饲料,牛从某一天开始吃,某一天离开,求最近一次运送饲料的时间题解:差分我的收获:……#include <iostream>#include <cstdio>using namespace std;int n,l,r,d,mx,k,s,x,y;int sum[2005];void init(){ cin>>n原创 2017-09-11 06:55:08 · 552 阅读 · 0 评论 -
1600: [Usaco2008 Oct]建造栅栏
题目链接题目大意:给定一个长度为n(n≤2500)的木板,要求分成4部分拼成一个面积为正的四边形,求方案数 题解:构成四边形的条件是三边和大于第四边,f[i][j]表示i块木板长度为j ,大力背包我的收获:……#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n,up;int f[5]原创 2017-09-13 08:08:19 · 470 阅读 · 0 评论 -
1632: [Usaco2007 Feb]Lilypad Pond
题目链接题目大意:棋盘,跳马步,格子上有水,莲花,石头,有水的地方可以+莲花,给定起点终点,求+多少莲花才能到达终点,并求在此前提下的步数和方案数题解:三个要求优先级不同,大力if,只有在优先级高的要求相同时才更新优先级低的我的收获:多条件最短路#include <iostream>#include <cstdio>#include <cstring>#include <queue>usin原创 2017-09-13 08:17:10 · 477 阅读 · 0 评论 -
1705: [Usaco2007 Nov]Telephone Wire 架设电话线
题目链接题目大意:现给出n个数wi,每个数不超过m,对于每个数都可以花费x2的代价使其增加x(每个数只能进行一次),操作完成后任意两个相邻的数x、y会产生|x−y|×C的代价,求最小总代价题目大意:现给出 n 个数 w_i,每个数不超过 m,对于每个数都可以花费 x^2 的代价使其增加 x(每个数只能进行一次),操作完成后任意两 个相邻的数 x、y 会产生 |x−y|×C 的代价,求最小总代价题解:原创 2017-09-21 07:19:18 · 478 阅读 · 0 评论 -
1596: [Usaco2008 Jan]电话网络
题目链接题目大意:在树中选点,使得每个未选中的点均和选中的点相邻题解:贪心比较简单,所以用比较麻烦的树形dp搞一搞…… f[i][0]:以i为根的子树中所有点均被覆盖且不选i的最少点数(i被其儿子覆盖)f[i][0]:以i为根的子树中所有点均被覆盖且不选i的最少点数(i被其儿子覆盖) f[i][1]:以i为根的子树中所有点均被覆盖且选i的最少点数f[i][1]:以i为根的子树中所有点均被覆盖且选原创 2017-09-21 08:00:39 · 420 阅读 · 0 评论 -
1722: [Usaco2006 Mar] Milk Team Select 产奶比赛
题目链接题目大意:奶牛构成一个树形结构,0为根(不能选择0) 每头牛选择可以得到C[i]的收益,选择其和其父亲可以增加一对父子关系 在满足收益大于X的前提下,求最多的父子关系数题解:树上背包 很容易想到f[i][j][0/1]表示以i为根的子树,存在j对父子关系,不选/选i的最大收益,最后一维方便转移很容易想到f[i][j][0/1]表示以i为根的子树,存在j对父子关系,不选/选i的最大收益,原创 2017-09-22 09:59:19 · 787 阅读 · 0 评论 -
1588: [HNOI2002]营业额统计
题目链接题目大意:给出一个n个数的数列a,对于第i个元素ai定义fi=min(abs(ai−aj)),(1<=j<i),其中f1=a1。输出sum(fi)(1<=i<=n)题目大意:给出一个n个数的数列a,对于第i个元素ai定义fi=min(abs(ai-aj)),(1<=j<i),其中f1=a1。输出sum(fi) (1<=i<=n)题解:稍有常识的人都能看出,这是一道平衡树模板,然而线段树这么神原创 2017-08-17 16:00:18 · 342 阅读 · 0 评论 -
1584: [Usaco2009 Mar]Cleaning Up 打扫卫生
题目链接题目大意:n个数,分成若干段,若该段中有k个不同的数,定义该段的费用k*k,求最小费用题解:只会n^2……f(i)=min{f(j)+sum(j+1,i)2}(0≤j<i)f(i)=min\{f(j)+sum(j+1,i)^2\}(0\leq j<i) 观察到对于一个区间,其答案上界为len,也就是说区间内最多len−−−√\sqrt{len}种不同的数动态维护最优转移点pos[j]表示以原创 2017-09-09 08:55:00 · 716 阅读 · 0 评论 -
1614: [Usaco2007 Jan]Telephone Lines架设电话线
题目链接题目大意:给定一张图,定义两点间的距离为路径上边权的max, 可以使k条边边权为0,求1~n的最短路题解:分层图?不需要,贪心考虑,免费道路一定选权大的 二分答案,判断能否找到一条路径,使得该路径上大于mid的值不超过k条,将大于mid的边权置为1,否则为0,最短路即可求解我的收获:贪心考虑,大力二分#include <iostream>#include <cstring>#incl原创 2017-10-19 17:52:17 · 359 阅读 · 0 评论 -
1617: [Usaco2008 Mar]River Crossing渡河问题
题目链接题目大意:带不同数量的牛需要时间累加,求最小渡河时间题解:f[i]表示运送前i头牛并返回的最小代价,转移显然我的收获:……#include <iostream>#include <cstdio>using namespace std;#define INF 0x3f3f3f3fint n,m;int c[5005],f[5005];void init(){ cin>>n原创 2017-10-20 07:45:20 · 402 阅读 · 0 评论 -
1659: [Usaco2006 Mar]Lights Out 关灯
题目链接题目大意:给出一个初始01串和一个操作串,每次可以选一个位置l,让初始串从l开始与操作串异或,在最少化1的个数的同时最少化操作次数,输出字典序最大的操作方案题解:迭代加深搜索,从小到大枚举最终亮着的灯数 剪枝就是迭代加深本身和记录操作数#include <iostream>#include <cstdio>#include <cstring>using namespace std;c原创 2017-10-24 21:02:24 · 581 阅读 · 0 评论 -
1704: [Usaco2007 Mar]Face The Right Way 自动转身机
题目链接题目大意:有一个长度为n的01序列,需要全部置为1,操作一次可以选择一个固定的k(每次操作均相同),将连续k个数取反 求出k,使得在操作次数最少的前提下k尽量小题解:枚举k,顺序扫描,每当遇到一个为0的数,就以它为起点进行修改,修改用差分实现我的收获:……#include <iostream>#include <cstdio>#include <cstring>#include <a原创 2017-12-25 21:04:48 · 371 阅读 · 0 评论 -
1640/1692: [Usaco2007 Dec]队列变换
题目链接题目大意:给你一个字符串,每次可以从头或尾取一个字符加入新字符串,要求最小化新字符串的字典序题解:考虑贪心,若左右不同选较小的,若相同就找到第一个不同的位置比较中间加一个分隔符,把反串接在后面,用rank数组就可以比较了我的收获:SA!#include <bits/stdc++.h>using namespace std;const int N=100005;int n,len;int原创 2018-02-02 11:34:32 · 347 阅读 · 0 评论 -
1635: [Usaco2007 Jan]Tallest Cow 最高的牛
题目链接题目大意:n头牛从1到n线性排列,每头牛的高度为h[i],现在告诉你这里面的牛的最大高度为maxH,而且有r组关系,每组关系输入两个数字,假设为a和b,表示第a头牛能看到第b头牛,能看到的条件是a, b之间的其它牛的高度都严格小于min(h[a], h[b]),而h[b] >= h[a]题解: h[a+1]~a[b-1]都是比h[a]和h[b]小,那么最佳方案就是将次区间的所有高度-1,那么原创 2017-09-09 19:18:16 · 903 阅读 · 0 评论 -
1724: [Usaco2006 Nov]Fence Repair 切割木板
题目链接题目大意:合并果子题解:水题陶冶身心我的收获:23333#include <iostream>#include <algorithm>using namespace std;const int M=50005;int l1=1,r1=0,l2=1,r2=0;int n,a[M];int q1[M],q2[M];int solve(){ if(l1>r1) return q2原创 2018-02-26 15:12:41 · 290 阅读 · 0 评论 -
1566: [NOI2009]管道取珠
题目链接题目大意:有个装置,左侧有上下两条管道分别有n个和m个不同颜色的两种球,右侧一条空管道。每次可以选左侧的一条管道将最右侧的球推到右侧管道,经过n+m次操作,右侧管道从右到左形成一个输出序列。求不同种类的输出序列的产生方式数的平方之和题解:比较强大的模型转化……因为是a2ia_i^2,显然可以 YY出一个乘法原理,就是第一个人从aia_i种方法选一种,第二个人同理……emmmmmm问题就转化成原创 2018-02-19 20:21:42 · 270 阅读 · 0 评论 -
1507: [NOI2003]Editor
题目链接题目大意:实现一个文本编辑器题解:可以用rope…… emmmmmm我的收获:23333#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <ctime> #include <algorithm> #include <iostream> #includ原创 2018-02-19 20:27:08 · 416 阅读 · 0 评论 -
1625: [Usaco2007 Dec]宝石手镯
题目链接题目大意:背包题解:emmmmmm我的收获:23333#include<iostream>#include<cstring>#include<cstdio>using namespace std;int n,m,ans,f[13001],v[3501],c[3501];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=原创 2018-02-22 20:46:02 · 358 阅读 · 0 评论 -
1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
题目链接题目大意:冰雹猜想题解: 冰雹猜想是如果从2n出发,不论n如何庞大,就像瀑布一样迅速坠落。而其他的数字即使不是如此,在经过若干次的变换之后也必然会到纯偶数4n4^n:16-8-4-2-1的循环。据日本和美国的数学家攻关研究,在小于7*10^11的所有的自然数,都符合这个规律参考资料所以直接做就可以了我的收获:23333#include <bits/stdc++.h>int n,ans原创 2018-02-22 20:49:55 · 619 阅读 · 0 评论 -
1599: [Usaco2008 Oct]笨重的石子
题目链接题目大意:三个筛子分别有S1,S2,S3个面,求出现几率最大的和题解:看数据范围知解法系列我的收获:23333#include <cstdio>#include <algorithm>#define maxn 100using namespace std;int N, cnt[maxn], a, b, c, ans;int main(){ int i, j, k;原创 2018-02-22 21:12:27 · 377 阅读 · 0 评论 -
1636/1699: [Usaco2007 Jan]Balanced Lineup排队
题目链接题目大意:RMQ题解:boy next ♂door我的收获:233333#include <cstdio>#include <cmath>#include <iostream>using namespace std;#define pow2(x) (1<<(x))const int M=50005;int n,...原创 2018-02-23 08:27:50 · 382 阅读 · 0 评论 -
1670: [Usaco2006 Oct]Building the Moat护城河的挖掘
题目链接题目大意:求凸包的周长……题解:emm我的收获:2333#include <bits/stdc++.h> using namespace std; #define N 5005 int n;double ans;struct Point{ double x,y; Point(){} Point(double _,double __){x=_,y=__;}原创 2018-02-23 08:45:51 · 353 阅读 · 0 评论 -
1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
题目链接题目大意:可重叠k次重复字串题解:根据经典论文中的解法……先二分答案,变成判定性问题,然后将后缀分成若干组,判断是否有一个组的后缀个数不小于k 如果有,那么存在k个相同的子串满足条件,否则不存在我的收获:SA大法吼……#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const in原创 2018-02-23 09:00:49 · 298 阅读 · 0 评论 -
1602: [Usaco2008 Oct]牧场行走
题目链接题目大意:求树上点对距离题解:LCA我的收获:2333333#include<iostream>#include<cstdio>#include<queue>#include <cstring>using namespace std;const long long M=50005;struct edge{ long long from,to,val,next;}e[M*2原创 2018-02-23 09:03:09 · 331 阅读 · 0 评论 -
1603: [Usaco2008 Oct]打谷机
题目链接题目大意:求1到n的路径权值异或和题解:dfs我的收获:3222222#include <bits/stdc++.h>using namespace std;struct edge{ int v, w, nxt;}e[2005];int n, fst[1005];bool dis[1005], vis[1005];void addedge(int i, int u, in原创 2018-02-23 09:07:50 · 277 阅读 · 0 评论 -
1532: [POI2005]Kos-Dicing
1313131原创 2018-03-20 22:20:53 · 395 阅读 · 0 评论 -
1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
13131313原创 2018-03-20 22:20:48 · 448 阅读 · 0 评论 -
1502: [NOI2005]月下柠檬树
题目链接题目大意:有一个由圆锥和圆台组成的柠檬树,在月亮发出的平行光下,可以形成一个影子,求这个影子的面积题解:自适应辛普森积分……我的收获:2333#include<cmath>#include<cstdio>#include<string>#include<cstring>#include<algorithm>using namespace std;const double eps=原创 2018-03-28 20:17:11 · 534 阅读 · 0 评论 -
1638: [Usaco2007 Mar]Cow Traffic 奶牛交通
1134131原创 2017-07-19 23:19:04 · 371 阅读 · 0 评论 -
1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
题目链接题目大意:给出n个数,输出对于每个数x,其它的数有多少个是它的约数题解:类似于筛素数。对于出现的每个数x,计算它对1–mx中所有其倍数的贡献。可以把重复出现的数字合并计算#include <iostream>#include <cstdio>using namespace std;const int M=100005;int n,mx,a[M],cnt[M*10],ans[M*10]原创 2017-01-22 07:46:33 · 490 阅读 · 0 评论 -
1629: [Usaco2007 Demo]Cow Acrobats
题目链接 题目大意:初始集合S为空。模拟四种集合操作:集合并、交、差、补集并。题解:将区间左右端点*2,这样闭区间在偶数位置,开区间在奇数位置。然后就是区间染色颜色反转两个操作。注意标记的优先级就好原创 2017-03-15 19:17:45 · 530 阅读 · 0 评论 -
1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪
题目链接题目大意:给定一个二分图。(AB两个集合的点为n,m),边有K个。问去掉哪些点后最大匹配会减少。题解:二分图乱搞一下原创 2017-03-25 11:13:05 · 446 阅读 · 0 评论 -
1560: [JSOI2009]火星藏宝图
题目大意题目大意:q个询问,要求回答S某个子串的最短循环节长度题解:hash原创 2017-03-25 09:08:04 · 469 阅读 · 0 评论 -
1529: [POI2005]ska Piggy banks
题目链接题目大意:有 N 个存钱罐。每个存钱罐只能用钥匙打开或者砸开。每个存钱罐的钥匙都在另一个存钱罐里,问最少要打破多少个存钱罐。题解:由于是基环外向树森林,每棵基环树上只需要打开环上的一个点就好了,答案就是联通块的个数我的收获:基环树基本模型……#include <iostream>#include <cstdio>using namespace std;#define M 1000005原创 2017-05-21 19:36:13 · 364 阅读 · 0 评论 -
1509: [NOI2003]逃学的小孩
题目链接题目大意:从一棵树中找出三个点x,y,z,使min(dis[x][z],dis[y][z])+dis[x][y]最大题解:有比较神的O(n)dp做法,但我比较弱,这里写一下贪心做法。如果只考虑让dis[x][y]最大,取直径最优,本题可以这样做……可以画个图感性认知一下。证明详见此处我的收获:跪烂神奇乱搞#include <iostream>#include <cstdio>#inclu原创 2017-04-03 10:58:42 · 573 阅读 · 0 评论 -
1537: [POI2005]Aut- The Bus
题目链接题目大意:顺序经过k个点,求获得的最大权值和。题解:很久前刚学dp时入门题的加强版,当时是O(n^2)过的…… 设f[i]表示到第i个点的最大值,则有转移式: f[i]=max{f[j]+w[i]} x[j]<=x[i],y[j]<=y[i]这是一个二维偏序问题,排序+树状数组就可以维护了我的收获:偏序get#include <iostream>#include <cstdio>#i原创 2017-06-05 21:05:14 · 552 阅读 · 0 评论 -
1706: [usaco2007 Nov]relays 奶牛接力跑
题目链接题目大意:给定一张无向图,求从s出发恰好经过n条边到达e的最短路题解:点编号比较大,离散化点,用f[i]表示经过i+1条边到达e的最短路, ,f[i]=f[i−1]∗f[i−2],f[k−1]=f[0]kf[i]=f[i-1]*f[i-2],f[k-1]=f[0]^k,大概跟优化线性递推差不多 因为修改了矩阵乘法的定义,单位矩阵也应该修改,直接手动乘一次就好我的收获:#include<c原创 2017-07-02 14:55:30 · 782 阅读 · 0 评论
分享