Pentium.Labs

System全家桶:https://zhuanlan.zhihu.com/c_1238468913098731520

导航

10 2014 档案

辗转相除法、扩展欧几里得
摘要:辗转相除法:求gcd(a,b)扩展欧几里得:解关于x和y的方程:a*x+b*y=gcd(a,b) 推广:对于关于x和y的方程a*x+b*y=n 有整数解的条件是n%gcd(a,b)==0 所以这种方程可以这样解: 先解方程a*x'+b*y'=gcd(a,... 阅读全文

posted @ 2014-10-31 20:35 Pentium.Labs 阅读(372) 评论(0) 推荐(0)

poj 3233 矩阵快速幂+YY
摘要:题意:给你矩阵A,求S=A+A^1+A^2+...+A^nsol:直接把每一项解出来显然是不行的,也没必要。我们可以YY一个矩阵:其中1表示单位矩阵然后容易得到:可以看出这个分块矩阵的左下角那块就可以得到要求的解S我们取这一块,再减去一个单位矩阵1即可。 1 #include "iostream" ... 阅读全文

posted @ 2014-10-30 21:02 Pentium.Labs 阅读(579) 评论(0) 推荐(0)

poj 3734 矩阵快速幂+YY
摘要:题目原意:N个方块排成一列,每个方块可涂成红、蓝、绿、黄。问红方块和绿方块都是偶数的方案的个数。sol:找规律列递推式+矩阵快速幂设已经染完了i个方块将要染第i+1个方块。a[i]=1-i方块中,红、绿方块数量都是偶数的方案数b[i]=1-i方块中,红、绿方块数量一个是偶数一个是奇数的方案数(红ev... 阅读全文

posted @ 2014-10-30 17:09 Pentium.Labs 阅读(316) 评论(0) 推荐(0)

hdu 1575 矩阵快速幂模板
摘要:1 #include "iostream" 2 #include "vector" 3 #include "cstring" 4 using namespace std; 5 6 typedef unsigned long int ULL; 7 typedef vector vec; 8 typ... 阅读全文

posted @ 2014-10-30 12:48 Pentium.Labs 阅读(188) 评论(0) 推荐(0)

poj 3070 矩阵快速幂模板
摘要:题意:求fibonacci数列第n项 1 #include "iostream" 2 #include "vector" 3 #include "cstring" 4 using namespace std; 5 6 typedef unsigned long int ULL; 7 typedef... 阅读全文

posted @ 2014-10-30 12:33 Pentium.Labs 阅读(166) 评论(0) 推荐(0)

poj3207 2-SAT入门
摘要:一开始题意没读懂 = =题意:比如说对于表盘上a到b、c到d都要连边,这两个边不能交叉。这两个边要么都在圆内要么都在圆外,而且可以是曲线= =比如这种情况:(Reference:http://blog.csdn.net/l04205613/article/details/6668318)(左边情况看... 阅读全文

posted @ 2014-10-29 22:02 Pentium.Labs 阅读(249) 评论(0) 推荐(0)

poj 3683 2-SAT入门
摘要:原题模型:两者(A,B)不能同时取 1 #include "cstdio" 2 #include "vector" 3 #include "stack" 4 #include "cstring" 5 using namespace std; 6 #define maxn 2010 7 ... 阅读全文

posted @ 2014-10-29 15:43 Pentium.Labs 阅读(211) 评论(0) 推荐(0)

2-SAT开坑
摘要:Reference:http://blog.csdn.net/jarjingx/article/details/8521690其中伍昱的ppt不错。2SAT最裸的模型:一国有n个党派,每个党派在议会中都有2个代表,现要组建和平委员会,要从每个党派在议会的代表中选出1人,一共n人组成和平委员会。已知有... 阅读全文

posted @ 2014-10-28 20:57 Pentium.Labs 阅读(184) 评论(0) 推荐(0)

poj 1442 名次树
摘要:这回要求的是第k小的元素,参考了ljl大神的模板,orz 1 //insert 插入 2 //remove 删除 3 //_find 查找 4 //kth 返回root为根的树中第k小的元素 5 //treap插入、删除、查询时间复杂度均为O(logn) 6 #include 7 #... 阅读全文

posted @ 2014-10-28 18:13 Pentium.Labs 阅读(259) 评论(0) 推荐(0)

hdu 3068 最长回文子串 TLE
摘要:后缀数组+RMQ是O(nlogn)的,会TLE.....标准解法好像是马拉车,O(n).... 1 #include "algorithm" 2 #include "cstdio" 3 #include "cstring" 4 using namespace std; 5 #define ... 阅读全文

posted @ 2014-10-25 18:04 Pentium.Labs 阅读(345) 评论(0) 推荐(0)

poj 3261 二分答案+后缀数组 求至少出现k次的最长重复子序列
摘要:1 #include "stdio.h" 2 #define maxn 20010 3 4 int wa[maxn],wb[maxn],wv[maxn],ws[maxn]; 5 int rank[maxn],height[maxn]; 6 int r[maxn],sa[maxn],ans[max... 阅读全文

posted @ 2014-10-23 11:01 Pentium.Labs 阅读(315) 评论(0) 推荐(0)

poj 1743 二分答案+后缀数组 求不重叠的最长重复子串
摘要:题意:给出一串序列,求最长的theme长度(theme:完全重叠的子序列,如1 2 3和1 2 3 or 子序列中每个元素对应的差相等,如1 2 3和7 8 9)要是没有差相等这个条件那就好办多了,直接裸题。一开始想了个2B方法,后来发现真心2B啊蛤蛤蛤 1 for i=1 to 88 do 2 {... 阅读全文

posted @ 2014-10-22 16:42 Pentium.Labs 阅读(340) 评论(0) 推荐(0)

后缀数组笔记
摘要:Orz看到一个很经典的整理:http://blog.csdn.net/v_july_v/article/details/6897097---------------------在字符串匹配问题中经常出现这两个概念:文本(text):原文模板(pattern):关键词(相当于一个子串)任务:在text... 阅读全文

posted @ 2014-10-21 22:26 Pentium.Labs 阅读(358) 评论(0) 推荐(0)

poj2774 后缀数组 求最长公共子串
摘要:Reference:IOI2009论文http://www.cnblogs.com/ziyi--caolu/p/3192731.html 1 #include "stdio.h" 2 #include "string.h" 3 #define maxn 200010 4 5 int wa[maxn... 阅读全文

posted @ 2014-10-21 12:29 Pentium.Labs 阅读(305) 评论(0) 推荐(0)

【转】后缀数组模板
摘要:IOI2009论文reference:http://www.cnblogs.com/staginner/archive/2012/02/02/2335600.html先上个不带注释直接用的版本: 1 //在BT5下attack的时候把数值调大点(超过2000)就行了,具体可以参见网上破解无线网密码的... 阅读全文

posted @ 2014-10-21 12:18 Pentium.Labs 阅读(366) 评论(0) 推荐(0)

USACO 3.3 fence 欧拉回路
摘要:题意:求给定图的欧拉回路(每条边只走一次)若欧拉回路存在,图中只可能有0个or2个奇数度的点。求解时,若有奇数度的点,则必须从该点开始。否则可以从任一点开始求解过程:dfs 1 //主程序部分 2 # circuit is a global array 3 find_euler_circuit... 阅读全文

posted @ 2014-10-19 19:46 Pentium.Labs 阅读(414) 评论(0) 推荐(0)

【转】set容器的基本操作
摘要:set的基本操作:begin() 返回指向第一个元素的迭代器clear() 清除所有元素count() 返回某个值元素的个数empty() 如果集合为空,返回trueend() 返回指向最后一个元素的迭代器equal_range() 返回集合中与给定值相等的上下限的两个迭代器erase() 删除集合 阅读全文

posted @ 2014-10-19 16:03 Pentium.Labs 阅读(340) 评论(0) 推荐(0)

poj 3311 tsp入门
摘要:题意:n+1个点:0--n,找一条路径从0点出发遍历1--n的点再回到0,每个点可经过不止一次,求最短路径裸的TSP问题,先用Floyd求出各个点之间最短路,再状压dp即可用n+1位二进制表示状态附模板: 1 //首先不难想到用FLOYD先求出任意2点的距离dis[i][j] 2 //接着枚举所有状... 阅读全文

posted @ 2014-10-19 16:01 Pentium.Labs 阅读(467) 评论(0) 推荐(0)

USACO 3.2 butter 最短路
摘要:堆优化dijkstra 1 /* 2 PROB:butter 3 LANG:C++ 4 */ 5 6 #include 7 #include 8 #include 9 #include 10 using namespace std;11 const int Ni = 10000;12 con... 阅读全文

posted @ 2014-10-18 00:34 Pentium.Labs 阅读(308) 评论(0) 推荐(0)

USACO 3.2 msquare 裸BFS
摘要:又是个裸BFS...和西安网赛那道1006一样的,只不过加上了要记录方案。顺便复习map记录方案直接在bfs队列的结点里加一个vector opt,把从开头一直到当前结点的操作序列记下来 1 /* 2 PROB:msquare 3 LANG:C++ 4 */ 5 6 #include ... 阅读全文

posted @ 2014-10-17 20:52 Pentium.Labs 阅读(310) 评论(1) 推荐(0)

USACO 3.2 ratios 高斯消元
摘要:题目原意很简单,就是解一个三元一次方程组直接高斯消元解方程组,枚举最后一列的倍数(k)注意double的精度,有很多细节需要处理 1 /* 2 PROB:ratios 3 LANG:C++ 4 */ 5 6 #include 7 #include 8 #include 9 ... 阅读全文

posted @ 2014-10-17 12:45 Pentium.Labs 阅读(289) 评论(0) 推荐(0)

USACO 3.2 kimbits DP
摘要:自己YY了个DP:设f[n][l]为n位数中包含不超过l个1的总个数f[n][l]=f[n-1][l]+f[n-1][l-1]然后用_search()从高位向低位扫描即可,tmp记录当前已记下多少个数了(这些数肯定都比第I个小)一开始f数组的初值YY错了,看了nocow改过来就好了 1 /* 2 P... 阅读全文

posted @ 2014-10-16 19:30 Pentium.Labs 阅读(262) 评论(0) 推荐(0)

Treap实现山寨set
摘要:treap插入、删除、查询时间复杂度均为O(logn)treap树中每个节点有两种权值:键值和该节点优先值如果只看优先值,这棵树又是一个堆treap有两种平衡方法:左旋&右旋insert 插入remove 删除_find 查找kth 返回root为根的树中第k大的元素 1 #include 2... 阅读全文

posted @ 2014-10-15 22:39 Pentium.Labs 阅读(269) 评论(0) 推荐(0)

poj1056 (Trie入门)寻找字符串前缀
摘要:题意:给你一堆字符串,问是否满足对于任意两个字符串a、b,a不是b的前缀字典树==前缀树==Trie树trie入门题,只用到了insert和query操作 1 #include 2 #include 3 #include 4 using namespace std; 5 #define max... 阅读全文

posted @ 2014-10-13 17:34 Pentium.Labs 阅读(508) 评论(0) 推荐(0)

[转] 计算几何模板Orz
摘要:1 1 #include 2 2 #define MAXN 1000 3 3 #define offset 10000 4 4 #define eps 1e-8 5 5 #define PI acos(-1.0)//3.14159265358979323846 6 ... 阅读全文

posted @ 2014-10-12 12:01 Pentium.Labs 阅读(275) 评论(0) 推荐(0)

poj 3463 最短路与次短路&&统计个数
摘要:题意:求最短路和比最短路长度多1的次短路的个数本来想图(有)方(模)便(版)用spfa的,结果妹纸要我看看dijkstra怎么解....写了三遍orzVer1.0:堆优化+邻接表,WA 1 //不能用堆优化+邻接表,因为需要处理dis[i][0]和dis[i][1]两套,如果都挤到一个堆里就乱套了... 阅读全文

posted @ 2014-10-12 11:13 Pentium.Labs 阅读(268) 评论(0) 推荐(0)

xbz分组题B 吉利数字 数位dp入门
摘要:B吉利数字时限:1s【题目描述】算卦大湿biboyouyun最近得出一个神奇的结论,如果一个数字,它的各个数位相加能够被10整除,则称它为吉利数。现在叫你计算某个区间内有多少个吉利数字。【输入】第一行为样例个数N。接下来N行,每一行代表一个输入样例,每个输入样例有2个数,分别代表某个区间的起点a和终... 阅读全文

posted @ 2014-10-09 01:38 Pentium.Labs 阅读(380) 评论(0) 推荐(0)

codeforces 359D 二分答案+RMQ
摘要:上学期刷过裸的RMQ模板题,不过那时候一直不理解>_=l)3 {4 int mid=(l+r)/2; //mid: r-l5 if (calc(mid)) //calc(mid): 判断mid答案是否符合要求6 ... 阅读全文

posted @ 2014-10-07 16:40 Pentium.Labs 阅读(351) 评论(0) 推荐(0)



Pentium.Lab Since 1998