自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蒟蒻的博客

当你的才华还撑不起你的野心的时候,你就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌。

  • 博客(66)
  • 收藏
  • 关注

原创 NOIP注意事项

1、爆int 2、64位用%lld 3、文件名打错 4、函数返回值 5、取模要严谨 6、数组大小 7、空间复杂度 8、一些递推的初始值 9、会做的题全部做对,能写的部分分全部写暴力,不会的部分分写骗分。 10、答案输出格式要正确 11、文件名末尾正确 12、不要长时间思考或者调试太久,会导致效率降低,NOIP不会非常难!!!

2017-11-09 20:59:39 878

原创 学习线性基 bzoj 4568 幸运数字

好久没写博客了,最近学习了一下新姿势:线性基,这个就很厉害了。线性基其实很好理解。会线性基可以直接跳过下面的部分。。。我们先抛出一道简单的题: 给你一个长度为n的序列,在其中任选数字求可以得到的最大异或和。我们知道任意两个,和连续一段的最大异或和,可以用Trie加贪心水掉,但这道题怎么做呢?线性基就可以用来处理这个玩意。通俗的讲:线性基其实是一些数的集合,而用这些集合里的数字任意组合异或可以表示完

2017-10-25 21:45:36 468

原创 NOIP模拟考栽阴沟了,惨痛爆零

先把今天的模拟考试题放出来:T1: 反思:我在考场秒想到这道题是单调队列,但因为我分类讨论了绝对值,并没有把距离绝对值当做滑动区间来看,分别讨论4种情况的单调性,md我真是阿库娅,然后还有一点写挂了,最坑的是卡空间,惨痛送分。T2: 反思:树形dp水题,秒想特殊的树形背包(物品重量都是1)的时间复杂度是n^2,但TMD又卡long long空间,想死的心都有了,惨痛丢分。T3: 反思:简单的区

2017-10-17 18:57:51 862 1

原创 NOIP复习计划

复习总纲:字符串(轻),图论包括树的知识(重),dp和贪心(重),模拟和搜索(重),数论(中偏重),数据结构(重),基本知识,暴力。 从前到后优先度递减。 字符串内容:KMP、Trie树、AC自动机、后缀数组。 图论包括树:拓扑排序、最短路算法(最小路径树)、最小生成树、倍增lca、tarjan算法、二分图匹配、重链剖分、朱-刘算法、2-sat、最大流、平面图转对偶图、最大权闭合子图。 dp

2017-10-02 19:30:35 486

原创 bzoj1493 线段树

久违的写一发博客,真是调了好久。 显然F和R操作可以记录两个rev和mov值来忽略掉,剩下就是线段树基本操作了,主要是CS操作不懂它什么意思弄了好久- -#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#define N 500005#define rep(i,a,b) for(int i=a;i

2017-09-27 21:20:21 367

原创 Codeforces 864E Fire (DP)

题目大意: 现在你有n个物品,每个物品三个属性,我个人记为a,b,c. a表示你需要花a的时间去救这个物品,b表示到b时间后物品就销毁了,c表示救这个物品的价值,求出能救到的最大价值。 n <= 100 b <= 2000 c <= 20 a <= 20 这道题就是个DP,考的时候时间太紧没有把b 按从小到大sort一遍导致惨痛丢了一题。物品按b从小到大sort后直接背包dp,详细见代码:#

2017-09-26 08:22:57 755

原创 BZOJ 1071 毒瘤题,单调指针搞搞

题目还是看原题吧。 这道题简直魔性、先膜一下大佬wjj(ORZ)我们令s=A* h+B* v。 原式就是s <= A* minh + B * minv + C我们预处理出所有S。我们把数据复制两份,x数组按s从小到大排序,y数组按h从小到大排序。我们随便枚举minv,我们在算出一个maxv=minv+C/B(有什么用一会解释),然后在内层我们再在y数组中从小到大枚举minh,这样我们就发现在内层

2017-09-12 16:54:30 383

原创 9月份学习目标

1、刷Burnside题目2道。 2、SG函数2道。 3、dp题目10道。 4、数据结构5道。 5、字符串5道。 6、莫队、CDQ分治、LCT各2道。 7、计算几何5道。 8、图论10道。 9

2017-09-10 17:05:04 373

原创 再谈SG函数和SG定理

今天考了一道博弈论的题,让我重新复习一下SG定理吧。 首先通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。我们知道对于最普通最一般的NIM取石子来说,所有石子个数异或起来如果为0,那么先手必败,如果不为0那么先手必胜。具体证明如下:1、最

2017-08-28 15:18:33 5605 4

原创 计算几何总结

计算几何也就一些模板的说。比较重要的有点乘和叉乘的应用。利用这些可以求很多问题。重要的知识:判断线段是否规范相交(四个点乘),求线段交点(利用三角形面积相等推出来的公式,还有就是线段用方向向量和点表示) 求凸包(这个简单,先把点排序,用一个栈维护,如果当前点在上一条线段的左边则加入站),半平面交,旋转卡壳(用两条平行直线来卡住凸包),还有就是一些我不会的东西了(KD Tree,自适应Simpson

2017-08-23 21:40:44 288

原创 总结

对于目前的我来说,计算几何需要的其实更多的是理解,以及规范的模板。关于考试方面。在做题的时候,需要不停地转换思路,不要死地停留在一个思路上,但有很多次考试,我原先的想法其实是正确的思路,只不过更深入一点就是正解了。这需要有考量,究竟是放弃当前思路,还是坚持到底,我认为在考试中,不一定要先想出正解,要先想要一个比较优秀的暴力,把大部分60%就好的分拿到是比较理想的暴力(对于蒟蒻的我来说)那么,心里就有

2017-08-21 20:05:10 265

原创 高斯消元总结

这个超级简单啦。 就是初中都会的解方程的概括啦。就是不断消元啦。直接上模板#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define N 205#define ll long long#define eps 1e-8#define PN ""using namespace std;in

2017-08-18 19:48:00 450

原创 BSGS+原根+离散对数

前提知识:欧拉定理这个东西有点强啊。离散对数就是求给定a,b,p 让你求 a^x ≡b mod(p) 意义下的 这个x。这个东西我们用BSGS算法有点牛逼的名字(拔山盖世,北上广深)我们令x=i*c+j , c=ceil(sqrt(p)) 也就是根号p向上取整。 可以证明如果x有解,那么x一定小于p因为根据欧拉定理, a^φ[p] ≡ 1 Mod(p) 而φ[p]是一定小于p的所以如果有

2017-08-17 21:23:48 749

原创 中国剩余定理+扩展

最近有点不妙啊。- -。前提知识:扩展欧几里得,乘法逆元,快速幂等。中国剩余定理。CRT。现在看来比较简单了。 他用来处理一堆形如 x≡ai(mod mi)的同余方程。 最后求x。 要用这个定理的前提是mi两两互质。 (注意我设的未知量的大小写) 定理内容:首先令M=m1 m2 。。。。。(所有m乘起来)。 然后,令Mi=M/mi,Ri为 Mi在模mi意义下的逆元。 那么ans=

2017-08-17 20:47:54 327

原创 bzoj1014 神奇的平衡树+hash

哇塞学到了用平衡树存hash值,黄学长的模板用起来就是好耍。 这道题如果没有修改操作的话,二分hash值就可以搞定或者后缀数组什么的,但这道题要修改所以就用平衡树来存hash值就好了,写起来并不难。。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define N 150005#define m

2017-08-12 21:28:32 348

原创 bzoj 2124 神奇的树状数组+hash

**调了一下午这道题,bzoj还必须要人把读入读完。 这道题关键是用树状数组来实现求类似等比数列的东东。 还有就是要想到转换成字符串比较是否是回文。 详细就懒得说了0 0,直接上代码。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define N 10010using namespace

2017-08-05 19:15:37 563

原创 hdu 1512 左偏堆

做一道左偏堆复习一下0 0. 左偏堆比普通的堆多存一个dis值,他有几个性质,节点dis=右儿子dis+1,左儿子dis > = 右儿子dis,然后就是一些标准操作了,每次合并在右儿子上插就没了。这个题目题意如下【题目大意】在一个森林里住着N(N<=100000)只猴子。在一开始,他们是互不认识的。但是随着时间的推移,猴子们少不了争斗,但那只会发生在互不认识(认识具有传递性)的两只猴子之间。争斗时

2017-08-01 18:54:32 477

原创 总结

首先,我们学习了一些字符串算法,如KMP,AC自动机,fail树,Trie图,可持久化Trie,后缀数组,Manacher算法,后缀自动机(没学懂)。 然后,这几天我的字符串有了长足的进步,但是在暑期15天的学习中还要有更多刷题来解决。在此我粘贴一些模板方便以后复习: Manacher算法void Manacher(){ int mx=0,id; for(int i=1;i<=m

2017-07-29 19:23:25 306

原创 poj 1743 后缀数组+二分答案

#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define N 20005#define inf 0x3f3f3f3fusing namespace std;int n,m,p,w,i,a[N],tax[N],rank[N],tp[N],SA[N],height[N],k,j,num[N];

2017-07-29 11:05:46 364

原创 bzoj2434 阿狸的打字机NOI2011ac自动机+fail树+树状数组+dfs序详解

题目戳这里:http://www.lydsy.com/JudgeOnline/problem.php?id=2434 这道题我们用ac自动机的fail指针思想来做。 首先它要求查询一个x串在y串出现了多少次 我们可以很快想到如果从y的一个节点走fail走到了x尾节点那么x在y中出现过一次。 那么我们逆向思考: 从y反着走fail可以走到有多少个节点在y这个串上,那么x就在y中出现了多少次。

2017-07-28 21:23:18 501

原创 后缀数组练习题bzoj 1031 后缀数组模板题目

题目戳这里http://www.lydsy.com/JudgeOnline/problem.php?id=1031 这是一道显然的后缀数组模板题目。 这道题我们发现只要求出这几个循环的字符串排列就好了,那么我们显然想到把它扩展2倍,然后求一边rank和SA数组,这样我们得到了需要的前一半rank数组,把它离散一下就是这个循环圈的排列顺序了。 AC代码:#include<cstdio>#inc

2017-07-27 20:04:00 843

原创 bzoj 2733 splay+启发式合并

一道水题,我们用splay+启发式合并(其实就是一个比较暴力的方法,把siz小的splay树里的点一个一个塞到大的splay树中)最开始我想了半天怎么存root,后来发现我傻了,直接splay到根就好了。这份代码里德root数组其实是并查集数组,不要在意细节- -。下面是我AC代码:#include<cstdio>#include<cstring>#include<algorithm>#inc

2017-07-21 15:39:47 298

原创 数据结构总结

这几天学了很多知识,但感觉像是囫囵吞枣,走马观花。还有许多只是没有消化。首先是堆,这几天许了可并堆,只大略掌握了左偏堆的写法。 左偏堆比普通的堆多了一个dis键值,它要满足节点dis=右节点键值+1,左儿子节点dis >= 右儿子节点dis。然后它几个重要的操作有merge(合并),,,,,好像只有merge,还有就是insert和del吧但这些都是在merge的基础上。这是bzoj1455的代码

2017-07-19 21:42:50 253

原创 bzoj 3223 文艺平衡树 Splay详细解析

本文不会过于深入介绍splay的证明,感性认知- -。 对于树我们知道它有两个旋转,对于一个节点,如果它是左儿子,那么它只能右旋,如果它是右儿子,它只能左旋,在splay的时候,我们的目的是把一个节点x转到一个根上,我们考虑两种情况, 1在三点一线的时候(3个点没有弯曲)那么先旋转x的父亲,在旋转x,除此之外都直接旋转x就好了,这样是为了让树更平衡。(画个图感性认知一下0 0)splay大概流程

2017-07-14 20:51:30 996

原创 近几天的总结

这几天学习了图论,稍微有点感触。 首先在知识层面已经学得差不多了,除了2sat和难度深一点的差分约束可能还有点玄乎,在之后几天的数据结构学习中,一定要下功夫钻研!!!。 有几个板块必须钻研下去,一个就是线段树包括乱七八糟的树套树,其次就是平衡树splay这些玩意,还有就是稍微学习一下LCT,替罪羊树,和虚树,不用钻研太深,但线段树一定是重中之重,并且要加深对树状数组的理解与应用。数据结构要学好,

2017-07-13 21:00:19 249

原创 hdu 5739 点双连通分量+乘法逆元超详细讲解

题目戳这里http://acm.hdu.edu.cn/showproblem.php?pid=5739 题意大致如下:题目大概说给一张无向点带有权无向图。定义连通图的权值为图中各点权的乘积,图的权值为其包含的各连通图的权值之和,设zi 为删掉i点后图的权值,求S=(1*z1 + 2*z2 + 3*z3 + …….. + n*zn); 这道题简直毒性,感觉打了一道大模拟,这道题的细节巨多,要十分注

2017-07-13 18:20:24 439

原创 bzoj 2730 点连通求割点

题目戳这里http://www.lydsy.com/JudgeOnline/problem.php?id=2730 题目大意,给一个无向图,在图中建设出口,任意删掉一个点,使得任意其他点,能到达一个出口,问至少要设多少个,且设的方案数有多少。 显然,我们需要求割点,对于任意一个点连通分量中,如果它包含1个割点,那么我们必须在分量中建设一个出口,且它不在割点,因为如果把割点删了,分量中的点就不能到

2017-07-12 20:25:52 461

原创 bzoj1123 求割点+乘法原理

题目戳这里:http://www.lydsy.com/JudgeOnline/problem.php?id=1123 1123: [POI2008]BLO Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通。 Input 输入n<=100000 m<=500000及m

2017-07-12 14:47:47 385

原创 图论知识总结第二弹之求桥

在第一弹中我们知道了如何求割点。 第一弹戳这里http://blog.csdn.net/Kamisama123/article/details/75007415 那么桥只是割点的特殊情况。因为一个性质是割点连出去的边必有一条是桥。对于一个点v它的low[v] > dfn[u]就可以保证只要断开边(u,v)这条边就能使原图不连通,在这里不能像割点有个等号的原因是,如果low[v]=dfn[u]就意

2017-07-12 12:08:17 998

原创 图论知识总结第一弹之求割点

在无向图中,如果去掉一个点和它所连的边后,图的连通分量增加了,那么我们把这个点叫做割点。 割点有这几个性质: 一个割点属于多个点连通分量。 重要的是这两个:把图强行看成一棵树。 如果u为割点,当且仅当满足下面的1/2 1、如果u为树根,那么u必须有多于1棵子树 2、如果u不为树根,那么(u,v)为树枝边,当Low[v]>=DFN[u]时。也就是v不能连回u的祖先。 所以我们根据这两个性

2017-07-12 11:23:44 820

原创 UVA 11478 差分约束+二分+判断负环

题目戳这里:https://vjudge.net/problem/UVA-11478 题目大意:给定一个权值,边有权值,每次可以选择一个点v和一个整数d,把所有以v为终点的边的权值减少d,以v为起点的边的权值加d,最后让所有边权的最小值非负且最大,如果这个值大于10000输出Infinite,如果非正输出No Solution。 对于每个点有我们把它的总操作权值设为sum,那么对于一条边(a,b

2017-07-10 17:57:13 248

原创 poj 1201 差分约束系统大水题

题目大意如此: 现在有一个序列,我们用n个形如,ai,bi,ci的式子去描述它,表示序列中必须至少有大于等于ai并且小于等于bi的整数有ci个。要求输出序列长度最小为多少。 n的范围为50000,0 < a < b < 50000。 这个题我们一看就知道是差分约束(雾)。 我们令s[i]表示0到i的整数有多少个。 所以我们可以清楚地写出下列式子: s[b]-s[a-1]>=c s[i]

2017-07-10 15:37:56 287

原创 网络流题目

网络流题单最大流 POJ 1273 Drainage Ditches POJ 1274 The Perfect Stall (二分图匹配) POJ 1698 Alice’s Chance POJ 1459 Power Network POJ 2112 Optimal Milking (二分) POJ 2455 Secret Milking Machine (二分) POJ 3189 S

2017-07-07 19:21:12 480

原创 poj2391 二分+floyed+网络流Dinic(附数据网址)

《POJ 2391 Ombrophobic Bovines》 【题目大意】 给定一个无向图,点i处有Ai头牛,点i处的牛棚能容纳Bi头牛,求一个最短时间T使得在T时间内所有的牛都能进到某一牛棚里去。(1 <= N <= 200, 1 <= M <= 1500, 0 <= Ai <= 1000, 0 <= Bi <= 1000, 1 <= Dij <= 1,000,000,000) 题目戳这里:

2017-07-06 21:49:20 313

原创 bzoj1179 tarjan缩点+spfa

题目戳这里:http://www.lydsy.com/JudgeOnline/problem.php?id=1179这道题是一道大水题,直接tarjan缩点合并信息后,跑一边最大的spfa就可以A了。 详细代码:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<queue>#def

2017-07-06 12:01:09 322

原创 bzoj2654 二分+最小生成树

题目戳这里:http://www.lydsy.com/JudgeOnline/problem.php?id=2654 我们知道对于一个最小生成树而言,它的白边权值越大,那么生成树中的白边个数越少,反之亦然。 所以我们每次二分一个值,给白边加上它,在做最小生成树判断是否大于所需要的,然后就可以二分来搞了。#include<cstdio>#include<algorithm>#include<c

2017-07-05 08:11:25 335

原创 动态规划总结

是时候总结一波动态规划了。 对于一般的dp题来说,一般都比较能想出是dp的方向。 但第一步并不好想。 对于我而言,dp较难的是设计状态和转移方程。 总结了一下: 动态转移方程很多都是考虑两种情况,是或者否。 例如:背包就考虑取或者不取。树上染色就考虑染或者不染,而比如NOIP2015子串就考虑那一位取或者不取,当然情况可能会分的更复杂。 一个好的转移方程很大程度上取决于状态设计的巧妙与

2017-07-01 21:03:29 262

转载 poj 1149网络流建模(转载自Edelweiss代码自己编的有点丑陋0 0)

转载自Edelweiss. 最大流 《POJ 1149 PIGS 》 【题目大意】 有 M 个猪圈,每个猪圈里初始时有若干头猪。一开始所有猪圈都是关闭的。依 次来了 N 个顾客,每个顾客分别会打开指定的几个猪圈,从中买若干头猪。每 个顾客分别都有他能够买的数量的上限。每个顾客走后,他打开的那些猪圈中的 猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。问总共 最多能卖出

2017-07-01 11:33:07 280

原创 bzoj 1293单调队列(vector实现)

1293: [SCOI2009]生日礼物Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2365 Solved: 1281 [Submit][Status][Discuss] Description小西有一条很长的彩带,彩带上挂着各式各样的彩珠。已知彩珠有N个,分为K种。简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置)。某

2017-07-01 08:47:23 295

原创 bzoj 1051简单tarjan

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1051 简单缩点后,判断出度为0的一个强连通分量,答案加上分量里点的个数就可。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;struct Edge{

2017-06-10 16:59:27 450

空空如也

空空如也

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

TA关注的人

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