题目大意:按顺序给出一些点。可以构成一个多边形,问多边形是否有核。
解题思路:
半平面交。模版题。
用的是ZZY的O(Nlogn)的算法。
算法大体思路是这样的:
step1. 将所有半平面按极角排序,对于极角相同的,选择性的保留一个。 O(nlogn)
step2. 使用一个双端队列(deque),加入最开始2个半平面。
step3. 每次考虑一个新的半平面:
a.whi...
分类:
其他好文 时间:
2014-08-28 14:55:09
阅读次数:
264
先发发牢骚:图论500题上说这题是最小生成树+DFS,网上搜题解也有人这么做。但是其实就是次小生成树。次小生成树完全当模版题。其中有一个小细节没注意,导致我几个小时一直在找错。有了模版要会用模版,然后慢慢融会贯通。我要走的路还长着啊。 讲讲次小生成树的思想吧。首先,在prim算法中做一些改变,...
分类:
其他好文 时间:
2014-08-27 00:13:56
阅读次数:
321
AC自动模版题,中文题目就不叙述题意了啊。
AC自动主要是构造出字典树之后找到fail指针的跳转,类似于KMP里面的next数组的跳转啊,注意这里是多模式跳转。意思就是这个串跳到下一个串的什么位置啊。
先帖一下,做多了再一起总结吧。
病毒侵袭
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
分类:
其他好文 时间:
2014-08-22 22:36:57
阅读次数:
248
hdu题目poj题目参考了罗穗骞的论文《后缀数组——处理字符串的有力工具》题意:求两个序列的最长公共子串思路:后缀数组经典题目之一(模版题)//后缀数组sa:将s的n个后缀从小到大排序后将 排序后的后缀的开头位置 顺次放入sa中,则sa[i]储存的是排第i大的后缀的开头位置。简单的记忆就是“排第几的...
分类:
其他好文 时间:
2014-08-18 23:24:13
阅读次数:
367
1001:Inversion
模版题,求逆序数对。有多少逆序数对,就可以剪掉多少。
1003:Least common multiple
对于每一个子集,lcm为2的a的最大值次方*3的b的最大值次方。
所以我们只需要求出以某个b为b的最大值的时候,a的最大值的分布情况即可。
我们先把b从小到大排序。
对于某一个b,我门只需要求出之前出现过的a比当前a小的数量为x;
那么就可知对于这...
分类:
其他好文 时间:
2014-08-06 14:57:51
阅读次数:
214
题目链接:点击打开链接
思路:
我们首先假设这个图都是全0的
用n个点代表行,m个点代表列
用源点向行连一个值x 表示每行1的个数,向列连一个y表示每列y个1
则若行i和列j之间流过一个流量就表示 (i,j) 点填了1
那么若原来图中(i,j)点为0 则花费就是1
若原图中(i,j)点是1,则花费是-1
如此枚举x跑个费用流就好了
==居然把我多年的白书费用流坑掉了。。。
zk...
分类:
其他好文 时间:
2014-08-01 23:15:42
阅读次数:
313
Polya定理是个很神奇的东西~
题目大意:
n个珠子串成一个圆,用三种颜色去涂色。问一共有多少种不同的涂色方法。
不同的涂色方法被定义为:如果这种涂色情况翻转,旋转不与其他情况相同就为不同。
解题思路:
Polya定理模版题。
对于顺时针长度为i的旋转,为pow(3,__gcd(n,i);
对于翻转,当为奇数时,有:n*pow(3.0,n/2+1);
当为...
分类:
其他好文 时间:
2014-07-26 02:31:26
阅读次数:
201
最小生成树模版题。
N个点,M条已经存在的边。
算出两两点之间的距离,然后Kruskal。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x7fffffff
#define eps 1e-6...
分类:
其他好文 时间:
2014-07-06 09:38:58
阅读次数:
171
最小生成树,也算是模版题。
依然Kruskal。N个点,M条边,排序,并查集。
没有什么坑点。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x7fffffff
#define eps 1e...
分类:
Web程序 时间:
2014-07-04 07:00:08
阅读次数:
327
题目#include//最长上升子序列 nlogn//入口参数:数组名+数组长度,类型不限,结构体类型可以通过重载运算符实现//数组下标从1号开始。int bsearch(int a[],int len,int num){ int left=1,right=len; while(left...
分类:
其他好文 时间:
2014-06-26 16:20:12
阅读次数:
236