![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
1501-1750
Mmh2000
这个作者很懒,什么都没留下…
展开
-
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 · 409 阅读 · 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 · 447 阅读 · 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 · 298 阅读 · 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 · 276 阅读 · 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 · 560 阅读 · 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 · 269 阅读 · 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 · 555 阅读 · 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 · 320 阅读 · 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 · 333 阅读 · 0 评论 -
1632: [Usaco2007 Feb]Lilypad Pond
题目链接题目大意:棋盘,跳马步,格子上有水,莲花,石头,有水的地方可以+莲花,给定起点终点,求+多少莲花才能到达终点,并求在此前提下的步数和方案数题解:三个要求优先级不同,大力if,只有在优先级高的要求相同时才更新优先级低的我的收获:多条件最短路#include <iostream>#include <cstdio>#include <cstring>#include <queue>usin原创 2017-09-13 08:17:10 · 387 阅读 · 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 · 330 阅读 · 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 · 410 阅读 · 0 评论 -
1578: [Usaco2009 Feb]Stock Market 股票市场
题目链接题目大意:有S种股票,已经知道每一天每一种股票的价格。一共有d天,一开始拥有的钱为m,求最后总共能够拥有多少钱题解:看上去决策非常复杂,似乎需要枚举购买时间 实际上,只需要将第i天向第i+1天转移就可以了 因为第一天买第三天卖出=第一天买第二天卖,再用原价买回来,然后第三天卖出做D-1次完全背包即可我的收获:状态的转移……#include <iostream>#include <cst原创 2017-09-10 15:56:34 · 362 阅读 · 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 · 335 阅读 · 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 · 277 阅读 · 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 · 267 阅读 · 0 评论 -
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 · 355 阅读 · 0 评论 -
1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
13131313原创 2018-03-20 22:20:48 · 353 阅读 · 0 评论 -
1532: [POI2005]Kos-Dicing
1313131原创 2018-03-20 22:20:53 · 264 阅读 · 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 · 190 阅读 · 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 · 223 阅读 · 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 · 204 阅读 · 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 · 248 阅读 · 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 · 296 阅读 · 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 · 287 阅读 · 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 · 460 阅读 · 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 · 272 阅读 · 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 · 293 阅读 · 0 评论 -
1566: [NOI2009]管道取珠
题目链接题目大意:有个装置,左侧有上下两条管道分别有n个和m个不同颜色的两种球,右侧一条空管道。每次可以选左侧的一条管道将最右侧的球推到右侧管道,经过n+m次操作,右侧管道从右到左形成一个输出序列。求不同种类的输出序列的产生方式数的平方之和题解:比较强大的模型转化……因为是a2ia_i^2,显然可以 YY出一个乘法原理,就是第一个人从aia_i种方法选一种,第二个人同理……emmmmmm问题就转化成原创 2018-02-19 20:21:42 · 196 阅读 · 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 · 214 阅读 · 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 · 775 阅读 · 0 评论 -
1725: [Usaco2006 Nov]Corn Fields牧场的安排
题目链接题目大意:在一个M*N的矩阵上放草,有些位置不能放置,放的草不能四连通,求方案数。题解:1.判断单行状态x是否可行:对于单独的一行,二进制为1 0 1……没有1相邻时符合,这样左移一位并&就是0 2.判断单行状态x和矩阵状态k是否可行:x&k==0f[i][j]表示种到第i行,第i行状态为j的方案数f[i][j]表示种到第i行,第i行状态为j的方案数f[i][j]=(f[i][j]+f[原创 2017-07-02 16:05:21 · 394 阅读 · 0 评论 -
1610: [Usaco2008 Feb]Line连线游戏
题目链接题目大意:n个点,求能连成多少不平行的直线题解:枚举两点,统计不同斜率即可,注意斜率不存在 为了防止精度误差,直接用pair+set或排序去重就可以了我的收获:pair特殊应用#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <iostream> using names原创 2017-07-16 12:03:26 · 333 阅读 · 0 评论 -
1691: [Usaco2007 Dec]挑剔的美食家
题目链接题目大意:m种牧草,每种都有一个价钱和鲜度,n头奶牛,每头都有一个牧草价钱下限和牧草鲜度下限,要求从每头奶牛从m种牧草中选取一种符合要求的牧草,使得总价钱最小,两头奶牛选的种类不能相同。n,m≤100000。题解:二维偏序。首先排序解决一维,另一维贪心搞搞。 对于牛和草按照新鲜度从大到小排序,枚举每头牛,把满足条件新鲜度条件的草的价格插入(由于从大到小,若牧草i满足牛1的条件,则其满足牛2原创 2017-07-12 21:13:50 · 545 阅读 · 0 评论 -
1601: [Usaco2008 Oct]灌水
题目链接题目大意:n块农田灌水,可以修水库或者从其他农田引水,求最少代价。题解:建个源点连边搞搞就行。很久以前的代码,码风诡异……我的收获:……#include <cstdio>#include <iostream>#include <algorithm>#define M 305using namespace std;int n,m,tot,x,y,z,ans,w;int v[M*M]原创 2017-07-09 19:43:19 · 249 阅读 · 0 评论 -
1569: [JSOI2008]Blue Mary的职员分配
题目链接题目大意:经营公司,可以花钱雇人,让人赚钱/名誉,求最少多少天到达需要的钱和名誉题解:f[i][j][k][l]f[i][j][k][l]表示有ii个员工,j的钱,k的荣誉,上次发广告是l天前 转移:枚举几个员工赚钱,另外的赚荣誉。 我的收获:坑啊……#include <iostream>#include <cstdio>#include <cstring>using namespa原创 2017-07-08 20:30:43 · 415 阅读 · 0 评论 -
1740: [Usaco2005 mar]Yogurt factory 奶酪工厂
题目链接题目大意:工厂,n个月,n个数c[i]和y[i],表示第i个月生产费用和需求,储存一个月需要s,求最小费用题解:贪心一下(或许可以叫模拟)……我的收获:套路……#include <iostream>#include <cstdio>#include <climits>using namespace std;#define INF INT_MAX/2int n,s;void init(原创 2017-06-28 21:11:50 · 388 阅读 · 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 · 646 阅读 · 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 · 461 阅读 · 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 · 464 阅读 · 0 评论