自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JarjingX

love it 120%

  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

原创 代码染色!

#pragma comment(lib, "glaux.lib")#include #include #include #define N 20000float timespan = 0.005;float wind[3];struct { float life, fade, r, g, b, x, y, z, xv, yv, zv, xa, ya, za;} p[N + 2];

2017-12-15 16:33:16 1949

原创 代码染色!

// KMP 算法#include#include int n, m, pos, pi[102];char p[102], t[150002];char file[30] = "..\\output\\output_ .txt";int Compute_Prefix_Function( );int KMP_Match( );int main( ){ freopen( ".

2016-12-31 12:55:12 1104

原创 扩展KMP

2013-03-22 16:26:41 1386

原创 【算法】计算几何

刚写了一个计算几何的模板,这样可以减少很多的函数,实现起来也很清楚,以后自己就这样写好了……// 常用计算#define vector pointstruct point{ double x, y; point( double x = 0, double y = 0 ): x( x ), y( y ) { }};vector operator + ( vecto

2013-03-14 23:18:18 1318

原创 【数据结构】二叉堆与左偏树

// 二叉堆void up( int i ){ int dad = i >> 1, data = heap[i]; while( dad != 0 && heap[dad] > data ) { heap[i] = heap[dad]; i = dad; dad = i >> 1; } heap[i] =

2013-03-14 09:08:44 1203

原创 省选的日子好像不多了

正如标题所述,这几天来就一直感觉离省选的日子不多了,虽然说还有39天,但是跟高考比起来,真是,诶……这几天,还是很认真很认真,一直以来数据结构太弱,各种被神牛们怒※,但是自己出于对数据结构的恐惧一直没怎么摸,甚至连线段树都没怎么玩过,于是这几天就突击各种数据结构,每天写目标,每天再写总结,然后效率还是不错的,先玩了很久的线段树,包括一维二维的,然后又玩了玩树套树,函数式线段树,四分树什么的,然

2013-03-12 10:47:28 1359

原创 【数据结构】伸展树 Splay

// 平衡树 splay 模板void rotate( int i ){ int D = dad[i], G = dad[D], S = son[i][ !typ[i] ]; son[G][ typ[D] ] = i, dad[S] = D; son[D][ typ[i] ] = S, dad[D] = i; son[i][ !typ[i] ] = D, dad

2013-03-12 10:29:28 960

原创 【算法】KMP

// 字符串匹配 KMP 算法void kmp( char * mom, char * son ) // 字符串从1下标开始读,0位随便添一个,方便操作{ lenm = strlen( mom )-1; lens = strlen( son )-1; int k = 0; for( int i = 2; i <= lens; i++ ) {

2013-03-12 10:26:51 1077 1

原创 【算法】dinic

// 网络流 dinic 算法bool bfs( ){ memset( dis, -1, sizeof dis ); int i, j, clo = 0, open = 1; q[1] = n, dis[n] = 0; while( clo < open ) { i = q[++clo]; for( int k = h[i

2013-03-12 10:24:09 1038

原创 【数据结构】后缀数组

// 字符串处理 后缀数组void build_sa( char * s ) // 字符串从第一位开始读入,第0位任意填入一个字符便于操作{ int j, num, n = strlen( s )-1, m = 200, *x = a1, *y = a2; for( int i = 1; i <= m; i++ ) c[i] = 0; for( int i = 1; i

2013-03-12 10:22:03 1162

原创 c/c++ scanf printf 用法与优化

一、序言                C++的cin和cout实在是太慢了,所以一直用的都是scanf和printf进行输入和输出,但是,最近又发现scanf和printf在数据量大的时候还是太慢了,于是只能手写输入输出优化。但scanf和printf的输入输出功能非常强大,所以还是全面学习了一下,这里写点总结。 二、格式化说明符   符号 意

2013-02-22 11:24:46 5416 1

原创 【代码系列】POJ 1273( 单纯形解最大流 )

这是写的很蠢但是很详细的单纯形,为什么蠢呢?因为我竟然给每个基变量开了空间!!写完之后,又看了盾哥的代码!!然后……// 题目来源:POJ 1273// 题目大意:求源汇点最大流// 解决方法:建立线性规划模型,用单纯形求解即可// 特别注意:设原图有n个点,m条边,则:最大流量约束m,流量平衡约束2*n-4,总约束m+2*n-4;非基变量m,基变量m+2*n-4,总变量2*m+2*

2013-02-02 20:32:23 2678 1

原创 【研究总结】2-sat问题

序言          最近花了一点心思研究2-sat模型,看了很多论文博客等等,也在POJ上做了一点题。其实这个东西也还挺好玩的,当然,前提是每道题你都有认真分析,认真想清楚模型的意义,搞明白为什么可以这样,而不是简单的知道怎样做,就套上一个模板了事,那样,是不是也太糟蹋这门科学了。  关于2-sat,基本上所有人都会推荐两个资料:        伍昱 由对称性解2-sat问

2013-01-20 11:23:12 28005 18

原创 【代码】POJ 3683

// 题目来源:POJ 3683// 题目大意:有n对新人要举行仪式,每对都有两个时间段可以选择,问是否可以所有新人的仪式时间不重叠// 解决方法:2-sat的一眼题,把仪式可以选择的两个时间段看成两个点,仪式时间重叠的即为矛盾关系// 特别注意:输出要按输入顺序!不要按照自己处理的顺序来。#include #define o 10000 #define _ 1000000v

2013-01-18 21:04:26 2962

原创 【代码】POJ 3678

// 题目来源:POJ 3678// 题目大意:有很多点可取值0或1,它们之间有很多边为0或1,规定每条边由端点(xor,and,or)得到,求是否可行// 解决方法:每个点的取值只有两种情况,非常符合2-sat,用强连通分量判断即可// 特别注意:可通过在拆成的点对中搭边来保证最后的结果落在某个点上#include #include #define o 1002#define _

2013-01-18 21:03:40 2018

原创 【代码】POJ 3648

// 题目来源:POJ 3648// 题目大意:有n对夫妻参加婚礼,现安排座位,已经某些人不能同时坐在新娘的对面,且夫妻不可同侧,求可行方案// 解决方法:仍然2-sat建图解决// 特别注意:新娘到新郎要连边,因为选出的必须是新郎#include #include #define o 100000#define _ 1000000using namespace std;vo

2013-01-18 21:02:57 1975

原创 【代码】POJ 3207

// 题目来源:POJ 3207// 题目大意:圆上顺序排列n个点,现要在一些点间连边,规定边只能在圆内或圆外,求有没有可能不相交// 解决方法:连边只能在里面或者外面,这就是2-sat问题,直接缩点判断即可 #include #define o 5002void link( int, int );void tarjan( int );int next[ o ], h[ o ],

2013-01-18 21:01:42 4138 1

原创 【代码】POJ 2749

// 题目来源:POJ 2749// 题目大意:有两点坐标已知,现要在坐标系上各点与两点之一建立路径,已知某些点不能建立在同一个点上,有些点必须建立在同一个点上,求最小曼哈顿距离// 解决方法:枚举最大值,然后用2-sat判断可行性#include #include #include #define o 10000#define _ 1000000#define oo 10000

2013-01-18 21:00:31 1954

原创 【代码】POJ 2723

// 题目来源:POJ 2723// 题目大意:m道门,每道门两把锁,有n对钥匙,对应2*n把锁,已知一对钥匙内取出一把另一把就会消失,求按顺序最多可开多少门// 解决方法:依然2-sat啦,只不过要带上二分答案#include #include #define o 10002#define _ 10002void link( int, int );bool check( in

2013-01-18 20:59:30 1618

原创 【研究总结】连通性问题

序言:  连通性问题,这可真是tarjan的天下啊,不过这篇文章并没有打算扯到tarjan的起源模型强连通分量,主要还是说说自己对其它连通性问题的思考,所以,如果你还不会tarjan算法的话,嗯,点这里:byvoid的tarjan算法讲解  膜拜一下神牛。  当然了,关于连通性问题这里还有:byvoid的连通性问题讲解  再次膜拜。  这篇文章是自己将三篇研究日记汇总而成的,所

2013-01-17 16:37:31 2867 1

原创 【代码】POJ 3352

// 题目来源:POJ 3352 ( CCC 2007 )// 题目大意:给定无向图G,为了满足删去任意一条边后原图任然连通,则原图至少需增加多少条边// 解决方法:求出原图的桥数量,记作sum,则(sum+1)/2即为答案#include void link( int, int );void tarjan( int, int );void dfs( int );int next

2013-01-17 16:00:52 1075

原创 【代码】POJ 2942

// 题目来源:POJ 2942 ( Central Europe 2005 )// 题目模型:给定一个无向图G,求图中哪些点不能够在任何奇圈之内(奇圈即点数为奇数的圈)// 解题方法:对图求块,然后在各个块内二分染色判断// 特别注意:求块的时候在栈中要压边不能压点#include #include using namespace std;bool map[1002][1002

2013-01-17 15:58:15 1153

原创 【代码】POJ 2762

// 题目来源:POJ 2762// 题目大意:给定一个有向图,问该图是否弱连通(若图中任意两点之间可以到达,即可以i到j或者j到i,该图即为弱连通)// 解决方法:强连通分量缩点,当且仅当该图的拓扑序列唯一的时候才成立,那么只需记录当前入度为0的个数,当多于1个时不成立#include #include #define _ 60002#define o 10002using na

2013-01-17 15:53:16 1418

原创 【题目系列】POJ 经典动规10题

【1037】A decorative fence【1050】To the Max【1141】Brackets Sequence【1159】Palindrome【1160】Post Office【1163】The Triangle【1458】Common Subsequence【1579】Function Run Fun【1887】Testing the CATCHE

2012-11-18 00:29:33 1835 2

原创 【白话系列】最近公共祖先

【序言】        说到最近公共祖先,应该是树论中一个比较重要的话题吧。一般来说,在遇到求最近公共祖先的时候,会有三种常见的做法:对于简单的模拟题——直接模拟就好了;对于大题目中的求最近公共祖先的小桥段——用tarjan来求,因为好打不容易错;对于特意考察最近公共祖先,并且数据范围比较大的时候——用倍增算法,省空间还是硬道理。至于还有的通过变形将最近公共祖先问题化为区域最小值问题来做,性价

2012-11-14 16:07:39 5505 7

原创 【白话系列】二分图匹配

【序言】        还记得自己当初学二分图匹配的时候……(哇,感觉时间过得好快好快啊)我翻看了很多的资料,不知道是不是因为我笨这个非常特殊的原因,我硬是看不下满版的公式定理概念证明代码符号等等无节操的东西,太深有感触了,就一个这么容易的东西讲那么复杂干嘛,于是我还是自己写一个作纪念好了,这里没有“X部图”“Y部图”“增广路”!这里只有那只可爱无下限的小白兔!!【警告】

2012-11-14 00:40:39 2439 3

原创 【白话系列】倍增算法

【序言】        我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最形象的方式来纪念它。【一】        从前,有一只可爱得不得了的小白兔,它想从

2012-11-13 22:06:04 33351 57

原创 【白话系列】未完待续

图论当中:    1、Dijistra+Heap 求最短路    2、Floyd 求最短路    3、SPFA 求最短路    4、Prim 求最小生成树    5、Kruskal 求最小生成树    6、Tarjan 求强连通分量    7、Tarjan 求双连通分量    8、Tarjan 求桥    9、Tarjan 求割点    10、Kosaraj

2012-11-13 16:55:16 1698

dev c++ 官方原版(可选择中文)

dev c++为当前windows下非常好的c++编程工具,功能十分强大,该版本为官方原版,可自行选择中文。

2013-01-18

GUIDE 1.0.2

北航编写的编程软件,界面简洁,拥有众多个性化功能,是NOI必备神器。

2013-01-17

清澄测评器

清澄测评器是当前非常好的测评软件,支持众多一键功能,是oier必备神器。

2013-01-17

空空如也

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

TA关注的人

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