自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用bat打的对拍程序

%d%a%l%a%o这位大佬写得很详细了。我们先建立一个TXT文件。然后在里面写好对拍代码:@echo off:loopSum_rand.exe//rand文件Sum.exe//C++文件Sum_bl.exe//暴力C++文件fc Sum.out Sum_bl.out//比较输出if not errorlevel 1 goto loop//一样就重复looppause//直...

2019-02-16 09:53:42 368

原创 莫队算法 总结

我的莫队例题都是从这儿的例题刷来的↙%d%a%l%a%o但我觉得莫队讲得好的还是hzwer大佬。下面是例题:bzoj 2038 [2009国家集训队]小Z的袜子(hose)

2019-02-15 14:30:08 251 1

原创 斜率优化DP 总结(含凸优化)

我看了很多%d%a%l%a%o的博客,使我对其印象深刻,下面是我从我看的第一个博客(%%%)中copy下来的:

2019-02-01 22:42:37 409

原创 【东莞市选2008】GCD与LCM

Description给出某两个整数a和b(a<=b)的最大公约数GCD和最小公倍数LCM,请找出满足的a和b,使得b-a的值最小。Input输入数据只有一行,包括两个整数GCD和LCM。输入保证至少存在一组解。Output输出包含一个整数,为最小的b-a的值。Sample Input6 36Sample Output6Hint对于100%的数据,1<=a<...

2019-02-27 21:57:05 216

原创 jzoj 4438.【HNOI2016模拟4.10】 K小数查询

DescriptionInputOutputSample Input42 1 1 332 2 4 21 1 3 32 1 4 3Sample Output14Data ConstraintHint这道题就是分块了。我们用a[]表示输入的东西,用b[]表示输入的东西按照每个块从小到大排序后的数组。对于这道题:1操作:就将两头的暴力加并重置该区间的b[]...

2019-02-25 21:33:44 4884

原创 bzoj 2002 [Hnoi2010]Bounce 弹飞绵羊

Description某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,...

2019-02-24 17:16:10 171

原创 jzoj 4243. 【五校联考6day1】c

Description定义S 为十进制只由4 和7 组成的全体正整数的集合。对于1 ≤ i ≤ N,给定ai。要求完成M 个操作:add l r v 将i ∈ [l, r] 的所有ai 加上vcount l r 统计有多少i 满足i ∈ [l, r] 且 ai ∈ SInput第一行:两个正整数N、M。第二行:N 个正整数代表ai。之后M 行:每行代表一个操作。Output对于...

2019-02-24 12:00:10 246

原创 2019.02.23【NOIP提高组】模拟 A 组 总结

70+88+ =158分T1:https://blog.csdn.net/Larry1118/article/details/87892692考场用权值线段树维护,结果T飞。。。赛后试着用线段树来维护,再次T飞。。。线段树的常数是有多大啊?!!正解可以用单调队列或者是堆来维护。这题我们排序然后删除一段长度为n-k的区间以外的数,这样可以保证它的答案的最优性。然后就一遍n扫过并不断维...

2019-02-23 16:17:26 161

原创 【GDOI2013模拟1】病毒传播

这题是个类似矩乘的东西。。。我们要求的是第K天的感染人数。然后我们可以证明出来这个满足结合律(易得(a * b) * b=a * (b * b))而题目求的就是bk,所以我们就可以像快速幂一样求bkO(log(k)*n2)所以就可以用矩乘啦。上标:#include<cstdio>#include<cstring>#define N 1510using n...

2019-02-23 16:15:52 521

原创 【GDOI2013模拟1】最短路

这题就是个暴力spfa。。。我们就从节点1开始更新,每次更新一圈。我们可以发现,每个完全子图暴力扫过以后就不需要再扫了(因为不会再优),所以就可以过了(判一判是否扫过就可以了)。这题有个重构图的解法。就是对于每个完全子图构建成一个菊花图,而边权便是1/2,然后跑一遍spfa就可以了。#include<cstdio>#include<cstring>#defin...

2019-02-23 16:03:48 173

原创 【GDOI2013模拟1】删数字

这题我们发现,只有在剩下的数是一段连续的数的时候才是最优的。所以,这题我们用桶来做。之前用线段树来做,结果T︿( ̄︶ ̄)︿了。。。我们用桶维护区间最小值,然后在记录一下这个差值的位置。不断地搞这东东就可以了。上标:#include<cstdio>#include<algorithm>#define N 1000010using namespace std;...

2019-02-23 15:15:29 188

原创 数列分块入门 6 总结

Question这题新加了一个插入操作,然后就是询问了,还好没有修改。。。网上的大都是什么vector的,都是STL。。。(但是身为蒟蒻的我还不会STL(┭┮﹏┭┮))所以我就将这输入用指针来存,然后插入就找到l的位置,然后指针插入。反正都是随机数据嘛~(应该不会遇到特殊情况)就这样我卡过了。。。上标:#include<cstdio>#include<cmath...

2019-02-19 18:38:56 228

原创 斐波那契数列求和(矩阵乘法)

题目描述f(1)=1, f(2)=1,f(n)=f(n-1)+f(n-2)其中n大于等于3。然后给出x,y,求出斐波那契数列的第x项到第y项的和。输入一行,两个整数x,y,其中x和y小于2^31-1输出一行,表示第x~y项的和,由于答案过大,输出答案模10000就可以了样例输入样例1:1 5样例2127 255样例输出样例1:12样例2:5976这题由于x和y较大,...

2019-02-17 10:30:14 1095

原创 bzoj 2120. 数颜色(暴力,分块和莫队)

这题一看数据范围,发现可以暴力,想着想打个暴力对了再说,结果T飞了~暴力程序:#include<cstdio>#define N 10010#define M 1000010using namespace std;int n,m,a[N],hav[M],s,x,y,tot=0;char ch;inline int read(){

2019-02-17 08:42:07 223

原创 luogu P1972 [SDOI2009]HH的项链

这题一开始我是这样子打的:#include<cstdio>#include<algorithm>#include<cmath>#define N 500010using namespace std;struct node{int l,r,fr;}b[N];

2019-02-16 20:47:03 186

原创 jzoj 1307. Jail

分类讨论16种情况???码量超长,想了会儿数据结构后就弃疗打暴力了。正解时间复杂度为O(2d * n * d)我们枚举坐标的每个数的正负性。然后在对于每种情况暴力弄出n个点的贡献。由于两两之差便为曼哈顿距离。所以我们对于每种情况求出个最大值和最小值,两个相减再与Ans比较并更新即可。上标:#include<cstdio>#include<algorithm&amp

2019-02-16 16:02:50 161

原创 jzoj1306. Sum

这题我们可以用权值线段树来做。题外话:这题50分的应该都是AC的吧???我们先求出a数组的前缀和数组c (记得模P)。然后每次做完当前状态i后将c[i]加入到权值线段树里。因为答案要求尽可能小,所以我们对于以当前点为右端点的答案为:a[i] - a[i]-K的前驱或a[i]+p - a[i]+P-K的前驱然后不断更新答案即可。上标:#include<cstdio&...

2019-02-16 12:26:36 192

原创 jzoj 1305. Chess

这题我们可以用贪心来做。我们发现对于每个人,如果他要下棋的话,只有和比它等级高的第一个和比它等级低的第一个下才是最优的!!!所以我们可以先将等级a按从小到大排序。然后,对于每个点对答案的贡献弄到一个数组c。然后再将c数组按从小到大排序。只要累加前k个,便是答案了。上标:#include<cstdio>#include<algorithm>#define N...

2019-02-16 12:25:08 165

原创 jzoj 1304. Binary

这题应该是找规律。我们可以先打一个表。发现当n不断增大的时候:1,2,3,5,8,13,21…这不就是斐波那契数列嘛!!!好啦,O(n)做法,直接切掉( * ^ ▽ ^ * )上标:#include<cstdio>#define mo 15746using namespace std;int n,ans,las,now,t;inline int read(){...

2019-02-16 12:24:00 146

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

今天我应该是300分的才对。。。100+100+50(Internal Error)+0=250分T1:这题应该是找规律。我们可以先打一个表。发现当n不断增大的时候:1,2,3,5,8,13,21…这不就是斐波那契数列嘛!!!好啦,O(n)做法,直接切掉( * ^ ▽ ^ * )T2:这题我们可以用贪心来做。我们发现对于每个人,如果他要下棋的话,只有和比它等级高的第一个和比它等级...

2019-02-16 11:54:24 218

原创 bzoj 2038 [2009国家集训队]小Z的袜子(hose)

这题听说就是莫队的超级例题,所以来做一做。大佬%d%a%l%a%o这个博客写得不错。我们要先学会分块。我们可以将n个数分成根号n个块。我们按照l所属的块为第一关键字,r为第二关键字来从小到大排序。这样子每次l最多移动根号n,r最多移动n。但O(n*m)是不可能达到的。所以时间复杂度可以过。然后莫队要记得的是:删去一个位置的时候要先更新ans再l++/r–添加一个位置的时候要先l...

2019-02-15 14:22:08 135

原创 【NOIP2014模拟11.1B组】吴传之火烧连营

这题考场脑洞大开,想到了trie。我们可以将a[],b[]转成二进制,并按照0,1建trie。询问的时候贪心选最优即可。详见标。上标:#include<cstdio>using namespace std;int n,m,x,f[2000010][3],tot=1;inline int read(){ int x=0; char c=getchar(); whil...

2019-02-15 14:07:41 210

原创 【NOIP2014模拟11.1B组】蜀传之单刀赴会

这题就是个状压DP,我们设:f[i][j]表示当前在第i个朋友家,走到过的状态为j的最小时间。这是从1走到n的!!!再设g[i][j]表示当前在第i个朋友家,都到过的状态为j的最小时间。这是从n返回1的!!!做完f后就把f[k]赋值为g[k],然后在照做一遍就可以了。我们可以将第0个朋友表示为1,第k+1个朋友表示为n。上标:#include<cstdio>#incl...

2019-02-15 11:52:49 227 1

原创 【NOIP2014模拟11.1B组】魏传之长坂逆袭

这题只要暴力建树,然后求出每个子树中的最大值,最后乱搞就可以了。本以为dfs会爆栈的。。。所以就打了个人工栈。。。WDF!!!上标:#include<cstdio>#define N 500010#define ll long long#define max(x,y) x>y ? x:yusing namespace std;struct node{int v...

2019-02-15 11:46:30 361 1

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

考场AK,开心( * ^ ▽ ^ * )T1:考场怕栈溢出,就打了个人工栈。。。T2:状压DPT3:trie,动态开点。下次继续努力!

2019-02-15 11:43:07 158

原创 【NOIP2012模拟8.6】绕圈跑

这题考场刚了很久,最后没想到正解,只好打了个n2暴力。后来发现正解很容易理解,就开打了。1h。。。2h。。。3h。。。精度问题坑了我很久[○・`Д´・ ○]没想到的是:反正都要离散化,为什么不将它全部都乘一个最大速度呢???WDF!!!好了,一改,就切了。。。o ( ╥ ﹏ ╥ ) o上标:#include<cstdio>#include<algorith...

2019-02-14 21:46:47 189

原创 【NOIP2012模拟8.6】三条线

这题暴力离散化+dfs即可。详见标。上标:#include<cstdio>#include<algorithm>#define N 50010using namespace std;struct node{int x,y,fr;}a[N],b[N];int n,X[N],Y[N],to1[N],to2[N],cnt=0,tot=0;bool bz1[N],b...

2019-02-14 21:42:34 134

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

100+73.3+59.1=232.4分T1:暴力+优化=ACT2:n2暴力+优化T3:n2暴力+优化呵呵,一切都源于运气(# ^ . ^ #)

2019-02-14 21:39:56 160

原创 #10192. 「一本通 5.6 练习 5」锯木厂选址

这题斜率优化。详见标。上标:#include<cstdio>#define N 200010#define db double#define ll long longusing namespace std;int n,l=0,len=0,g[N];ll d[N],sw[N],sd[N],c[N],f[N],ans=(ll)(1<<30)*(1<<...

2019-02-12 22:06:27 190

原创 #10191. 「一本通 5.6 练习 4」打印文章

这题™是多组数据。。。还搞了半天。。。最后只好这样打才过了。。。while (scanf("%d%d",&n,&m)==2){}斜率DP,式子很容易推:f[i]=min{f[j]+(sum[i]-sum[j])2+a[i]2};其中sum[]表示a[]的前缀和上标:#include<cstdio>#include<algorithm>...

2019-02-12 19:38:40 358

原创 bzoj.3675 [Apio2014]序列分割

这题依旧是斜率优化DP。首先我们可以发现,它的分割顺序对答案没有影响:假设我们要将一块分为三部分,每部分的和分别为a,b,ca * (b+c)+b * c=a * b+a * c+b * c(a+b) * c+a * b=a * c+b * c+a * b所以,我们可以按顺序分了。DP式:f[i]=max{f[j]+a[j] * (a[i]-a[j])}这里的a[i]表示原a[]的...

2019-02-02 22:18:47 176

原创 [Usaco2008 Mar]土地购买

题外话:丫的手贱不小心删了,只好重打。。。如果CSDN能回复回收站的东东那该有多好啊此题依旧是斜率优化。感觉自己做斜率优化做疯了(滑稽)还是与先前一样弄出DP式:f[i]=min{f[j]+y[j+1]*x[i]}这里要着重说明一下:这里的x[],y[]都已经是排过序并整理了的!!!我们先按照x为第一关键字,y为第二关键字来从小到大(both)排序。随后,我们发现它的y[]不满足...

2019-02-01 22:20:57 191

原创 bzoj 3156.防御准备

真的,这数据是个很厉害 (贱) 的人出的DP题,n2不过斜率过。那就加个斜率优化吧。DP式:f[i]=min{f[j]+(i-j)*(i-j-1)/2+a[i]};我们依旧设k<j<i,且j比k更优f[j]+(i-j) * (i-j-1)/2+a[i]<f[k]+(i-k) * (i-k-1)/2+a[i]化简后,变为:f[j]+j * (j+1)/2-f[k]-k...

2019-02-01 22:06:23 190

空空如也

空空如也

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

TA关注的人

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