摘要: 最近填坑刷题怒刷一堆树链剖分,得到一些心得 1.在build的时候需要计算的有h fa size,另外还有常规的son bro 2.为方便起见,build写成int,返回这棵子树的节点数 3.pou的时候如果发现没有子节点立刻返回(mdzz这都能忘记) 4.为习惯起见,build的时候传入的父亲用f 阅读全文
posted @ 2016-08-19 17:22 汪立超 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 虽然是水题1A的感觉太爽了O(∩_∩)O~ 题意相当于n-1次树上路径上每个点权值+1,最后问每个点的权值 本来想写线段树,写好了change打算框架打完了再来补,结果打完发现只是区间加和单点查 前缀和不要怂!!! 结果,,,change的长度让人怀疑写change的必要,,,mdzz懒得改了 这道 阅读全文
posted @ 2016-08-19 16:59 汪立超 阅读(161) 评论(0) 推荐(0) 编辑
摘要: (卧槽,居然规定了修改的两点直接相连,亏我想半天) 非常水的题,用dfs序(而且不用重复,应该是直接规模为n的dfs序)+树状数组可以轻松水 收获:树状数组一遍A(没啥好骄傲的,那么简单的东西) 阅读全文
posted @ 2016-08-18 20:57 汪立超 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 题目链接 现在代码能力没上升,倒是越来越会找水题了(比例题还水的裸题你值得拥有) 这网站不是针对竞赛的,所以时空限制都很宽松 然后就让我水过去了 对于每个点,包括自己的前m个元素是否取都是一种状态,所以状压一下(才1024不要怂) 先用这道题熟悉一下状压的套路吧,到时候还要补轮廓线= = 调试要点: 阅读全文
posted @ 2016-08-16 20:50 汪立超 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 你不能把数据规模改大点吗= =我优化都不加都过了 丧病的多组数据,一开始没看见 阅读全文
posted @ 2016-08-12 15:31 汪立超 阅读(489) 评论(0) 推荐(0) 编辑
摘要: Dinic=bfs+dfs = = 用bfs算出到原点的最短路径(每条残存都算1) 然后每次都跑两端只差1的路径跑dfs,并且一直跑到不能跑 一个优化:如果一个点流出的量已经到流入量了就可以返回上一层楼(显然) = =怒压代码 阅读全文
posted @ 2016-08-12 15:27 汪立超 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 线段树水题刷刷,生活没有希望 最近看到代码跟树状数组差不多短的非递归线段树,常数也很小——zkw线段树 于是拿道水题练练手 短到让人身无可恋 单点修改和区间查询(通过前缀和可以变成区间修改单点查询,再加特技标记可以变成区间修区间查) 初始化(赋初值0是因为这道题多组数据,不然还不用) 这道水题理论上 阅读全文
posted @ 2016-08-11 13:31 汪立超 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 整天初赛题做做,生活没有希望 用单调队列优化的dp 因为满足后来的总比先来的(在某些方面)更优 所以能用单调队列 n2变成n 阅读全文
posted @ 2016-08-09 14:02 汪立超 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 学莫队必做题,,,但是懒得写。今天来填个坑 莫队水题 莫队实际上就是按一个玄学顺序来离线计算询问,保证复杂度只会多一个n1/2,感觉是玄学(离线算法都很玄学) 易错点:要开long long(卡我半天) 阅读全文
posted @ 2016-08-09 11:05 汪立超 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 查询代码如上 初始化代码如上 (懒得贴build了,而且各题目有所不同) 在build中,每次到一个点的时候记录一下,每找完一个儿子再记录一次 容易写错的点(也就我这种蒟蒻才会写错这么简单的东西吧) 1.找的时候找的是pos,不要用原数 2.初始化的时候k永远大于等于i/2小于i 3.比较的是h,返 阅读全文
posted @ 2016-08-09 09:55 汪立超 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分没出问题) 顺便吐槽:spoj上内存限制1.5G实在太6,,, 导致我乱开数组,交bzoj的时候ML 阅读全文
posted @ 2016-08-09 08:25 汪立超 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 线段树打标记的好(luo)题 打打标记,记得下移 = =听说2000000是用来卡线段树的 = =怎么办呢,,, = =打个读入优化看看能不能卡过去吧 又臭又长+1 两个更新可以合在一起的,但是懒得改了 阅读全文
posted @ 2016-07-22 18:35 汪立超 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 一眼看题目吓了一跳:这TM不就是单调队列吗,200000又怎样,大不了我二分嘛 系统提示:成功开启 手残模式 开始瞎写: 卧槽,然后就A了,,,A了,,, 主要思路: 每次二分查找要加入的点的位置和要找的点的位置(利用单调队列位置和权值双重单调) 老板娘毁我人生,居然说这是rmq、线段树、树状数组 阅读全文
posted @ 2016-07-20 19:50 汪立超 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 先把树剖分了(又是dfs1、dfs2),然后区间求和、区间覆盖即可 难得的1A好(shui)题 ——写了那么多题,终于有一道是1A的了,加上上一次连续交了几遍A的程序,我的状态莫名好看啊233 总结: 1.开始用define简化代码 2.写的时候出现了手抖,还不够熟练 3.剖分基本上没有问题,线段树 阅读全文
posted @ 2016-07-20 15:43 汪立超 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 此题甚坑,一开始我一直怀疑线段树敲渣了,最后发现又没开longlong QAQ 我居然蠢蠢地连改了几个无关紧要的东西疯狂地交 过了以后看到网上大神的左右儿子都用define写,表示羡慕,开始改程序(MDZZ还RE了一遍),希望以后再写线段树的时候能记得用define缩代码减少点错误 主要是标记的变化 阅读全文
posted @ 2016-07-19 16:04 汪立超 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 一个有初值的数列、区间加、区间查 用线段树直接水过 然而并没有1A,主要是做题太快没看规模结果没注意线段树要用longlong建 卧槽怎么可以这么坑爹,害得我看见wa心慌了,还以为连线段树都要跪 一开始在写下传(MDZZ)然后发现没什么操作就删了 阅读全文
posted @ 2016-07-19 13:29 汪立超 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 又是数论题 Q&A Q:你TM做数论上瘾了吗 A:没办法我数论太差了,得多练(shui)啊 题意 题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入输出格式 输入格式: 输入文件名为equation .in 阅读全文
posted @ 2016-07-19 10:16 汪立超 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 朴素素数测试是O(x1/2)的,每一个数都测试下来就炸了 然而如果全部预处理的话才是做大死,时间空间各种炸(大约有1亿个数) 所以怎么平衡一下呢? 其实在预处理的时候可以只处理一半:把21474836471/2内的质数全部预处理出来(这些就是要用的全部质数),然后用这些质数线性筛一筛就能得到正解 = 阅读全文
posted @ 2016-07-18 18:56 汪立超 阅读(566) 评论(1) 推荐(0) 编辑
摘要: 拉板题,,,不说话 我之前是不是说过数据结构很烦,,,我想收回,,,今天开始的数论还要恶心,一早上听得头都晕了 先来一发欧几里得拓展裸 代码又短又好懂,所以就不解释了 可以看出gcd中所有关于xy的东西删光就变成了朴素的球最大公约数的gcd——其实本程序中的欧几里得是拓展欧几里得,所以应该叫exgc 阅读全文
posted @ 2016-07-18 16:07 汪立超 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 洛谷题目链接 题意: 给定一个长5w静态的序列,询问20w次,每次询问查找一个区间内的元素种类数 染色问题神烦啊,最近刚会做,感觉都可以用统一的方法 首先要算出与一个元素相同的最邻近的上一个元素的位置,这样的话只要求出区间内上一位置小于下限的就是元素种类数 ——非常有道理的样子,但是第一次见肯定想不 阅读全文
posted @ 2016-07-15 20:11 汪立超 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 原来主席树就是可持久化线段树啊,刚知道,,, 作为一道裸题,还是必A的,然而一开始偷懒不写离散化跪了N多遍,后来在缪大的帮助下发现了这个问题,遂A之 ——又是这种破问题,实在不想说自己了 把n个数看成n次修改,对于每一次都建线段树,于是就能得到N棵线段树 然后时间空间全都爆炸,我们得到了完美的程序 阅读全文
posted @ 2016-07-14 15:45 汪立超 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 好不容易参个赛才做几个小时 http://www.luogu.org/contest/show?tid=624 只做了前4题,后面5题直接空着其实只是刷刷水题 工厂,模拟题 一开始zz想了半天怎么贪心,差点去写搜索,最后突然发现只能按序放…… 秒之(一开始没注意规模wa了,改了long long就a 阅读全文
posted @ 2016-07-11 07:43 汪立超 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 我们模拟从被观察物体射出光线,在眼球焦点交汇,然后打到视网膜上成像 ——足够了吧,剩下的难度应该是普及- 只是有一些常数可以自己调一下,看着顺眼就好 画了一个梅塔特隆立方体玩玩,看着应该比较顺眼 阅读全文
posted @ 2016-07-07 20:31 汪立超 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 不要问我ege怎么装 http://tieba.baidu.com/p/2227018541 好,现在我们装好了ege 开始写2048吧 没有算法,单纯模拟,不用讲解——这才叫【水】的含义 界面极度简单,不喜勿喷 阅读全文
posted @ 2016-07-07 20:26 汪立超 阅读(1117) 评论(0) 推荐(0) 编辑
摘要: 题意很明确,也非常经典: 一个支持查询 区间中比k大的数的个数 并且支持单点修改的序列 ——因为题意可以转化为:查询这两个数中比后者大的个数、比后者小的个数、比前者大的个数、比前者小的个数(根据这4个就能算出增加/减少了多少对逆序对)并且把两个数修改掉 于是就出现了 ——来自百度 一个二分就能解决套 阅读全文
posted @ 2016-07-07 16:39 汪立超 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 埃及分数题意非常明白,这里就不解释了…… 但是关于最优解的问题,题目并没有说明 原题: 对于一个分数a/b,表示方法有很多种,但是哪种最好呢? 首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。 然而这并没有考虑一种很恶心的情况:加数一样多,而且最后一个分数一样的时候,哪种情况最 阅读全文
posted @ 2016-07-05 09:34 汪立超 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 其实就是手打了个Tarjan的模板 输出的时候注意是入度为0的点的个数和max(入度0的个数,出度0的个数),在n=1时特判为0即可 ——以后图论要渐渐模板化,方便使用 阅读全文
posted @ 2016-07-01 21:01 汪立超 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.luogu.org/problem/show?pid=1967 数据:http://www.cnblogs.com/wanglichao/p/5592058.html 题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有 阅读全文
posted @ 2016-06-17 07:38 汪立超 阅读(845) 评论(0) 推荐(0) 编辑
摘要: https://yunpan.cn/cRSepfcG4XX3V 访问密码 48e1 NOIP2013测试数据senior/junior 普及/提高 数据都在了 阅读全文
posted @ 2016-06-16 19:54 汪立超 阅读(849) 评论(0) 推荐(0) 编辑
摘要: A*算法 本质还是搜索:加了优化而已 关于这个优化,听到两种说法: 1.剪枝 通过判断预计最少还要几步,加强版剪枝 比如说一个经典剪枝: 如果 步数≥已知最小值 则 剪枝 升级| V 如果 步数+最少还要几步≥已知最小值 则 剪枝 2.修改顺序 每次搜索时优先考虑最有可能是最有解的选项 (启发的感觉 阅读全文
posted @ 2016-06-11 10:37 汪立超 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 单调队列 其实是初二就学的,但是当时只是会做几道例题,没有总结规律,现在看入门经典时突然感觉以前学的时候太不仔细了,漏过很多细节,于是来填(wa)个坑。 先抄几道例题(其实例题都属于“滑动窗口”一栏,但其实思想一样,直接被我归纳为单调队列了) 1.Window 不解释 知道单调队列的应该都知道Win 阅读全文
posted @ 2016-06-05 19:54 汪立超 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 好像来的有点晚,但我的确现在刚做这套题 T1神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行、每列及两条对角线上的数字之和都相同。 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间。 之后,按如下方式从小到大依次填写每个数K( 阅读全文
posted @ 2016-06-03 13:59 汪立超 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 1. 弄清问题 首先你必须弄清问题 􀁺 未知数是什么?已知数是什么?条件是什么? 􀁺 满足条件是否可能?要确定未知数,条件是否充分?或者多余?还是矛盾? 􀁺 画一张图,使用恰当的符号。 􀁺 理清不同的条件,试着把它们都写下来。 2. 拟订计划 找出已知数与未知数之间的联系。如果没有直接的联系 阅读全文
posted @ 2016-06-01 20:23 汪立超 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/flqbestboy/article/details/8222603 (不知道他从哪里转的) 博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多。(如果你的英文水平 阅读全文
posted @ 2016-06-01 18:25 汪立超 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 其实优先队列就是在里面放上不同优先级的可能答案,然后不断更新(当取出一个答案时会增加一些可能的答案||题目给出的新的答案(在线)) 一般用于前n个最优解(因为特点是存取各lgn,可以承受多次取,一般复杂度nlgn,导致现在看见n≤100,000就感觉像是heap) 赛车 的可能答案是所有超车事件,但 阅读全文
posted @ 2016-05-31 07:44 汪立超 阅读(269) 评论(0) 推荐(0) 编辑
摘要: var n,m,s,t,v,i,a,b,c:longint;//这道题的代码不是这个,在下面 first,tr,p,q:array[0..20000]of longint; next,eb,ew:array[1..100000]of longint;procedure swap(a,b:... 阅读全文
posted @ 2015-05-25 20:46 汪立超 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 二、线性动态规划 上次只能算一个热身,这次是真正的动态规划了。还是洛谷(http://www.luogu.org/problem/show?pid=1048):题目描述 Description辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他 阅读全文
posted @ 2015-05-17 10:59 汪立超 阅读(239) 评论(0) 推荐(0) 编辑
摘要: var i,n,j,k,t:longint;a:array[1..20,1..20]of longint;function min(a,b:longint):longint;begin if ak)and(a[i,k]j)and(a[k,j]<$7f)then begin a... 阅读全文
posted @ 2015-05-17 10:51 汪立超 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 首先的首先,必须明白动态规划(DP)以后很有用很有用很有用很有用……首先的其次,必须明白:动规≈搜索=枚举一、最简单的记忆化搜索(应该可以算DP)题目(来自洛谷OJ)http://www.luogu.org/problem/show?pid=1434#【不麻烦大家自己找了】题目描述 Descript... 阅读全文
posted @ 2015-04-06 13:38 汪立超 阅读(1276) 评论(0) 推荐(0) 编辑