总结
Larry1118
这个作者很懒,什么都没留下…
展开
-
2019.07.12【NOIP提高组】模拟 A 组 总结
T1:树上莫队?,调啊调。。。以前只打过一次,这次好像打炸了,打错了好几个小细节。one of them:排序将x,y错写成a,b------>TLE20改回来----------------------->AC100(900ms+)将分块再改对-------------->AC100(500ms-)表示排序(和分块)一定一定要打对,这是莫队的关键!!!T2:没时间...原创 2019-07-12 16:50:50 · 137 阅读 · 0 评论 -
并查集(路径压缩+按秩合并) 总结
关于并查集就是连边,然后,每次问你两个点是否可互通。为无向边然后,暴力的话可能就是一条链下来,搞爆了。所以我们要想想优化。first:路径压缩个人觉得这个比较好理解,很早便学会了,而且速度要优秀一些。就是将连了边的同时指向一个人(自拟的祖宗),然后,每次查询的时候就压缩一下路径。具体是这样来搞的:int gf(int x) {return !fa[x] ? x:fa[x]=gf(fa...原创 2019-03-18 15:00:07 · 1093 阅读 · 0 评论 -
POJ编译问题
最近才开始接触POJ。。。一开始不停地↓我真得就当场懵逼了。我好歹也打了那么久的C++了,的怎么连编译都不通过?!!好啦,想了想觉得肯定不是我的问题(毕竟本地是ok的)然后我就开始百度搜索啦(百度强!)随便看了一篇博客发现原来C++在此提交要用**G++**才行!!!G++!!!好了,代码原封不动地交了上去,切了。。。呵呵,今天弄得我好嗨皮啊。。。...原创 2019-03-04 21:30:15 · 483 阅读 · 0 评论 -
各种各样的根号算法 总结&刷题
分块例题:题目:【五校联考6day1】c解法:原创 2019-04-05 13:21:14 · 1027 阅读 · 0 评论 -
2019.03.02【NOIP提高组】模拟 A 组 总结
T1:https://blog.csdn.net/Larry1118/article/details/88076308较水,只需要自己推一推搞搞就可以了。我感觉我的打法跟别人的可能有很大的不一样。。。(-_-||)T2:https://blog.csdn.net/Larry1118/article/details/88076377听了讲,说就是一个裸的欧拉回路,模板套了套就切了。T3:h...原创 2019-03-02 15:23:31 · 131 阅读 · 0 评论 -
数列分块入门 6 总结
Question这题新加了一个插入操作,然后就是询问了,还好没有修改。。。网上的大都是什么vector的,都是STL。。。(但是身为蒟蒻的我还不会STL(┭┮﹏┭┮))所以我就将这输入用指针来存,然后插入就找到l的位置,然后指针插入。反正都是随机数据嘛~(应该不会遇到特殊情况)就这样我卡过了。。。上标:#include<cstdio>#include<cmath...原创 2019-02-19 18:38:56 · 241 阅读 · 0 评论 -
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 · 171 阅读 · 0 评论 -
[ZJOI2007]仓库建设
这题斜率优化DP即可。一如既往地推公式:设s1[i]=p[1~i]的和,s2[i]=sigma(p[k]*x[k])(1&amp;lt;=k&amp;lt;=i)f[i]=min{f[j]+x[i]*(s1[i-1]-s1[j])-s2[i-1]+s2[j]}+c[i]设k&amp;lt;j&amp;lt;i且j比k更优。(f[j]+s2[j])-(f[k]+s2[k])/(s1[j]-s1[k])&amp;原创 2019-01-30 22:40:08 · 287 阅读 · 0 评论 -
[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 · 277 阅读 · 0 评论 -
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 · 230 阅读 · 0 评论 -
用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 · 377 阅读 · 0 评论 -
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 · 154 阅读 · 0 评论 -
2019.03.23【NOIP提高组】模拟 B 组 总结
100(100)+100(100)+100(100)=300(300)今天B组过水,导致AK。下次还是去A组浪一下吧~~~都是水题也就不贴题解了。(懒)贴张图留个纪念吧:(本人AK)...原创 2019-03-23 16:44:10 · 158 阅读 · 0 评论 -
2019.07.11【NOIP提高组】模拟 A 组 总结
今天做的题有点“神仙”。(A变成B,B变成A)T1:线段树T2:最小生成树T3:打了个spfa,然后找凸包。结果边界少判了少了10分有3个点TLE了。有点惨。结果spfa打错了一点点,而求第二个答案那里没有考虑求和公式,导致TLE。呵呵...原创 2019-07-12 16:49:53 · 119 阅读 · 0 评论 -
2019.07.05【NOIP提高组】模拟 A 组 总结
T1:并查集,排个序就可以了。T2:想到费用流,当看到上界和下界就知道萎了。想水30%的但又发现二次函数的边不会连,这样子图都建不了了。最后只好打5%的数据水水分,感觉没戏。(表示没想到有那么多人连5%的都懒得打)T3:输入输出都是简简单单的一个数就知道是道神仙题了。放着最后才乱搞,结果打了0.5h的暴力都还没打对,到了最后连个表也没来得及交,0分收场,简直就是惨不忍睹。。。估分还在...原创 2019-07-05 19:19:05 · 190 阅读 · 0 评论 -
2019.07.10【NOIP提高组】模拟 A 组 总结
T1 :神奇的树上DP。比赛时刚了好久,调了好久,还整个改了一遍,比赛快要结束了才大概调了出来,结果因为少打了一个边界,导致80->20,赛后改了改,然后打了个人工栈就切了。T2:神奇的玩意儿。应该是最小割,没什么时间了,就继续搞T1了。结果这玩意儿真的是最小割。对于第一个询问,我们注意要看一看一条边的两端的花费是否相同。T3:主席树搞一搞就可以了。下次努力吧。...原创 2019-07-10 20:29:16 · 135 阅读 · 0 评论 -
2019.07.09【NOIP提高组】模拟 A 组 总结
T1:暴力+(玄)优化,好假一开始改题时听到了一个DP,感觉是可以的,于是就打完提交A了。后来在论坛上在楼上发现了一个数据,一测:3,答案是4,结果gg了。听完题以后,决定打二分+hash。就先二分答案(设为x),然后枚举b串的左端点,而后再二分一个位置,使得a[1mid]==b[ii+mid-1],假设二分后的最右端为xx,我们只需判断一下a[xx+1x]和b[i+xxi+x-1]的...原创 2019-07-10 20:17:57 · 155 阅读 · 0 评论 -
2019.07.08【NOIP提高组】模拟 A 组 总结
T1:暴力没有想过单调性这一回事,导致什么也想不着后只好打了暴力。暴力打完后感觉不太好,于是就想办法优化,加了个可行性剪枝:54->81正解,我们发现在n的增大时答案呈单调不递减,于是我们可以找出来这些临界的点就很容易了。(有人说自己常数太大于是连交6次:87->88->89->86->100->87,我也没话可说了)T2:暴搜考试时可能有点神仙了...原创 2019-07-10 20:17:04 · 145 阅读 · 0 评论 -
2019.07.06【NOIP提高组】模拟 A 组 总结
T1:暴力,折半都忘记了。听说暴力碾压正解啊~T2:题目所给的K很大,而且这题又不可能是找规律,那理所应当的是矩阵乘法了但我想了半天就是没有推出来矩阵,无奈弃疗。T3:看那操作好像要打splay,但我不会只打了个暴力。正解其实只要打线段树就好了。对于每一个区间,维护一下左端点、右端点以及部分个数即可。一二操作没有改变本质,用变量记录一下即可。下次努力吧。...原创 2019-07-10 20:16:30 · 143 阅读 · 0 评论 -
2019.07.04【NOIP提高组】模拟 A 组
估分:0+玄+100=100+玄(0<=玄<=100)实际:17+78+100=195T1:比赛是想到数位DP,只需搞一搞回文数字部分为3位或2位的即可。然后想着怎么求回文数字个数kkk,然后用x−kx-kx−k。刚了1h,结果啥也没刚出来,想到容斥去了。最后交了个暴力17分走起。就是没想到DP非回文数字个数。设f[i][j][k]f[i][j][k]f[i][j][k]表...原创 2019-07-04 20:32:46 · 144 阅读 · 0 评论 -
人工栈——解决爆栈难题
我们便以tarjan_LCA为模板,顺便复习复习tarjan_LCA。node (dfs)(dfs)(dfs)#include<cstdio>#define N 500010 using namespace std;struct node{int v,fr;}e[N<<1];struct edge{int v,fr,num;}g[N<<1];int...原创 2019-06-01 22:03:26 · 866 阅读 · 0 评论 -
莫队算法 总结
我的莫队例题都是从这儿的例题刷来的↙%d%a%l%a%o但我觉得莫队讲得好的还是hzwer大佬。下面是例题:bzoj 2038 [2009国家集训队]小Z的袜子(hose)原创 2019-02-15 14:30:08 · 266 阅读 · 1 评论 -
2019.02.15【NOIP提高组】模拟 B 组 总结
考场AK,开心( * ^ ▽ ^ * )T1:考场怕栈溢出,就打了个人工栈。。。T2:状压DPT3:trie,动态开点。下次继续努力!原创 2019-02-15 11:43:07 · 170 阅读 · 0 评论 -
数列分块入门 2 总结
这题,呜呜呜。。。。我™改了™的好几天啊啊啊啊啊!!!!!这题依旧分块。原序列设为a[]对于每个块,我们可以用另一个数组排序(在此设为d[])。另一个!!!(我不知道为什么,将原序列记录了位置在排序™还是错了。。。)然后,还是分类讨论。opt==0分成三块。1:l所在的凸出来的那一部分,暴力搞,然后将a[]中l的块暴力赋给d[],并排序。2:r所在的凸出来的那一部分,方法同上...原创 2019-01-25 21:47:29 · 217 阅读 · 0 评论 -
数列分块入门 1 总结
Question:这题分块~~(标题好像说的很明确的说)~~我们设一个block[]表示第i位属于哪个块。我们便可以这样子打: st=sqrt(n); for (int i=1;i&lt;=n;i++) bl[i]=(i-1)/st+1;然后,对于opt==0我们发现它除了整个块,但两边可能会有一点点的多出来(就是不够一整个块)这两边我们可以暴力搞,而中间的,我们便存一个b[]...原创 2019-01-24 21:13:27 · 148 阅读 · 0 评论 -
快速幂总结
快速幂,就是快速求xy % mo。实现很简单,上标:#include&lt;cstdio&gt;#define ll long longusing namespace std;ll b,p,k;ll ksm(ll x,ll y,ll mo){ ll s=1; while (y&gt;0) { if (y &amp; 1) s=(s*x)%mo...原创 2019-01-01 12:15:09 · 109 阅读 · 0 评论 -
高精度除单精度
上回讲了高精度乘单精度↙戳着然后现在讲讲除的ans[]:5 4 3 2 1y:5除法由于那个余数,所以我们要从高位到低位来求。一变:5 4 3 2 0(1/5) x=1*10(注意到了吗,要乘10,因为1在2眼中就是10!)-------&gt;5 4 3 12 0 x=0二变:5 4 3 2(12/5) 0 x=2*10-------&gt;5 4 23 2 0 x=0三变:...原创 2019-01-05 16:12:01 · 516 阅读 · 0 评论 -
关于输出的东东
printf("%05d",a);如果a=10,那么便会输出00010这代表这如果不够5位便用0填满5位可以将5变成其他的任意整数(但不要太大了)#include&lt;cstdio&gt;int main(){ printf("%05d",10); return 0;}自己在理解理解吧!...原创 2019-01-05 16:11:14 · 279 阅读 · 0 评论 -
高精度乘单精度
高精度乘单精度其实很简单的没压位的:举个例子,12345*5ans[]: 5 4 3 2 1y:5一变:25 4 3 2 1 x=0-------&amp;gt;5(25%10) 4 3 2 1 x=2(25/10)二变:5 22 3 2 1 x=0-------&amp;gt;5 2(22%10) 3 2 1 x=2(22/10)三变:5 2 17 2 1 x=0-------&amp;gt;5...原创 2019-01-05 15:56:53 · 1340 阅读 · 0 评论 -
C++结构体重构
#include&lt;cstdio&gt;using namespace std;struct node{ int x,y; node() {x=0,y=0;}// 赋初值 bool operator &gt; (node &amp;a) {return x.x&gt;x;}//重构运算符}a,b;int main(){ a=(node){3,3};b=(node){4,2}...原创 2019-01-05 08:48:54 · 1544 阅读 · 1 评论 -
2018.12.30【NOIP提高组】模拟赛C组总结
T1:排序即可,然后将它一次过+输出。T2:暴力(中的暴力),但是要小心细节T3:很容易想到DP和转移方程,高精度即可设f[i][j]为1~~i和j+1~m都被取走了的最大值。每行都这样做即可T4:暴力。。。暴力找直径+暴力求答案(。。。)At last,要把握好时间,不要调啊调啊得就忘了时间,结果第四题就“say goodbye”了。...原创 2018-12-30 14:30:41 · 174 阅读 · 0 评论 -
NOIP普及组2017比赛总结
这次考试 第一题:用四则运算, 2*a div 10+3*b div 10+5*c div 10=AC 第二题:看了一下数据范围,立即打了暴力。 先快排了一遍(图书馆里的书),然后再暴力查找(也就是一个个找,慢慢来,不用着急)。 因为数据(对于 100%的数据:1 ≤ n ≤ 1,000,1 ≤ q ≤ 1原创 2017-11-20 19:26:10 · 479 阅读 · 0 评论 -
初二上期中考总结
呀呀呀,如今初中都已经快要过了一半了,下面来总结一下期中考。。班名13,级名42,三校联排大概100多的样子吧。。。还可以,算是有些些进步。但!还是有很大的努力空间啊!!!语文:嘿嘿嘿!没得说,不过还好上到了100分,作文只有38.5分,表示写的不好。 **更重要的是!!!选择题居然,居然错了三道!!!!!** 不过算了,其余的还不错,算是有所进步。 相比于第一次的期中考试,现...原创 2018-12-01 20:15:00 · 384 阅读 · 6 评论 -
NOIP2018提高组总结
这次翻车了。。。(3普及+3省选)/22=6提高???Day0:早早地吃完了饭,便坐上大巴开跑了。。。Day1:考得还算理想,就是T3打炸了,T飞了。T1:原题,for循环的普及组题目。T2:暴力,各种方法都能水过,堪称世界水题。T3:二分+贪心。但是。。。考场的贪心打炸了,T飞了。中午在成都快餐吃了个午饭,下午回到了酒店。突然有人提出去三元里玩,怪不得他只带了这么少的作业!我想:“读...原创 2018-12-04 21:50:14 · 306 阅读 · 0 评论 -
数列分块入门 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 · 217 阅读 · 0 评论 -
数列分块入门 4 总结
这题变得容易了。。。只要记录一下每个块的总和即可。左右两边凸出来的暴力搞就可以了。上标:(感觉别人有毒吧,我跑1000ms+,他/她™只跑100ms+。。。 )#include<cstdio>#include<algorithm>#include<cmath>#define ll long longusing namespace std;i...原创 2019-01-26 07:25:02 · 175 阅读 · 0 评论 -
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 · 188 阅读 · 0 评论 -
2019.02.14【NOIP提高组】模拟 B 组总结
100+73.3+59.1=232.4分T1:暴力+优化=ACT2:n2暴力+优化T3:n2暴力+优化呵呵,一切都源于运气(# ^ . ^ #)原创 2019-02-14 21:39:56 · 170 阅读 · 0 评论 -
数列分块入门 8 总结
这题我们只需设个check[i]表示第i块是否都为一个数,b[i]表示第i块变成的数。然后暴力搞就可以了。至于为什么,我们看看hzwer大佬(黄学长)的解释吧:上标:#include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;cmath&gt;#define N 100010using namespace std;原创 2019-01-28 22:14:18 · 351 阅读 · 0 评论 -
数列分块入门 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 · 250 阅读 · 0 评论