POJ的代码
nixinyis
这个作者很懒,什么都没留下…
展开
-
POJ 2774 & URAL 1517(最长公共子串)
题目链接:URAL-1517 POJ-2774题目大意:就是给两个字符串,求最长公共子串。解题思路:法一:常规动态规划好像是可以的(虽然我自己没试(~ ̄▽ ̄)~) 因为常规的LCS是O(n^2)的,所以讲LCS转化成LIS,就可以在O(n log n)的时间内完成。 具体的讲解看:LCS的nlogn法法二:后缀数组这个方法非常好,好像处理后缀数组可以使用O(n)或O(n log n) 不过后原创 2017-02-05 12:00:02 · 309 阅读 · 0 评论 -
POJ 2406(连续重复子串)
题目链接:POJ 2406 Power Strings题目大意:给一个字符串L,已知该字符串由某个字符串S重复r次得到,求r最大值。 解题思路:法一:- 可以使用后缀数组解决。 - 想法非常简单,就是穷举字符串S的长度k,然后判断是否满足。 1. 看字符串L的长度能否被k整除 2. 看suffix(1)和suffix(k+1)的最长公共前缀和是否等于n-k - 询问时,因为suffi原创 2017-02-03 11:03:43 · 895 阅读 · 0 评论 -
【POJ 1442】Black Box (treap树)
这是我自己写的第一道treap,虽然很简单,但依旧很激动。题目链接:POJ-1442题意:给了m个数a[1]……a[m],还有n个操作,每次输入一个u[i],求前u[i]个数中第i大的数。 题解:1、裸treap数#include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> using namespace std;s原创 2017-02-10 20:15:55 · 263 阅读 · 0 评论 -
一起来学习一个treap【POJ 3458】&【LA 5031】
这是我的treap代码储存。 welcome!POJ 3458链接:题目来源代码:#include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> using namespace std;struct node{ node* ch[2]; int r,s,v,ans; node(int x,in原创 2017-02-11 21:06:17 · 249 阅读 · 0 评论 -
POJ 3420 矩阵的幂
题目链接:POJ-3420题意:用1×2的矩形填充4×n的的矩形,求方案数。思路:大家可以轻易地在网上找到状态压缩的解法,这里我给出一个递推+矩阵的幂的方法。 - a[n] = a[n-1]+b[n-1]+c[n-1]+dx[n-1]+dy[n-1] - b[n] = a[n-1] - c[n] = a[n-1]+e[n-1] - dx[n] = a[n-1]+dy原创 2017-02-08 10:09:09 · 354 阅读 · 0 评论 -
UVA 11149 & POJ 3233 矩阵的幂
没有本质区别的两道题: 链接:https://vjudge.net/problem/POJ-3233 https://vjudge.net/problem/UVA-11149 简单来说,就是快速幂的矩阵版 下面我就上代码了: POJ 3233 #include #include #include #include using namespace std; co原创 2017-01-12 19:45:19 · 245 阅读 · 0 评论 -
【POJ 2763】Housewife Wind【LCA】
题目链接:POJ-2763题目大意:一棵树,n个点,每条边有权值w[i],q个操作。 A:求u到v路径上权值之和 B:将第x条边的权值改为t (1<= n,q<= 10^5)题解先考虑图是一条链时,无论是查询还是修改,用BIT(树状数组)的话都可以在O(log n)内完成。 但是对于一棵树怎么搞呢?? 可以将树通过DFS访问的顶点顺序当做一条链。 这样就非常妙了,可以使用BIT做优化了。原创 2017-03-14 16:57:59 · 257 阅读 · 0 评论