自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 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 557

原创 2272: [Usaco2011 Feb]Cowlphabet 奶牛文字

题目链接题目大意:给定若干个顺序,形如AB,表示字母A后面可以接B,求有U个大写字母,L个小写字母的单词的方案数题解:开始想图论乱搞……明显不科学 这种求方案数一般用dp…… f[i][j]表示前i个字母,用了j个大写的方案数 但是这样有后效性……于是加一个k,表示第i个字母 转移显然我的收获:方案数常用方法,加维消除后效性#include <iostream>#include <cstd

2017-09-22 07:30:44 592

原创 3379: [Usaco2004 Open]Turning in Homework 交作业

只会想大力dp,但是k太大了,不好加在状态里…… go[i]表示到达i的时间,st[i]表示从i出发的时间go[i]表示到达i的时间,st[i]表示从i出发的时间 go[i]=max(go[i−1],st[i−1])+d[i−1]go[i]=max(go[i-1],st[i-1])+d[i-1] ans=∑go[B[i]]−T[i]ans=\sum go[B[i]]-T[i]下面贪心地最大化加

2017-09-21 20:20:12 689

原创 1835: [ZJOI2010]base 基站选址

题目链接题目大意:n个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为di,需要在这些村庄中建立不超过k个通讯基站,在第i个村庄建立基站的费用为ci。如果在距离第i个村庄不超过si的范围内建立了一个通讯基站,那么它被覆盖了。如果第i个村庄没有被覆盖,则需要向他们补偿,费用为wi。求最小费用题解:Orz题解我的收获:数据结构优化dp#include <iostream>#includ

2017-09-21 08:42:40 369

原创 3573: [Hnoi2014]米特运输

题目链接题目大意:给定一棵树和每个点的权值,问最少改动多少个点的权值使得:1.每个点的所有儿子权值相等,2.每个点的权值等于所有儿子权值和题解:确定一个点的权值就可以确定整棵树的权值,枚举每个点不变,计算所有点权与原先比较,但是这样是n^2的仔细想想会发现如果A点权值不变时B点权值也不变,那么当A或B权值不变时根节点的权值是相同的只需要算出个点不变时根节点的权值,取一下众数,ans=n-众数出现次数

2017-09-21 08:20:36 342

原创 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 322

原创 1233: [Usaco2009Open]干草堆tower

题目链接题目大意:有 n 个干草堆排成一行,每堆有个宽度 ai,现在要且分成若干段,把每一段的干草拼起来,然后逐段堆砌,越左的段放在下面,且宽度要逐层非严格递减。求层数最多是多少层题解:好神啊,ORZ题解我的收获:………………#include <iostream>#include <cstdio>#include <algorithm>using namespace std;#define M

2017-09-21 07:35:30 488

原创 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 337

原创 2882: 工艺

题目链接题目大意:输出最小表示法题解:神奇算法我的收获:……#include <cstdio>#include <algorithm>using namespace std;const int maxn = 600005;int n, s[maxn];int Mr(){ int i=0,j=1; for(int k;i<n&&j<n;){ for(k=0;k<n&

2017-09-14 09:53:20 251

原创 3669: [Noi2014]魔法森林

题目链接题目大意:给定一个无向图,每条边有两个权值ai和bi,从1走到N,设路径上a权的最大值为A,b权的最大值为B,求A+B的最小值题解:LCT? 这种双变量求最值可以先确定一个再搞另一个 那么对a排序,枚举a,显然过不了 spfa大力卡常我的收获:卡常出奇迹#include <algorithm>#include <iostream>#include <cstdlib>#includ

2017-09-14 09:05:54 459

原创 1710: [Usaco2007 Open]Cheappal 廉价回文

题目链接题目大意:给出删掉和添加每种字符的花费,求把字符串变成回文串的最小花费题解:加入一个字母等价于在对称位置删除一个字母,所以费用取较小的就可以然后根据知识知道回文串一般在串两边进行操作,据此大力转移我的收获:……#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespac

2017-09-14 08:44:09 325

原创 4144: [AMPPZ2014]Petrol

题目链接题目大意:给定一个n个点、m条边的带权无向图,其中有s个点是加油站。 每辆车都有一个油量上限b,即每次行走距离不能超过b,但在加油站可以补满。 q次询问,每次给出x,y,b,表示出发点是x,终点是y,油量上限为b,且保证x点和y点都是加油站,请回答能否从x走到y题解:每个点到它最近的加油站是最优的,以所有加油站为起点跑最短路,求出每个点到最近的加油站的距离 若一条边连接的两个点的最近加

2017-09-14 08:38:23 586

原创 1833: [ZJOI2010]count 数字计数

题目链接题目大意:给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次题解:大力出奇迹 f[x][sum]表示前x位待求数出现sum次……f[x][sum]表示前x位待求数出现sum次……套上数位dp模板 反正数位dp乱搞就可以了,无脑加状态我的收获:强啊#include <iostream>#include <cstdio>#include <cstri

2017-09-14 08:08:05 280

原创 2039: [2009国家集训队]employ人员雇佣

题目链接题目大意:给定n个人,每个人有一个佣金,i和j如果同时被雇佣会产生2*E(i,j)的效益,i和j如果一个被雇佣一个不被雇佣会产生E(i,j)的亏损,求最大收益题解:转化成最小割,和S相连表示不选,和T相连表示选取,割表示损失的部分对于雇佣的人i和T相连,就要和S割断,所以S向i连容量为雇佣费用的边 对于雇佣的人i和S相连,就要和T割断,损失∑E[i][j],向T连边∑E[i]...

2017-09-14 07:32:28 362

原创 1632: [Usaco2007 Feb]Lilypad Pond

题目链接题目大意:棋盘,跳马步,格子上有水,莲花,石头,有水的地方可以+莲花,给定起点终点,求+多少莲花才能到达终点,并求在此前提下的步数和方案数题解:三个要求优先级不同,大力if,只有在优先级高的要求相同时才更新优先级低的我的收获:多条件最短路#include <iostream>#include <cstdio>#include <cstring>#include <queue>usin

2017-09-13 08:17:10 393

原创 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 332

原创 1231: [Usaco2008 Nov]mixup2 混乱的奶牛

题目链接题目大意:n头奶牛排队,一个队伍为混乱的当且仅当其中任意相邻两牛编号相差超过k,求混乱队伍方案数题解:状压dp f[i][j]表示以第i头牛结尾,状态为j的方案数f[i][j]表示以第i头牛结尾,状态为j的方案数 转移时枚举一下新的结尾的牛我的收获:……#include <iostream>#include <cstring>#include <cstdio>#include <a

2017-09-13 08:03:16 401

原创 4196: [Noi2015]软件包管理器

题目链接题目大意:给出一个n个点的有根树,和m次操作; 初始时树上所有结点权值均为0; 1.将根到x结点的所有结点权值置为1,并输出这次修改了多少个元素; 2.将x结点的子树中所有结点权值置为0,并输出这次修改了多少个元素题解:剖剖剖我的收获:注意编号从0/1开始#include <iostream>#include <cstring>#include <cstdio>#include

2017-09-13 07:42:49 346

原创 3171: [Tjoi2013]循环格

题目链接题目大意:N*M的矩阵,每个格子有一个LRUD标记表示走到这个格子后下一个格子往哪个方向走。走出边界后自动到另一端。问至少修改几个格子使得在任意一个格子上开始都可以最后回到自身题解:结论:每个点只存在于一个环中所以入度和出度都为1 每个格子拆成入点和出点,连(st,in,1,0),(out,ed,1,0)每个格子拆成入点和出点,连(st,in,1,0),(out,ed,1,0) 每个格子

2017-09-13 07:29:18 337

原创 3226: [Sdoi2008]校门外的区间

题目链接题目大意:给定一个空集合S,维护五种集合与集合的操作,将最终得到的集合输出。对于集合S和T,操作S=S∪T、S=S∩T、S=S−T、S=T−S、S=S⊗T题目大意:给定一个空集合S,维护五种集合与集合的操作,将最终得到的集合输出。 对于集合S和T,操作S=S\cup T、S=S\cap T、S=S-T、S=T-S、S=S\otimes T题解:大力线段树 对于区间的开闭,将[l,r],变为

2017-09-12 07:46:14 252

原创 3372: [Usaco2004 Feb]Moo University -- Financial Aid 财政补助

题目链接题目大意:n头牛(n为奇数),每头有一个分数和价格,选出若干头牛,使得分数中位数最大且不超过预算题解: 按照分数从大到小排序,枚举每头牛k作为中位数,易知[1,k-1]和[k+1,c]中各选了(n-1)/2头,它们的分数无关紧要 预处理fl[i]表示[1,i]中选出(n-1)/2头牛的最小费用,fr[i]表示[i,c]中选出(n-1)/2头牛的最小费用,用堆维护前(n-1)/2大就可以了

2017-09-12 07:19:13 360

原创 3437: 小P的牧场

题目链接题目大意:有些按照一字排列的牧场,每一个牧场有一个费用和放牧数量。现在要在一些牧场上建造控制站,目的是控制所有的牧场,建立控制站的基础费用就是每个牧场的费用,然后每一个牧场需要付这个牧场的放养数量*它与右边相邻的控制站的距离。求最小的费用题解:把题目求的东西差分一下 sum1[i]=∑k=1iB[k],sum2[i]=∑k=1i{B[k]∗k}sum1[i]=\sum\limits_{k=

2017-09-12 07:09:45 406

原创 3894: 文理分科

题目链接题目大意:给出一个表格,每个人要选择文科或者理科,每个人选择文科有一个满意度,选择理科有一个满意度,以一个人为中心的五个人全选择一科也有一个满意度。问最大的满意度是多少题解:类似2127happiness Orz题解我的收获:割割割割割#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>

2017-09-11 16:26:48 331

原创 2127: happiness

题目链接题目大意:给定一个座位图,相邻两人之间是朋友,每个人选择学文或学理会有相应的喜悦值,一对朋友同时选择学文/学理也会有相应的喜悦值,求喜悦值之和最大的方案题解:Orz神奇的解不定方程建图我的收获:跪啊#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;

2017-09-11 16:06:53 254

原创 2006: [NOI2010]超级钢琴

题目链接题目大意:给定一个序列,要求找到连续的序列满足长度在[L,R]范围内,询问前K大的满足条件的序列的和题解:首先把区间和变为区间端点的前缀和相减 假设已经确定了所选区间的右端点,那么左端点则被固定在一个范围内 可以用ST表查询区间最值。初始把每个可行的右端点找出最优的左端点扔进堆里当取出一个最优左端点之后,对于这个右端点就不能取这个左端点了,需要删掉它,设要在[a,b]中删掉y,把[a,b

2017-09-11 09:02:12 308

原创 1775: [Usaco2009 Dec]Vidgame 电视游戏问题

题目链接题目大意:背包,花若干钱可以买一个组(无收益),买完后可以买组内物品题解:依赖背包 f[i][j]表示前i种平台中第i种不选,用j元的最大产出值f[i][j]表示前i种平台中第i种不选,用j元的最大产出值 g[i][j]表示前i种平台中第i中选,用j元的最大产出值g[i][j]表示前i种平台中第i中选,用j元的最大产出值然后01背包注意赋初始值-INF以去除不可行状态我的收获:……#in

2017-09-11 07:08:19 557

原创 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 413

原创 1578: [Usaco2009 Feb]Stock Market 股票市场

题目链接题目大意:有S种股票,已经知道每一天每一种股票的价格。一共有d天,一开始拥有的钱为m,求最后总共能够拥有多少钱题解:看上去决策非常复杂,似乎需要枚举购买时间 实际上,只需要将第i天向第i+1天转移就可以了 因为第一天买第三天卖出=第一天买第二天卖,再用原价买回来,然后第三天卖出做D-1次完全背包即可我的收获:状态的转移……#include <iostream>#include <cst

2017-09-10 15:56:34 368

原创 4321: queue2

题目链接题目大意:求1~n的序列,满足一个数的左右两边的差的绝对值不等与1的方案数题解:f[i][j][0/1]表示前i个数j对相邻,i和i−1相邻与否题解:f[i][j][0/1]表示前i个数j对相邻,i和i-1相邻与否 然后Orz题解oeis我的收获:状态神啊,分类讨论神啊 ,完全不会啊#include <cstdio>#include <iostream>#include <cmath

2017-09-10 15:32:04 331

原创 3378: [Usaco2004 Open]MooFest 狂欢节

题目链接题目大意:n只奶牛,第i只听力为vi,坐标为xi,两只奶牛聊天时音量是max(vi,vj)∗abs(xi−xj)。求n(n−1)/2对奶牛的音量和题目大意:n只奶牛,第i只听力为v_i,坐标为x_i,两只奶牛聊天时音量是max(v_i,v_j)*abs(x_i-x_j)。求n(n-1)/2对奶牛的音量和题解:经验告诉我们,有比较的题就先排序…… 按照x轴从大到小排序,这样用树状数组维护坐标

2017-09-10 15:09:01 451

原创 3555: [Ctsc2014]企鹅QQ

题目链接题目大意:给定n个不相同的字符串,问有多少对字符串只差一个字母题解:搞一个前缀hash和后缀hash,然后加起来 枚举哪一位不同,然后取除了这一位的hash值,排序比较即可本题不卡自然溢出我的收获:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std

2017-09-10 11:45:54 436

原创 2667: [cqoi2012]模拟工厂

题目链接题目大意:现在你有一个工厂,初始生产力为1,每一时刻你可以进行如下操作: 1.将生产力提高1 2.生产一些产品,数量等于当前生产力的数值 然后你有n个订单,每一份有一个交易时间t,一个商品数量g和一个价格m,可以接或者不接,如果接就要在t时刻操作之前减少g的商品数量,然后得到m的钱 求最大收益题解:n很小,暴力枚举接受的订单 aq=∑qi=1giaq=∑i=1qgi...

2017-09-09 20:55:09 516

原创 1803: Spoj1487 Query on a tree III

题目链接题目大意:子树k大题解:dfs序主席树我的收获:主席树吼啊#include <cstdio>#include <algorithm>#include <cstring>using namespace std;#define M 100005#define MX M*20#define lson tl[x],tl[y],l,mid#define rson tr[x],tr[y],m

2017-09-09 19:37:48 227

原创 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 338

原创 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 780

原创 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 562

原创 1572: [Usaco2009 Open]工作安排Job

题目链接题目大意:每项工作花一个单位时间, 在任一时刻,可选择任意一项工作来完成,每个工作有ddl和利润,求最大利润题解:经典贪心我的收获:……#include <iostream>#include <cstdio>#include <algorithm>#include <queue>using namespace std;priority_queue <int> q;long lon

2017-09-09 07:48:39 271

原创 1597: [Usaco2008 Mar]土地购买

题目链接题目大意:购买n个矩形,每块土地的价格是它的面积,但可以同时购买多块土地. 这些土地的价格是它们最大的长乘以它们最大的宽,求最少花费题解:排序后用单调栈维护,去除无用数据(长宽都比令一块小的),然后就是naive斜率优化了f[i]=min(f[j]+y[j+1]x[i])f[i]=min(f[j]+y[j+1]x[i])f[i]=min(f[j]+y[j+1]x[i])我的收获...

2017-09-09 07:42:48 242

原创 3262: 陌上花开

题目链接题目大意:给定一堆花,每个花有三个属性,定义一朵花比另一朵花美丽当期仅当三个值都大于等于另一朵花 定义花的评级为没有它美丽的花的数量 求评级为0~N-1的花的数量题解:三维偏序,x排序,yCDQ分治,z树状数组我的收获:CDQ神啊#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>usin

2017-09-09 07:28:33 378

原创 2764: [JLOI2011]基因补全

题目链接题目大意:给定一个长度为n的碱基序列S和一个长度为m的碱基序列T,现在希望向序列T里补一定的碱基使得序列S和序列T配对,求方案数题解:f[i][j]表示长串匹配到i,短串匹配到j的方案数f[i][j]表示长串匹配到i,短串匹配到j的方案数 f[i][j]=f[i−1][j],短串+一个字母f[i][j]=f[i-1][j],短串+一个字母 f[i][j]+=f[i−1][j−1],长短串

2017-09-09 07:15:54 452

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除