总结
beginendzrq
主要负责给各位大佬端茶送水...
展开
-
151019总结
T1将读入的十进制转成二进制,然后判断每一段的个数和颜色,转成十进制输出需要的知识:模拟T2最优组播树,搜索考虑每次将px与py连边,搜索到下一层时,将px+1、py+1连边,回溯回来时,先将px+1与py+1连边,再将px、py连边,这样就会造成很多重复的搜索我们把已加入树的点进行编号,按照号数从小到大枚举该节点的儿子节点,对每一层枚举的节点,下一层要么枚原创 2015-10-19 16:55:52 · 359 阅读 · 0 评论 -
151015总结
T1将字符全部转成数字,然后存入数组,再排序然后再统计每个数出现的次数//注意:高位补0需要的知识:无T2dp:f[i]前i条线段最多能保留多少条(包含i) g[i]前i条线段保留f[i]时的方案数f[i] = f[j] + 1 → g[i]+=g[j]f[i] 需要的知识:dpT3二分答案,每种电阻最多用min(a原创 2015-10-15 14:21:34 · 467 阅读 · 0 评论 -
151030总结
T1就是枚举分界线,分界线以前全为大写,以后全为小写注意边界/*边界没判0,wa了20分*/需要的知识:无T2//一群学霸写了莫队orz离线,从区间右边界向左边界建边,然后从 1 到 n 扫一遍每加一个数就改变一下边界状态,用树状数组维护(like 采花)需要的知识:树状数组T3水题~求最大生成数,计算每加原创 2015-10-31 16:29:29 · 365 阅读 · 0 评论 -
151209总结
T1和一般的题(DP、贪心)不一样,每项工作可以不用一次性做完,所以可以想到网络流建图方法:v为离散化后的时间段,u为工作S → vi 流量 = 时间段长度 * 机器数量 (即在该时间段的最大工作量)vi → ui 流量 = 时间段长度 (即在该时间段对该工作的最大工作量)ui → T 流量 = 完成该项工作所需时间判断 :若max_flow = Σ ti 则可以原创 2015-12-09 23:30:51 · 436 阅读 · 0 评论 -
151102总结
T1神奇的做法,将值按log计算,再比较,精度足够//0要特判/*然而我乱搞过了,按标算写跪了-_-|||*/需要的知识:无T2一道dp题,f[i,j]=min(f[k,l] + sum1[k+1...i] * sum2[l+1...j])将sum1*sum2展开后可得a[i] * b[j] + ... + a[i] * b[j-l+原创 2015-11-02 17:02:45 · 233 阅读 · 0 评论 -
151031总结
T1 搜索题/* 就我写了最大团 + 状压搜索吗→→ 不过跑的快啦~ */需要的知识:搜索T2 每个字母越靠前当然不会更差 倒着扫一遍,存下每个字母下一次出现的位置 然后就可以匹配啦~//常数比 log 还大 -_-|||需要的知识:无T3 //学霸们是记录前缀和、后缀和然后查找。。。 然后贴一下我写的题解→→ p | ai * aj * ak → p | gcd ( ai ,原创 2015-10-31 16:55:20 · 244 阅读 · 0 评论 -
151212总结
T1 数学期望题,不会做,就是列方程然后递归求,用Hash处理大概可以控制到100W种情况需要的知识:数学、hashT2 每个a → b要增加的数为 4k + b ,若增加的值都为b,那么 ans = ∑a[i]>a[i−1]a[i]−a[i−1]\sum_{a[i] > a[i-1]} a[i] - a[i-1] 对数列进行差分后 ans = ∑d[i]>0d[i]\sum_{d[i] >原创 2015-12-14 09:13:09 · 352 阅读 · 0 评论 -
151216总结
TJOI2015 D2 T1 给一颗树,每次给出 A 、B ,求 A -> B 的路径上 max{aj - ai} (i 先于 j 经过),然后将A -> B 的路径上的点全部加上 v 裸的树链剖分,主要是线段树最大最小值的合并操作,线段树维护区间最大值、最小值、从左到右的最大差和从右到左的最大差,先求得两点的lca,再分别计算 x -> lca 和 lca -> y ,注意顺序不能写反。每次原创 2015-12-16 20:44:23 · 371 阅读 · 0 评论 -
151226总结
JLOI D2T160分算法 dp : f[i,j] = Σ f[i-1,k] (0 考虑转移的方向限制 可得f[i,j] 为 n * n + m - 1 棋盘上 从 (0,0) 走到 (n , n + m -1) 且不越过直线 a : y = x +1 ,b : y = x - (m + 2) 的方案数∴ ans = 总方案数 - 穿过 a 的方案数 - 穿过 b 的方案数 +原创 2016-01-04 21:40:02 · 280 阅读 · 0 评论 -
151228总结
BJOI2015T1一棵n个节点树,上面有m个骑士,每个骑士有自己的权值,支持修改骑士位置、权值,每次询问x、y的路径上前 k 大的权值显然是用到了树链剖分,然后线段树维护的时候,我sb的写了线段树套splay。。。其实可以用链表或桶,每次就算是暴力合并也不会T 。。。TAT 代码能力弱++ 需要的知识:树链剖分 T2判断编号最小的与其同构的树暴力写不来原创 2016-01-04 21:43:31 · 336 阅读 · 0 评论 -
160104总结
HEOI 2013 D1T1从前到后,从后到前各做一个背包,每次询问的时候 O(n) 合并 我sb的一直以为是 O(n^2) 的合并,交的暴力50 orz 复杂度:O(nq + n^3) 需要的知识:背包 T2黑方走 :下一个结点只要有一个黑方胜,该结点就必胜白方走 :所有子节点都为黑方胜,该节点才必胜然后2遍 dfs ,判断每个结点取 sum原创 2016-01-04 22:02:21 · 463 阅读 · 0 评论 -
151219总结
SDOI2015D1T1给出二阶递推式Fn = Fn-1 + aFn-2 + b ,和数列{An} ,每次修改可以将A[l..r]加一或减一,每次询问 sigma{F[A[i-1] + 1] * F[A[i+1] - 1]} (l因为 An 可以达到 2*1e9,所以求 Fn 的时候可以用矩乘来优化,每次修改时,可以用线段树,但修改区间每次只能操作一次,即操作次数 = 标记数,但是可以原创 2015-12-22 14:20:51 · 306 阅读 · 0 评论 -
160109总结
T1同 huangyueying需要的知识:数位DPT2费用流裸题原边流量不变,费用设为0跑一边,得出最大流再建一次边,流量设为INF,费用为题目所给再跑一次费用流就行了调了一天,T_T,结果是跑SPFA时前后的最大值不一样(前面用的memset,后面写的 != INF)。。。需要的知识:费用流T3f[i , j] : 用 i 个原创 2016-01-23 21:12:18 · 245 阅读 · 0 评论 -
160110 ~ 160117总结 —— 毕姥爷的题
先模一下大神 %%%160110T1三分套三分可以利用样例,但会被卡精度。。。需要的知识:可以说python吗。。。T2数列取模是有循环节的,然后里面一层的模数就可设为上一层模数下的循环节,至于循环节,可以先分解质因数(n = p1^k1 ... ps^ks),然后找到每个因数(pi^ki)的循环节,然后取lcm,也可以用中剩来做。暴原创 2016-01-23 21:18:54 · 353 阅读 · 0 评论 -
160119总结
WC 2010T1求长度在[L,R]之间的路劲使得平均权值最大考虑二分答案,将所有边权减去该值,就使结果变成了求一条长度在[L,R]的路径,使得路劲权值和最大将树分支,考虑用重心点分。对于节点r,算出r到其子节点 r1 ... rs 中路径长度为i 的值,算的时候,用单调队列优化树分治的常熟比二分大,所以先二分再分治需要的知识:二分 + 树分治 + 单调队列原创 2016-01-23 21:23:32 · 326 阅读 · 0 评论 -
160121总结
T1K小割跪。。。OrzT2我能说班上就只有一个看懂了题的吗。。。果真是去冬眠的啊。。。T3%%% 毕姥爷1 : 就是快(龟)速乘2 : 斐波拉契数列的平方,矩乘 (虽然我没看出是Fibonacci,但是推出了另一个递推式,依旧矩乘3 : 同国王奇遇记,k ,但是因为要自然溢出,不能求逆元,只有矩乘。。。//其实也可以差分哒~4 : ty原创 2016-01-23 21:29:53 · 284 阅读 · 0 评论 -
151221总结
HAOI2015T1一颗树上有 n 个点,让你将 m 个点染成黑色,使得颜色相同的点间的路径长度和最大树形dpF[i,j] 表示以 i 为根的子树选了 j 个黑点,子树内的所有被标记过的路径权值和void DFS(int p,int fa){ static LL tmp[maxn]; fill(dp[p]+2,dp[p]+n+1,-INF);原创 2015-12-22 15:57:34 · 295 阅读 · 0 评论 -
151224总结
151223TJOI2015D1 T1 有意义的字符串然后就可以矩阵快速幂求出an+1啦~注意, 1.n=0时要特判,就是在这儿丢了5分。。。2.模数非常大,必须开unsigned long long ,然后写快速乘 复杂度:O(23logNlogx) 需要的知识:二阶递推、矩阵乘法 T2 城池攻占可并堆,从叶子往根合并,当堆顶原创 2015-12-24 07:37:33 · 278 阅读 · 0 评论 -
151029总结
T1最大的情况就是1.使最大的排中间,然后依次排开最小的最大的。。。2.使最小的排中间,然后依次排开最大的最小的。。。然后取两个间的最大值需要的知识:无T2二分答案,使得每次满足答案的分界线尽量往上往左就好了/*标算调不出来,暴力又写挂了TAT依旧不会写暴力→→为了提升调代码的能力,以后还是帮WY检查数学作业好了╮(╯_╰)╭原创 2015-10-29 16:47:01 · 250 阅读 · 0 评论 -
151028总结
T1每个数都分解成2、3、5、7的阶乘就好了需要的知识:无T2开个数组,记录 人、三个箱子所在不同位置时的最小步数,然后广搜【错因】判漏了两个箱子相邻的情况需要的知识:搜索T3在白边上减去一个值,发现最小生成树权值和、白边数量都是单调的所以可以二分这个值,先减去它,然后再计算答案,最后补偿回去/*完全没想到→→原创 2015-10-28 16:30:09 · 266 阅读 · 0 评论 -
151103总结
T1记录每个狮子吃了那只狮子,这个顺序是固定的,所以它他一旦被吃且它有吃过其他狮子,那么他就可以选择不吃,因为要维护最大和最小,所以可以用set,,不会STL的就只有手写堆T_T/*然而我的第一反应竟是用平衡树来维护orz*/需要的知识:堆/STLT2可以看成K辆车把棋盘分成了若干部分,然后将方案数乘起来,每个部分可以用状态压缩先预处理出来,计算方案数的原创 2015-11-04 15:21:17 · 307 阅读 · 0 评论 -
151017总结
T1可以按单词长度排序,然后搜索也可以写状压dp表示每个单词有没有选择需要的知识:搜索/状压dpT2求最大边最小就是求最小生成树/*也有人写二分答案+bfs/dfs/dijkstr etc*/需要的知识:mstT3三维dp敌人数f[i][j][k]:前 i 个点用了 j 枚炸弹第 k 种炸法(标算k有3种,我写了4种T_T原创 2015-10-19 18:56:55 · 285 阅读 · 0 评论 -
151017总结-学军
T1求出 前缀和 和 后缀和 再枚举选出来的那个数计算O(N)/*我是记录每位1的个数,再枚举每个数算出改变后的值,求最大O(N*logN)*///听说数据很水,直接选最大的数来乘都能过-_-|||需要的知识:无T2ax≡p (mod n)gcd(a,n) | p即每个人步数与总长度最大公约数的倍数的位置都能到达考虑枚举n原创 2015-10-19 19:16:09 · 870 阅读 · 0 评论 -
151104总结
T1把3的幂次看成2进制,然后就是统计l~r的二进制每位出现了多少次/*wa的只有30分,把(1还有unsigned long long 不会用,虽然用不到*/需要的知识:无T2先二分出高度,再用状压dp存前k位的状态(只有k位对他有影响)然后dp验证(~ o ~)//然而学霸们都记得这题做过 /* 道路覆盖 */ ╮(╯▽╰)╭原创 2015-11-04 15:03:33 · 994 阅读 · 0 评论 -
151020总结
T1排序不等式:顺序和>=乱序和>=逆序和//想到了柯西不等式o(≧v≦)o~~需要的知识:数学T2裸的LCA,树上倍增求公共祖先需要的知识:LCAT3因为是删点,所以可以倒着做,变成加点,相当于每次向图里面加一个点,用floyd的方法,来更新新的最短路(题解说这个叫-传递闭包- -_-|||)每次更新先将这个点i当做边界点,枚举中间原创 2015-10-20 19:04:49 · 318 阅读 · 0 评论 -
151105总结
T1给出的是先序遍历,已知中序遍历都是1...N,求根到每个点的路径先序遍历:根左右中序遍历:左根右然后深搜数据有问题-_-|||需要的知识:二叉树遍历T2区间dp枚举区间,在枚举最后一个点f[l,r] = f[l,i-1] + f[i+1,r] + a[l-1] + a[r+1]/*都去做第三题去了,没写第二题TAT*/原创 2015-11-05 17:23:29 · 273 阅读 · 0 评论 -
151021总结
T1贪心,先对h进行排序,然后贪心地往最近或最远的平台跳即可//注意判断边界/*当时我一看到这个题就觉得是dp,然后写了dp+单调队列优化 -_-|||*/需要的知识:贪心T2//这题方法多①【线段树】先将点离散化,将数学家们按照li排序,维护一个数组G,Gi=min{fi | lj = i},一开始将G设为无穷大,求fi的时候使用f原创 2015-10-21 17:34:58 · 294 阅读 · 0 评论 -
2015国庆总结
D1T1A胜利和B胜利的局面是一一对应的,所以可以转化为求AB平局的状态异或有自反性,所以AB平局的状态权值异或一定为0F[i,j] : 第 i 个数,两者权值的异或值为 j 的方案数F[i,j] = F[i-1,j] + F[i-1,j xor a[i]]*2ans = (3^n-F[n,0])/2T2最大团=补图的最大独立集每次搜索选度数最大的点进行枚举原创 2015-10-08 20:06:26 · 314 阅读 · 0 评论 -
151023总结
T1由均值不等式可证,当分得的m份越接近时,所得答案最优每份的贡献为 t*(t-1)/2所以可以枚举份数,再减去每份的答案即是分i份的答案//还可以二分答案做 将复杂度降为 O(n*logn)/*当时没有证到这种方案最优,以为这样做会被卡→→然后写了DP→→/*需要的知识:均值不等式T2对于每一位,若前面有一位小于限制,则原创 2015-10-23 16:41:41 · 266 阅读 · 0 评论 -
151022总结
T1分类大讨论~k != 3 时很简单,,,当k = 3 时 因为取两个数一定可以得到 1 ,所以答案一定不会超过 1 ,就只用讨论答案 = 0 能否得到若存在 ans = 0 的情况 设 X ^ Y ^ Z = 0 且 (l 设 Y = 2^k + b , Z = 2^k + c (b 当 x >=2^(k-1) 时 z >= 2^(k-1) + 2^k 此时 y = z原创 2015-10-23 07:41:15 · 313 阅读 · 0 评论 -
151025总结
T1判断边界U = like + min(choose , k - D)D = like + max(0 , choose -((m - choose) - (k - like)))如果 Di >= ∨Uj -> 0 Ui 1/*不知道为什么就挂掉了。。。*/需要的知识:无T2dp:f[i,j]表示有多少行第 i 列到第原创 2015-10-25 20:53:48 · 249 阅读 · 0 评论 -
151024总结
T1情况最坏的时候是斐波拉契数列,但最多只能有50项,所以枚举到前50项,就一定能够得到答案/*当时没想到这样所以敲了个O(N^3*M)的暴力没想到A了→→*/需要的知识:斐波拉契数列T2一看就是用到了卡特兰数,,,设 fi 为 1 ~ i - 1 的陷阱都不经过,并且走到 i 的方案数 gi = sum {f[j] * ways原创 2015-10-25 18:34:01 · 370 阅读 · 0 评论 -
151026总结
T1//方法有很多种将每个点 u 拆开成 u1 u2 ,s 向 u1 连边,u2 向 t 连边,边权为fn对于每条边,从 u1 向 v2 连边最后跑一个DINIC,ans = sum{ fi } - maxflow/*自从省选完了后就没写过网络流,忘掉了→→*/需要的知识:网络流T2数位dp我比标算多了一维,好麻烦TATf[i原创 2015-10-26 16:46:51 · 371 阅读 · 0 评论 -
151012总结
T11.Trie树以单个字母作为节点,在每一个文件夹结尾处做标记2.以字符串为节点,从根目录往下查找,如果在父节点中能找到st,就将st做为新的父节点继续查找,否则新建一个节点,保存st,在以它为父节点继续查找/*我是先排序,再逐一比较两个相邻的字符串,不同就创建新的目录*///题目要求字典序输出需要的知识:模拟T2借鉴网络流残余流的思想,用原创 2015-10-12 16:38:30 · 357 阅读 · 0 评论 -
151014总结
//lsh。。。 >_T1dp:f[i][j] :前i+j个数中Alice取i个,Bob取j个的最优值【错因】没开 long long + 数组没开够 TAT需要的知识:dpT2区间和=sum[x1...x2]*sum[y1...y2] = a枚举sum[x1...x2]再计算出有多少对应的a/sum[y1...y2]原创 2015-10-14 16:13:46 · 273 阅读 · 0 评论 -
151013
T1bool f[i,j]:i时间j木桩是否可以到达f[i,j]可以从f[i-1,j-5...j+5]转移过来时间不会超过lcm,所以时间枚举1...2520就行了/*当时没看懂题-_-|||,不知道他是怎么跳的就没做→_→*/需要的知识 : dpT2综合性的题目,好想但不好写,代码量大,调了一天都没有调出来╭(╯^╰)╮构图原创 2015-10-13 19:02:44 · 369 阅读 · 0 评论 -
151027总结
T1超级水的题,读入类似get_int(),然后排一下序就好了(当然,我还是喜欢字典树)/*手贱,第10+次数组开爆→→*/需要的知识:无T2枚举每两个人,算出他们的表达式,判断在公共时间内是否有交点复杂度:O(N^2)需要的知识:无T3先将读入的数据按t、d降序排序然后枚举每个d,将大于 t 的 d全原创 2015-10-27 16:10:18 · 251 阅读 · 0 评论 -
160701总结
额,犹豫了半天,还是发出来了233 反正也没有人看对不233T1 题目大意:给定三场比赛的排名 (1 ~ n),问有多少对 i,j 使得存在 i 的排名比 j 高和 j 的排名比 i 高的比赛一眼看去是个三位偏序对不对,然后直接上 cdq 就 T 了不是….嘛,其实可以算 (a,b),(a,c),(b,c),(b,a),(c,a),(c,b),其中 (a,b) 代表在比赛 a 的排名更高,比赛原创 2016-07-08 13:46:01 · 356 阅读 · 0 评论