自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 收藏
  • 关注

原创 [HNOI2005]狡猾的商人 带权并查集

给定m个区间和,问是否有矛盾复习一下,带权并查集保存着这个元素与祖先的关系在合并的过程中就像向量合并一样,可以画出x->fa[x],y->fa[y],x->y这样的图方便理解这篇文章解释得很清楚NOIAu//#include#include#include#include#include#include#include#include#include#incl

2017-11-08 20:58:40 189

原创 [HAOI2006]受欢迎的牛 scc分解(下标从1)

如果有x满足答案,x所在的scc也满足答案合法scc个数不会超过1,因为这样的话2个scc是传递的,应该可以合并才对这个板子做法是按照拓扑序排列缩点后的图的,所以可能成为答案的scc一定是最后那个//#include#include#include#include#include#include#include#include#include#include#inc

2017-11-08 17:04:47 276

原创 BZOJ3039 最大01子矩阵 单调栈

//#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define ll long long#define ull unsigned long long#define pb push_back#defi

2017-11-06 20:19:00 669

原创 [HNOI2008]水平可见直线 半平面交

求向直线们的俯视视角中可见的直线,以为是选最大最小斜率然后往中间放。。其实就是半平面交//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #inc

2017-10-12 19:53:10 222

原创 Removed Interval HDU - 5489 类LIS/dp

问一个n元序列任删掉一段m长的子段后的LIS长度n1e5,考虑枚举剩下的右端点参与答案贡献,我们需要右端点开始的LIS,以及删除段左边的,刚好比右端点小的点往前跑的LIS前者可以去个负倒过来跑一下,后者双针边跑边更新就行//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include

2017-10-10 23:47:46 177

原创 Find a path HDU - 5492 DP

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-10-10 16:45:44 205

原创 The Next HDU - 5491 转二进制模板

存个板子~ll tmp=d; int num_digit=0,cnt1=0,bri[35]; while(tmp){ if(tmp%2){ bri[num_digit++]=1; cnt1++; }else bri[num_digit++]=0; tmp/=2; }

2017-10-10 02:12:27 169

原创 Meeting HDU - 5521 最短路/虚拟点建图

给许多个组,每个组内点可以花相同时间互相抵达,可以通过加虚拟点,入边t,出边0来完成建图其他就是比较恶心的输出以及一个微妙的特判了,具体可以看代码最后的部分,debug良久猜了一个n=2的hack,加上这个就pe了,难以描述//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #inclu

2017-10-10 01:33:51 284

转载 卢卡斯定理(单独求大组合数小模数)

见这里orz

2017-10-08 21:33:02 638

原创 SPOJ - HIGH 生成树计数/矩阵树定理/无取模行列式

矩阵树定理大概是说一张图的基尔霍夫矩阵由度数矩阵减去邻接矩阵得到,使用这张图的边的生成树个数就等于基尔霍夫矩阵的det存个求行列式的模板吧//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #includ

2017-10-05 15:32:49 348 5

原创 [BeiJing2006]狼抓兔子 平面图最小割

挺有意思的结论,对偶图中的一个环对应原图中一种割,把边流量转为距离跑最短路就是最小割了//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #inc

2017-10-03 01:33:50 190

原创 BZOJ2118: 墨墨的等式 思维建图

问a1x1+a2x2+a3x3+……+anxn∈[Bmin,Bmax]中的非负整数解有多少组由于是非负所以不能简单求gcd,可以考虑任取其中某一项ax,以它的模域0-ax-1建图,单向通过a数组转移,这样跑出从模0到模任意数的最短路最短是为了保证在BminBmax里能塞进最多的ax显然ax取最小可以让复杂度最好,实测取max是min耗时2倍正确性就是如果m可以取到,那么k*ax

2017-10-01 15:08:00 285

原创 Fast Matrix Calculation HDU - 4965 优化矩阵乘法

(AB)(AB)(AB)=A(BA)(BA)B用到线性代数的知识还是蛮有亲切感的。。毕竟上了大学就感觉这门课学到了东西。。//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #inclu

2017-09-29 01:19:44 228

原创 233 Matrix HDU - 5015 矩阵递推

f[n][m]=f[n-1][m]+f[n][m-1]的形式,可以通过下三角矩阵的线性组合体现出来//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include

2017-09-28 23:13:07 135

原创 Bridge Across Islands POJ - 3608 凸多边形间最小距离/旋转卡壳

旋转的部分始终感觉有点别扭。。后来发现是因为叉积顺序为负。。所以让三角形面积逐渐变大实际上就是让三角形面积变小(绝对值意义上的),这样就是让高变小了。。至于为什么要选最下和最上。。应该是为了满足两条线始终可以生成所有多边形间的对踵点对吧?//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #

2017-09-27 23:43:08 276

原创 最大三角形 HDU - 2202 旋转卡壳模板

整理了一下旋转卡壳的模板,把接口统一了一下//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #inc

2017-09-27 16:01:14 189

原创 Surround the Trees HDU - 1392 凸包周长(Andrew)

这题小trick在于n=2是不能乘2的,也就是只算两点距离看你怎么理解凸包吧。。//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #incl

2017-09-27 00:11:37 213

原创 Grandpa's Estate POJ - 1228 Andrew凸包模板/稳定凸包

稳定的凸包满足:在加新点使凸包扩大时,新凸包无法包含原来的所有顶点换句话说,一个稳定的凸包的每一条边上都有至少三个顶点题目数据比较水,没有所有点共线的特判(非稳定),我也就懒得写了//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #inclu

2017-09-26 20:31:48 203

原创 Cows POJ - 3348 凸包面积/Andrew凸包模板

Andrew似乎是Graham的上位替代?反正15行的代码长度还是很有保存价值的//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #incl

2017-09-26 02:41:09 215

原创 叉积极角排序

atan2的精度损失有点蛋疼。。还是用叉积吧,不过要注意共射线的情况,像(1,1),(2,2)这种的bool ji_jiao(Point a,Point b){ Point origin; origin.x=origin.y=0; Point p1=(Point){a.x-origin.x,a.y-origin.y}; Point p2=(Point){b.x-origin.x,b

2017-09-26 01:16:37 454

原创 Wall POJ - 1113 凸包模板

要求包围所有n个点并且距所有点距离大于L的多边形周长这个多边形的周长可以通过凸包上的边做平移加上一个半径L的圆辅助转向得到所以就是求凸包周长加上圆周长主要是为了试试凸包的接口,实现用的是Graham,应该是单调栈吧?//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include

2017-09-24 02:28:23 154

原创 A Magic Lamp HDU - 3183 RMQ/贪心

题意就是数字串删m个字符让剩下的最小,剩下可含前导0贪心是删掉第一个s[i]满足s[i]>s[i+1]用rmq的话可以这样想,剩下数字串的最高位一定是s[1]~s[m+1]中的最小,设为s[x]次高位就是s[x+1]~s[m+2]中的最小……递推一下就好//#include#include#include#include#include#include#include

2017-09-23 23:24:03 201

原创 348B - Apple Tree 树形DP(好题

赛中没调出来。。但很早就想出lcm的正解还是挺开心的。。1/22的提交,调了2小时,先是遇到各种爆long long的问题,最后的问题是邻接表处理子结点没完全处理好#include#include#include#include#include#include#include#include#include#include#includeusing namespace

2017-09-21 23:52:16 250

原创 Hdu 6212 Zuma 区间DP

01两色的祖玛最优解,思路参考这里消除区间[i,j]的球有三种方法:1:消除[i,k]和[k+1][j]2:消除[i+1,j-1]后两侧碰撞3:三个离散的1块接触相消,要注意如果不是3个1的话先左或右会出现2的碰撞#include#include#include#include#include#include#include#include#include#i

2017-09-21 19:27:31 455

翻译 343E - Pumping Stations 最小割树

题意给一张流量网,问n-1天每天选不同的点,往任意未选过的点走管网输送流量使得能获得的流量和最大输出流量和和输送序列首先Gomory-Hu的定义和代码参考自这里大体上就是从网络图上生成一棵树,树的性质满足两点路径最小边权等于两点在网络图上的最大流有了这样一棵树就可以每次贪心选最小的一条边,保证现在边的两侧走完再走这条边因为这样这条边就只走了一次,最小化了总流量的限制,然后两

2017-09-21 01:13:13 300

原创 Codeforces 346B - Lucky Common Subsequence kmpDP

最长公共子序列加强版,要求最长子序列不包含病毒串在原本的dp[i][j]上新增一维k,表示A串前i个和B串前j个匹配到病毒串第k个字符的最大值扩展一下多个病毒串的话就用AC自动机把,K换成自动机状态A[i]=B[j]时,dp[i+1][j+1][k]=dp[i][j][f[k]]+1其实这种更新方式挺蛋疼的,从[i-1][j-1]更新过来更符合转移方程定义一些#include

2017-09-20 23:16:45 352

原创 Smallest Minimum Cut HDU - 6214 最少边的最小割

结论题,加边的时候每个边容量扩大为cap*(Edge+1)+1,跑一边最大流%(Edge+1)就是最少边数了证明一下就是一个容量为8的边和两个容量为4的边,扩大后只有堵住原先8才是最小的新最大流:maxflow*(Edge+1)+最少割边数#includeusing namespace std;#define ll long longconst int maxn=2e5+7;c

2017-09-20 16:07:32 182

原创 Codeforces 861D - Polycarp's phone book 字典树/hash

输入7e4个字符串,要求每个串提取一个子串来唯一表示4s题可以hash暴力水过,大体思路就是把所有子串map自己的母串,过程中如果这个子串已有hash值就标-1然后枚举map元素,维护最小化一下就行了唯一要注意的就是十进制哈希方式区分不了00和0另一种做法是字典树存下所有子串,枚举母串,枚举子串,字典树删掉子串,树中查子串个数是不是0,是的话维护一下最小就行了复杂度胜在字典

2017-09-20 15:25:37 303

原创 数组字典树模板

拿之前题解当模板的通用性太差了。。还是存个母版作为改的基础比较好暂时懒得学内存池,就都用数组版本吧全局要把trie[0].init()一次struct NODE{ int nxt[10]; int val; void init(){ val=0;memset(nxt,-1,sizeof nxt); }}trie[maxn];int node_cnt=0;void insert(...

2017-09-20 14:22:01 270

原创 Codeforces 343D - Water Tree 带子树树剖

div1里看到树剖就像看见亲爹(#include//#pragma comment(linker, "/STACK:1024000000,1024000000") #include#include#include#include#include#include#include#include#include#includeusing namespace std;#de

2017-09-19 20:17:13 367

原创 Query on a string 线段树

动态维护s1的所有区间内s2的个数开始的想法是线段树区间保存有多少个完整的s2串,当成区间合并做,暂时没调出来bug:#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define ll long l

2017-09-18 23:06:03 347

原创 Ducci Sequence UVA - 1594 多元组表示方法

习惯用结构体包一个数组,要存进set的话

2017-09-16 11:15:00 249

原创 The SetStack Computer UVA - 12096 set的合并操作相关

大小为n,m的set调用stl方法的复杂度是O(n+m),听说常数大(?)这题的集合中,元素还是集合,如果我们把每个集合都分配一个编号,那么就很容易用set表达出集合的包含关系这个实现需要集合查找编码与编码查找集合具体看代码吧#include#include#include#include#include#include#includeusing namespac

2017-09-15 19:49:46 220

转载 STL set_difference set_intersection set_union 操作

原文以下是STL algorithm的几个函数,使用的条件是有序容器,所以 vector在被sort了之后是可以使用的,set也是可以使用的。set_difference 这个是求得在第一个容器中有,第二个容器中没有的。set_intersection 求两个容器的交, set_union 求两个容器的并。set_symmetric_difference 求两个容器的差。 最后

2017-09-15 19:37:58 286

原创 uva10815 sstream文本读入模板

#include#include#include#include#include#include#includeusing namespace std;#define ll long longconst int maxn=1e4+7;const int inf=0x3f3f3f3f;#define FOR(n) for(int i=1;i<=n;i++)#define pb

2017-09-15 19:09:26 188

原创 Havel_Hakimi定理模板 可图化判断

度数序列转图的判断算法,利用贪心的思想#include#include#include#include#include#include#includeusing namespace std;#define ll long longconst int maxn=1e6+7;const int inf=0x3f3f3f3f;#define FOR(n) for(int i=1

2017-09-14 18:52:10 228

原创 [HNOI2009]梦幻布丁 启发式链表合并

因为启发式合并,所以我们强制用长链代表短链,遍历修改短链的所有节点由于我们只存储了位置之间是同色的关系形成的链条,这些链条无颜色特征,所以我们把长链分配给新颜色即一次swap操作,用fa[x]记录颜色x的真实链尾其他部分就是水水细节啦。。#include#include#include#include#include#include#includeusing na

2017-09-12 17:19:47 258

原创 BZOJ2456: mode 众数卡空间

这题做法就是把不同的数字相互消除剩下最后的就是众数了不太清楚这个空间怎么算的。。bits居然会被空间卡掉/*#include#include#include#include#include#include#include#include#include#include#include*/#includeusing namespace std;#defin

2017-09-09 23:31:47 286

原创 BZOJ4128: Matrix 矩阵BSGS

A^x=B(mod C)令x=im-jA^(im)=BA^j(mod C)这就不用求逆元了#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define ll long long#def

2017-09-09 23:00:36 205

原创 [SDOI2011]计算器 BSGS

前两个操作都看出来做法了,第三个要用到BSGS这个算法BSGS主要可以解 a^x=b(mod n)的 0暂时先拿kb和hzwer的板子当黑盒吧。。数论细节短时间内没有学的打算#include#include#include#include#include#include#include#include#include#include#includeusing na

2017-09-09 00:31:42 208

空空如也

空空如也

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

TA关注的人

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