自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mhlwsk的博客

·· / ·-- ·· ·-·· ·-·· / ·--· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·-- ·· -·

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

原创 [POJ]1811Prime Test 做题笔记

题目来源:http://poj.org/problem?id=1811 这题是miller_rabbin素数测试 + pollar_rho 所用的miller_rabbin貌似不止用了费马小定理,还用了一个不知名的定理,但如果像某些写法中,把miller_rabbin函数中的if (!Judge(a,n)) return 0;改成if (modular_exp(a,n-1,n)!=1) retu

2016-03-30 13:57:10 523

原创 [BZOJ1070]修车

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -· 题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1070 题目有一点要注意的就是等待时间包括之前的人修车的时间。 应该是比较容易看出费用流的,修车时间就是费用,而每个“修车的人

2016-03-30 10:46:48 454

原创 [POJ3264]Balanced Lineup 做题笔记

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -· 题目来源:http://poj.org/problem?id=3264 这题是基本的rmq问题,可以用st算法来解决。本来是不想把这题贴上来的,但代码里有个奇怪的鲠! 代码里的u,v一定要定义到全局,否则直接wa,但是u,v在main

2016-03-28 21:40:23 418

原创 [BZOJ1066]蜥蜴 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1066 做这题的时候被自己打的模板坑了,查了好久好久都没查出错。。。以后做题也不能过分信任某一段代码而不去查它的错了。 恩,这题的背景总让人想起科学的上网。。 这题的距离是指欧几里得距离,就是sqrt( (x1-x2)^2+(y1-y2)^2 ),我之前竟然没有见过,按照上下左右还有对角

2016-03-28 21:33:30 453

原创 [POJ3352]Road Construction 做题笔记

题目来源:http://poj.org/problem?id=3352 引用一下解题思路:http://blog.csdn.net/geniusluzh/article/details/6619575 这道题的意思是说,给你一个无向图,然后问你至少需要添加几条边,可以使整个图变成边双连通分量,也就是说任意两点至少有两条路可以互相连通。我们这样考虑这个问题,属于同一个边双连通分量的任意点是至少有

2016-03-28 10:34:06 610

原创 [HDU1269]迷宫城堡 做题笔记

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1269 这题是果的强联通,没有什么鲠 Tarjan(i)会求出与i联通的所有强联通分量。 弹栈时,不要弹空整个栈,而是弹出整棵搜索子树。#include <cstdio>#include <algorithm>#include <cstring>using namespace std;con

2016-03-28 10:22:57 591

原创 [BZOJ2938][POI2000]病毒 做题笔记

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -· 题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=2938 注意:这题是权限题,代码应该是对的,但未经测试 zky: 首先我们把所有串建一个AC自动机 方便

2016-03-28 10:17:54 487

原创 [BZOJ2754][SCOI2012]喵星球上的点名

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -· 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2754 根据黄学长的代码打的,对于每一个结点开一个map,非常暴力但是确实可以过#include <cstdio>#inclu

2016-03-22 23:13:06 519

原创 [HDU3966]Aragorn's Story 做题笔记

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -· 题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=39661、打懒标记的时候一定要注意懒标记是否可以累加,或者是否应该异或 2、多组测试数据。。。 3、线段树针对多组数据的初始化不要忘了#i

2016-03-22 23:08:28 385

原创 [BZOJ4034][HAOI2015]T2 做题笔记

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -· 题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=4034 [BZOJ4196][NOI2015]软件包管理器的既视感。。 这题是树链剖分+dfs序比较裸的题目,唯一需要注意的就

2016-03-22 23:01:34 338

原创 [BZOJ3531][Sdoi2014]旅行 做题笔记

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -· 题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=3531这是一道非常有价值的树剖。 对于每个飞天面条神教,建立一颗线段树进行维护,查询时,在对应的飞天面条神教对应的线段树进行查询

2016-03-22 22:55:23 389

原创 [BZOJ2243]染色 做题笔记

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -·题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=2243 线段树维护色块数量,区间最左端的颜色,区间最右端的颜色。合并区间时,如果左区间的最右端的颜色等于右区间的最左端的颜色,注意-

2016-03-22 22:41:50 504

原创 [POJ3237]Tree 做题笔记

题目来源:http://poj.org/problem?id=32371、取反再取反等于不取反,注意写法要用异或 2、注意更改的是边而不是点,所以下面标记处要特别注意 3、多组数据,线段树标记要初始化#include <cstdio>#include <cstring>#include <algorithm>#define lch now<<1#define rch now<<1|1u

2016-03-21 20:35:23 375

原创 [BZOJ1143][CTSC2008]祭祀river 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1143 一种理解(引用自http://www.cnblogs.com/BLADEVIL/p/3713043.html):   我们可以将一个点拆成两个点x,y,那么如果存在一条i->j的路径,我们就连接xi,yj,那么答案就是n-最大匹配数。   因为i->j所以对于i与j只能

2016-03-20 23:08:14 482

原创 [BZOJ1500]维修数列 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1500 自己做这题的一个非常有意思的收获,就是pushup和pushdown千万不能忽略“0”。一般我们会把不存在的孩子的id定为0,这里称之为void好了,按理来说这个void应该是个垃圾箱,扔进去的数据都会被吃掉。但是在pushdown时如果把不和谐的值扔了进去,pushup时是会从里面

2016-03-20 22:52:51 721

原创 [BZOJ1861]书架 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1861这题是splay维护区间。 既然是维护区间,那么存在splay里的值就不一定要满足二叉排序树的”左<中<右”的性质,此时要维护某个值在序列里的位置,可以维护一个pos数组,代表某个值在splay中的位置,把这个结点转到根,输出左子树的大小即为它在序列中前面书的数量。 insert好说

2016-03-20 22:44:06 604

原创 [BZOJ1588]营业额统计 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1588 这题可以说是简化版的BZOJ1208,注意取绝对值。 findval用来找小于等于x的最大的值的位置#include <cstdio>#include <cstring>#include <algorithm>#define lch ch[x][0]#define rch

2016-03-20 22:23:30 494

原创 [BZOJ][HNOI2004]宠物收养所

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1208 这是一份极其“优美”的代码,本来以为附带大常数,结果和hzwer的跑的一样快。。。虽然代码本身确实比较差#include <cstdio>#include <cstring>#include <algorithm>#define lch ch[x][0]#define rch

2016-03-16 15:53:32 476

原创 [BZOJ1503]郁闷的出纳员 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=15031、首先,维护一个全局变量del,表示全局加多少。插入时要减去del,查找时要加上del,仔细领会一下。 2、删除时,找到工资比最低限小的工资最高的工人,把他旋转到根,然后删除他和左子树! 3、这题的查找是第K大,而不是第K小,要注意第K大的写法。 4、坑!这题说如果一个工人的初始

2016-03-15 23:55:35 441

原创 [HDU2222]Keywords Search 做题笔记

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2222 这题是比较裸的AC自动机,很容易想出AC做法但却并不容易AC。。。 1、首先!这题有重复的单词!! 2、千万不要在for循环里用strlen!!这题匹配串长度1000000,如果每次循环都要strlen,那计算开销是相当大的。我不在里面打strlen时间343ms,如果在里面大strlen则

2016-03-14 19:38:26 298

原创 [BZOJ1030]文本生成器 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1030 f[i][j],i表示走到第几步,j表示走到树上的哪个结点,j不能是单词结点或沿fail指针能找到单词的点。 对每一个f[i-1][j],处理每一个它所能到达的状态f[i][x],x表示j继续匹配a-z所能到达的结点。 最后统计f[m][j]之和,即为答案。#include <c

2016-03-14 17:54:32 349

原创 [POJ2406]Power Strings 做题笔记

题目来源:http://poj.org/problem?id=2406 这题可以用后缀数组做,但是必须用dc3。 这份代码会T,做法应该没问题,权当练思路了。 思路有点类似错位找循环节。一个后缀对应一种错开的情况。枚举的就是错开多少位。如果对于错开的位数l,有n%l=0且错开的两个串lcp=n-l,则是一个答案。#include <cstdio>#include <cstring>#inc

2016-03-14 17:23:15 474

原创 [HDU]3518 Boring counting 做题笔记

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=3518 这题和POJ1743是差不多的类型。 把二分改为穷举长度l,分块(如果lcp>=l则分到一个块),一个块里若存在两个位置差>=l的则ans++ 很好奇这题的这句话是摆来吓唬人的?? For each test case output an integer ans,which repres

2016-03-14 17:12:25 373

原创 [UOJ35]后缀排序 做题笔记

题目链接:http://uoj.ac/problem/35 这也是个后缀数组的模板题。。。#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=100009;char s[N];int r[N],wa[N],wb[N],wd[N],wv[N];int sa[N],r

2016-03-14 17:03:27 410

原创 [POJ1743]Musical Theme 做题笔记

题目链接:http://poj.org/problem?id=1743 后缀数组+二分答案,可以看一下罗神的《后缀数组——处理字符串的有力工具》#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=20050;int n,num[N];int sa[N],rank[N

2016-03-11 11:37:43 245

原创 [POJ1386]Play on Words 做题笔记

题目链接:http://poj.org/problem?id=1386 每一个单词对应一条单向边,从首字母指向尾字母,问题转化为在图中是否存在欧拉回路/通路。 Hint:欧拉回路/欧拉通路要求基图联通,意思是不存在孤立的点,而不是整个图只有一个联通块。判断基图联通可以用并查集。#include <cstdio>#include <cstring>#include <algorithm>us

2016-03-11 11:34:04 783

原创 [POJ1300]Door Man 做题笔记

题目链接:http://poj.org/problem?id=1300 这题是比较裸的欧拉回路与欧拉通路的判定公式的应用,但这题最可怕的应该是它的读入。。。 Hint:欧拉回路/欧拉通路要求基图联通,意思是不存在孤立的点,而不是整个图只有一个联通块。#include <cstdio>#include <cstring>#include <algorithm>using namespace

2016-03-11 11:30:49 515

原创 [POJ3177]Redundant Paths 边双连通分量 做题笔记

题目来源:http://poj.org/problem?id=3177 解题思路:http://www.cnblogs.com/frog112111/p/3367039.html 分析:在同一个边双连通分量中,任意两点都有至少两条独立路可达,所以同一个边双连通分量里的所有点可以看做同一个点。 缩点后,新图是一棵树,树的边就是原无向图的桥。 现在问题转化为:在树中至少添加多少

2016-03-08 23:06:31 857

原创 [BZOJ1093][ZJOI2007]最大半连通子图 强联通+拓扑排序+dp 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1093Tarjan求scc,在缩点后的图跑拓排求最长链。在拓排树进行dp。拓排针对层级问题进行,先处理完了一个节点的前驱在处理该节点,除去了后效性,故可以在拓排树上dp。 注意SCC缩点后可能有重边需特判。#include <cstdio>#include <cstring>#inclu

2016-03-08 22:57:53 1393

原创 [BZOJ1797][Ahoi2009]Mincut 最小割 做题笔记

题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1797 这题考察判断网络流的可行割与必须割。 引用一下lydrainbowcat的结论 最小割的必须边 一定在最小割中的边、扩大容量后能增大最大流的边, ① 满流;② 残余网络中S能到入点、出点能到T。 从S开始DFS、T开始反向DFS,标记到达的点,然后枚举满流边即可。

2016-03-08 22:44:01 1050

原创 [BZOJ1051][HAOI2006]受欢迎的牛 做题笔记

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1051 可以想到一个朴素的暴力思路,那就是如果一头奶牛符合条件,那么它一定可以被所有其它奶牛结点访问到,所以可以用N^2的复杂度来枚举每一头牛所能到达的结点,同时记录每一个结点被访问了多少次(包括自己访问自己的一次)。最后枚举每一个结点,被访问的次数等于n的就符合条件。 可以用强联通缩点,

2016-03-07 19:23:48 456

原创 [BZOJ1823][JSOI2010]满汉全席 做题笔记

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1823我做的第一道2-SAT裸题。不得不说题目描述看起来比NOI2002银河英雄传说都可怕。。。#include <cstdio>#include <cstring>#include <algorithm>#include <stack>using namespace std;con

2016-03-07 18:38:17 720

原创 [BZOJ2730][HNOI2012]矿场搭建

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2730这题标准做法应该是tarjan求割点,但数据范围是在是有点水,暴力就好。(事实上在CodeVS上测tarjan做法反而比暴力慢。。。难道是初始化的问题?)Tarjan#include <cstdio>#include <cstring>#include <algorithm>#in

2016-03-07 12:28:36 350

原创 [POJ1637]Sightseeing tour 混合图欧拉回路 做题笔记

题目链接:http://poj.org/problem?id=1637 这题是混合图欧拉回路,可以用网络流来做。 自己还是太弱了,这里引用一下hzwer的思路 混合图欧拉回路 设点x的出度-入度为d[x] 对于无向图先任意定向,若任意x,d[x]非偶数则impossible d[x]/2即为连接每个点的边需要反向的数量 若d[x]/2>0 连S->T

2016-03-07 12:20:18 536

原创 [POJ1087]A Plug for UNIX 做题笔记

题目链接:http://poj.org/problem?id=1087 这种主要考基本代码实现能力的题。。。没什么好说的 代码写的比较乱,一开始想写个字符串hash,但题目的字符串范围好奇怪,后来干脆暴力,数据很水也过了。。但hash函数的名字没改。#include <iostream>#include <cstdio>#include <cstring>#include <algorit

2016-03-05 17:07:24 258

原创 [POJ3436]ACM Computer Factory 做题笔记

题目链接:http://poj.org/problem?id=3436 拆点网络流典型题,每个机器拆成两个点。 有点值得注意的地方:如果是int a[N][N] 这样的数组,a[i][j]是数组中的数据,而a[i]则还是a[i][0]的指针,与char数组不同的一点,int数组不能随便用&取地址,所以下文标记处不能用&in1[i]。#include <cstdio>#include <cstr

2016-03-05 14:48:01 309

原创 [POJ3422]Kaka's Matrix Travels 做题笔记

题目链接:http://poj.org/problem?id=3422费用流。 做这题的收获是inf边的另一个用处,棋盘的每个点拆开后,拆开的两个点之间连两条边,一条容量1费用为点权值的相反数(负权是因为跑spfa最大流时要用到),表示只能走一次并获得相应分数,另一条容量inf费用为0,表示可以走很多很多次但是没法获得分数。新建超级源S,S向[1,1]连一条容量为k权值为零的边,跑一遍费用流即可。

2016-03-04 18:19:58 277

原创 [POJ2135]Farm Tour 做题笔记

题目链接:http://poj.org/problem?id=2135 这是一类比较经典的费用流水题。 1、建图,每条边容量为1,费用为题目所述距离。 2、新建超级源S,S到1连一条容量为2费用为0的边。 3、跑一遍费用流。 事实上如果用的是一次找一条增广路的费用流,还有一个小优化,那就是网络流为2时直接输出cost退出即可。#include <iostream>#include <cs

2016-03-04 11:36:41 414

原创 [BZOJ1834]网络扩容 做题笔记

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1834 先跑一遍最大流,然后在原残量图的基础上建边。对原有的每条边,新建容量为inf,费用为题目描述的边。新建超级源S,S到1连一条容量为k费用为0的边,在新图上跑一遍费用流。#include <cstdio>#include <cstring>#include <algorithm>

2016-03-04 11:30:15 685

原创 [POJ2125]Destroying The Graph 做题笔记

题目链接:http://poj.org/problem?id=2125拆点形成近似二分图,最大流等于最小割。 关键是判断割边。这里的割边代表“割点”,即拆掉点的入度或点的出度,可以用一遍dfs实现。#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;const

2016-03-04 08:54:00 450

空空如也

空空如也

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

TA关注的人

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