自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2019.01.31【NOIP提高组】模拟 B 组 总结

100+10+24=124分,真的是废了。T1:https://blog.csdn.net/Larry1118/article/details/86712763斜率DP(不知自己在干嘛。。。),但是就是A了!!!T2:https://blog.csdn.net/Larry1118/article/details/86713674我打了贪心,样例竟然过了。。。(令人无语)正解二分T3:h...

2019-01-31 13:33:41 171

原创 【NOIP2015模拟10.20】着色

这题只需对于每个图找找规律即可。记得由于每个图最多只能用3种颜色。上标:#include<cstdio>#include<algorithm>#define ll long longusing namespace std;ll n,K,ans,C2,C3;int main(){ freopen("color.in","r",stdin); freop...

2019-01-31 13:30:58 229

原创 【NOIP2015模拟10.20】平均数

这题不可贪心,只能二分+前缀和判。上标:#include<cstdio>#include<algorithm>#define N 300010#define db doubleusing namespace std;int n,K,a[N];db l,r,mid,mi,b[N];bool bz;inline int read(){ int x=0;...

2019-01-31 13:29:24 207

原创 【NOIP2015模拟10.20】ACM

这题打了个斜率DP。有点骚。。。但为什么我的时间不是最快的!上标:#include<cstdio>#include<algorithm>#define N 150010#define db doubleusing namespace std;int n,a[N],b[N],c[N],f[N],ans=999999999;int g[N],len,l;i...

2019-01-31 11:36:22 220

原创 [ZJOI2007]仓库建设

这题斜率优化DP即可。一如既往地推公式:设s1[i]=p[1~i]的和,s2[i]=sigma(p[k]*x[k])(1<=k<=i)f[i]=min{f[j]+x[i]*(s1[i-1]-s1[j])-s2[i-1]+s2[j]}+c[i]设k<j<i且j比k更优。(f[j]+s2[j])-(f[k]+s2[k])/(s1[j]-s1[k])&

2019-01-30 22:40:08 276

原创 [HNOI2008]玩具装箱TOY

20这题可以说是斜率优化DP的模板题。首先,我们先推推它的DP式:f[i]=min{f[j]+(i-(j+1)+c[i]-c[j]-l)2};这里的c[i]表示的是原来的c[1~i]的和f[i]表示以i为末尾的箱子的最小费用(前面不一定是全部)然后我们假设k<j<i,i从j转移比从k转移更优。那么我们就可以得到一个式子:f[j]+(i-(j+1)+c[i]-c[j]-l...

2019-01-30 21:03:11 264

原创 【五校联考7day2】QYQ的图

暴力dfs+剪枝993ms勉强卡过(耶(#^ . ^#))上标:(垃圾标)#include<cstdio>#define min(x,y) x<y ? x:yusing namespace std;struct node{int v,fr;}e[6010];int n,m,a[51],b[51],ans=99999999,tail[51],cnt=0;inli...

2019-01-30 15:19:39 381

原创 2019.01.30【NOIP提高组】模拟 B 组 总结

50+90(数据有问题)+100=240分有毒。T1:dfs+剪枝能过??T2:https://blog.csdn.net/Larry1118/article/details/86701597找规律,简单(找了好久好久)T3:https://blog.csdn.net/Larry1118/article/details/86701603贪心,签到题。下次继续努力...

2019-01-30 12:45:10 142

原创 【五校联考7day1】游戏

这题贪心即可。上标:#include<cstdio>#include<algorithm>using namespace std;struct node{int x,y;}b[100010];int n,now=0,ans=0;inline int read()

2019-01-30 12:43:03 259

原创 【五校联考7day1】n染色

考试时乱推了好久,搞啊搞啊的。。。咣咣的。。。。上标:#include<cstdio>#define ll long long#define mo 1000000007using namespace std;ll n,m,s,v,k,g,p,ans,t,y;ll ksm(ll x,ll y){ ll s=1; while (y) { if (y &...

2019-01-30 12:41:55 349

原创 【五校联考6day2】er

这题首先是:分类讨论首先,我们可以知道,最优解一定是先“1”再“2”后“3”!(为什么自己想)然后,我们可以发现,要是选的话,一定是从大选到小(为什么自己想)嗯嗯,n=1的情况是很简单的,然后我们考虑n=2的//o(*  ̄︶ ̄ * )o//n=2的我们可以DP!!!有两种做法:第一种:(简单又自然,就是有点慢)我们设f[j]表示当前(就是前i个)这个东西是否能够构成。这样子就是...

2019-01-29 21:38:22 149

原创 【五校联考6day2】san

这题就是枚举起点,然后跑个spfa,最后用dfs来统计答案即可。上标:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct node{int v,fr,l;}e[20010];int n,m,f[20010],tail[2010],cnt=0;...

2019-01-29 15:24:04 228

原创 2019.01.29【NOIP提高组】模拟 B 组 总结

100+40+0=140分。惨烈啊QAQT1:https://blog.csdn.net/Larry1118/article/details/86688310淼。。。T2:以为自己打的是正解(就是能AC的那个),但赛后经同学指点,发现:自己打的就是个不可能A的贪心!!!(QAQ)T3:不会,就连暴力都不想打了。下次继续努力。。。...

2019-01-29 12:42:09 180

原创 【五校联考6day2】yi

这题水到不想打题解。。。直接上标:#include<cstdio>#include<algorithm>using namespace std;int n,m,K,a[100010],tot=0,ans=0;inline int read(){ int x=0; char c=getchar(); while (c<'0' || c>'9')...

2019-01-29 12:35:22 200

原创 数列分块入门 8 总结

这题我们只需设个check[i]表示第i块是否都为一个数,b[i]表示第i块变成的数。然后暴力搞就可以了。至于为什么,我们看看hzwer大佬(黄学长)的解释吧:上标:#include<cstdio>#include<algorithm>#include<cmath>#define N 100010using namespace std;

2019-01-28 22:14:18 338

原创 数列分块入门 7 总结

这题只要做对了前面的东东,这题肯定能做对的。(* ̄︶ ̄)只要设m[i]表示第i块整体要乘的数,p[i]表示第i块整体要加的数即可。记得!在乘c的时候要把p也给乘了(自己想想为什么)还有,在做左右两边凸出来的东西的话,要先把整块的m[bl[i]],p[bl[i]]都附上去,然后清空(m[bl[i]]=1,p[bl[i]]=0),否则会有意想不到的错误!!!上标:#include<c...

2019-01-28 21:10:54 239

原创 【五校联考3day2】C

这题DP,想明白了就可以了。这就像个坐标系一样(好像本来就是。。。)而在其上面,有很多个点。咳咳,有点丑。然后呢,我们就按照x坐标排个序,y也顺便排一下(第二关键字)这样子,在我们DP的时候,或者说对于i,我们可以满足a[i].x<=a[i+1…n].x所以,我们就可以不记录对于i点射向左边的了。而我们要记录的,是它射向右边的最上面的点(j),射向右边的最下面的点(k),...

2019-01-28 20:21:29 239

原创 【五校联考3day2】B

这题DP即可。我们先求出rank[i]表示“a[k]=i”中的k。设f[i][j]表示第i位放j的最大价值和。我们可以分情况讨论:(对于a[i])1:第a[i-1]位的字母小于第a[i]位的字母,直接取max即可。2:第a[i-1]位的字母等于第a[i]位的字母,且第a[i]+1位的大于第a[i-1]+1位的,取max。最后输出max(f[n][i])即可。上标:#include...

2019-01-28 15:41:49 177

原创 【五校联考3day2】A

这题考场考虑不太全(但相比于60,其它90分的人,还是很全的(* ̄︶ ̄))long long我是开了的,然后后面的特判我也是加了的,可是竟然打错了?!!其实这题不需要打的像我这样麻烦:设a[i]表示i点还需连接的边数ans表示sigma(a[i])max表示max(a[i])如果max>ans/2,就说明全部连项那个最大值即可。否则就输出ans/2。只要判断一下上标:#i...

2019-01-28 14:17:22 385

原创 【五校联考5day1】序列

O(n3)算法,好吧,其实这就是这样子打的。如果给你极限数据的话:1,1,3,5,9,15,25,41,66,108,175,284,459,744,1204,1949…就多也就是50项(差不多都的)所以啊,要不就是50项没有找到,要不就是找到了,就这么简单。上标:#include<cstdio>#include<algorithm&a

2019-01-28 14:09:18 335 3

原创 2019.01.28【NOIP提高组】模拟 B 组 总结

又是第二题有毒(莫名90分)100+90+0+40=230分T1:暴力T2:O(n)做法T3:DP,不会T4:DP,考场不会设&打。。。就打了个暴力dfs下次继续努力

2019-01-28 14:05:58 151

原创 5231. 【NOIP2017模拟A组模拟8.5】序列问题

这题分治。对于一个区间[l,r]我们可以分三种情况讨论:(设左端点为a,右端点为b)1:a,b都在[l,mid]2:a,b都在[mid+1,r]3:a,b跨过了mid,也就是a<=mid && b>mid1,2都可以从下一层求出,所以我们只需要求出ans即可。而3怎么求呢?我们设mi[],ma[],sma[],smi[],s[]i:l<=i&...

2019-01-27 21:42:58 237

原创 2019.01.27【NOIP提高组】模拟 B 组 总结

额。。。这次模拟赛100+40+30=170分。。。最高分300分(满分)T1:https://blog.csdn.net/Larry1118/article/details/86665008这题就是找规律,比较容易的。T2:https://blog.csdn.net/Larry1118/article/details/86665046这题状压DP,详细的在连接里面。可惜考试时没有想到...

2019-01-27 14:06:37 134

原创 【NOIP2017模拟A组模拟8.5】队伍统计

这题状压DP,设f[i][j]表示当前状态为i,有j个是违反了的方案数。转移嘛,就是f[i | (1<<k-1)][j+s]+=f[i][j]s表示如果k放在这儿的话会有多少个违反的上标:#include<cstdio>#define ll long long#define mo 1000000007using namespace std;struct n...

2019-01-27 12:32:55 277

原创 袁绍的刁难(recruitment.pas/cpp)

这题找规律即可。1,3,4,9,10,11,13,27,28,30,31,36,37,39,40,81…上标:#include<cstdio>#define ll long longusing namespace std;int T,n;ll ans,s,plus,now;inline int read(){ int x=0; char c=getchar();...

2019-01-27 12:26:21 306

原创 数列分块入门 5 总结

这题我得着重给一给数据范围,嗯嗯数据范围!!!哈哈,我们发现a[i]最大是231-1。好,我们开开方先:214748364746340(取整的)21514311…我们再试几个数,发现最终会变成0或1,然后就不会在变了。所以,它最多会开方5次,然后便相当于不变了。这样子,我们一开始全部暴力改。每当一个块的全部a[]都变成了0或1的话,就标记一下,表示下次不用再搞了。...

2019-01-26 21:25:17 413

原创 【五校联考3day1】旅游

这题我们可以将询问排序,将边按照比边权从小到大排序。在处理询问时,依次添加边,用并查集维护即可。上标:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct node{int u,v,d;}a[200010];struct edge{int x,...

2019-01-26 19:12:56 267 1

原创 【五校联考3day1】食物

这题01背包,表示不知为何一眼切。。。一维DP,每组数据两次DP。算了,讲清楚一点吧。我们对于每个u,v,d将其拆成1u,1v2u,2v4u,4v…d-(2k-1)u,d-(2k-1)v例如d=17我们便可以拆成:1u,1v2u,2v4u,4v8u,8v2u,2v(这个是剩下的)这样子就没错了。然后就来一遍01背包搞搞就可以了。详见看标:#include&l...

2019-01-26 19:03:07 271

原创 jzoj 1274. 游历的路线(lines.pas/cpp)

这题DP,考场时把数组给开小了。。。设f[i][j]表示在第j天到了城市i的最小花费。输出f[n][m]即可。时间复杂度O(n2m)上标:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m,a[110][110][21],x;int c...

2019-01-26 18:57:41 200

原创 jzoj 1252. 天平

此题折半搜索即可。暴力求出两半所有的答案,a[]和b[]。然后将a[]排序,将b[]枚举并在a[]中二分找答案。上标:(暴力0ms!!!™的 )#include<cstdio>#include<algorithm>using namespace std;int n,m,c,a[31],b[31];int p[2000010],q[2000010];int...

2019-01-26 18:54:51 184

原创 2019.01.26【NOIP提高组】模拟 B 组 总结

表示第二题数组开小了。。。100+50+100=250分,真™250。。。可做性100%!!!T1:折半搜索。T2:O(n^2m)暴力DPT3:01背包下次要认真看题,不要开小了数组。啊啊啊,我的AK啊啊啊!!!!下次一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一定一...

2019-01-26 18:51:00 171

原创 【NOIP2011DAY2】计算系数

#include<cstdio>using namespace std;int f[1001][1001];int ksm(int x,int y){ int s=1;x%=10007; while (y) { if (y&1) s=s*x%10007; x=x*x%10007; y>>=1; } return s;}int m

2019-01-26 07:26:44 251 1

原创 数列分块入门 4 总结

这题变得容易了。。。只要记录一下每个块的总和即可。左右两边凸出来的暴力搞就可以了。上标:(感觉别人有毒吧,我跑1000ms+,他/她™只跑100ms+。。。 )#include<cstdio>#include<algorithm>#include<cmath>#define ll long longusing namespace std;i...

2019-01-26 07:25:02 163

原创 数列分块入门 3 总结

和入门 2很像。。。就是求答案有点点区别而已。。。左右凸出来的依旧暴力,而中间的依旧二分,然后将这些小于c的值取min即可。上标:#include<cstdio>#include<algorithm>#include<cmath>using namespace std;int a[100010],d[100010],n,b[321];int ...

2019-01-25 22:03:39 207

原创 数列分块入门 2 总结

这题,呜呜呜。。。。我™改了™的好几天啊啊啊啊啊!!!!!这题依旧分块。原序列设为a[]对于每个块,我们可以用另一个数组排序(在此设为d[])。另一个!!!(我不知道为什么,将原序列记录了位置在排序™还是错了。。。)然后,还是分类讨论。opt==0分成三块。1:l所在的凸出来的那一部分,暴力搞,然后将a[]中l的块暴力赋给d[],并排序。2:r所在的凸出来的那一部分,方法同上...

2019-01-25 21:47:29 201

原创 【NOIP2014模拟10.26】战争游戏

这题就是求割点并计算答案。上标:#include<cstdio>#include<algorithm>#define N 50010using namespace std;struct node{int v,fr;}e[N<<2];int n,m,tail[N],cnt=0,tot=0;int dfn[N],low[N],ans[N],siz[N...

2019-01-25 20:52:49 219

原创 【东莞市选2008】导弹

这题的n很小。我们可以先用floyd求出两两之间的最小距离。然后要求最值,我们可以二分最长的距离。然后用匈牙利来判断。(将小于等于mid的边添加)上标:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct node{int v,fr;}e[1...

2019-01-25 14:15:30 157

原创 【NOIP2014模拟10.26】数字对

一个很容易想到的O(n)做法。由于区间肯定不会重叠,我们可以从左到右开始找区间,每次左端点变成上个右端点+1上标:#include<cstdio>#define N 500010using namespace std;int n,a[N],c[N],l,r,ans=0,s=0,tot=0;inline int read(){ int x=0; char c=getc...

2019-01-25 14:11:03 171 2

原创 【NOIP2014模拟10.26】改造二叉树

首先,二叉搜索树。。。来个DFS序来把它变成一个序列。然后,我们要将其修改成一个上升序列。当然,直接打LIS(最长上升子序列)是肯定不可以的。所以我考场直接弃了正解,打了个n2DP,水了个60分。正解的话,我们只需将那个求出来的序列中的b[i]-i(1<=i<=n)然后求出这个修改过后的序列的最长不下降子序列的长度即可。上标:#include<cstdio>...

2019-01-25 12:42:42 155

原创 数列分块入门 1 总结

Question:这题分块~~(标题好像说的很明确的说)~~我们设一个block[]表示第i位属于哪个块。我们便可以这样子打: st=sqrt(n); for (int i=1;i<=n;i++) bl[i]=(i-1)/st+1;然后,对于opt==0我们发现它除了整个块,但两边可能会有一点点的多出来(就是不够一整个块)这两边我们可以暴力搞,而中间的,我们便存一个b[]...

2019-01-24 21:13:27 136

空空如也

空空如也

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

TA关注的人

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