UVA 10125 Sumsets(中途相遇法)

首先从大到小枚举d,然后枚举c和b,a根据公示算出,a=d-c-b,只要在剩下的区间中二分查找a就可以了,找到就是成功了。我认为时间复杂度是O(n^3)吧,但是在其他博客看到时间复杂度是O(n^2)。#include #include #include #include #include usin...

2016-10-13 09:05:48

阅读数:108

评论数:0

UVA 11825 Hacker's Crackdown(状压dp)

先把在同一网络中的电脑整理出来,然后再枚举子集,最后就是一般的状压dp。#include #include using namespace std; const int maxn=16; int p[1<<maxn],dp[1<<maxn],cover[1<<m...

2016-10-08 19:56:34

阅读数:249

评论数:0

Bestcoder #89

1001 #include #include #include #include using namespace std; const int maxn=10000+10; char s[maxn]; int main() { int t; scanf("%d"...

2016-10-30 21:45:06

阅读数:91

评论数:0

UVA 11922 Permutation Transformer(splay树)

#include #include #include #include using namespace std; struct Node{ Node* ch[2]; int v,s; int flip; int cmp(int x) const { ...

2016-10-30 10:14:23

阅读数:120

评论数:0

splay树

#include struct Node{ Node* ch[2]; int s,v,r; Node(int v): v(v) {ch[0]=ch[1]=NULL;r=rand();s=1;} int cmp(int x) const { if(x=...

2016-10-29 09:47:03

阅读数:90

评论数:0

UVA 1479 Graph and Queries(Treap树)

首先把最终图弄出来,然后逆序命令即可。#include struct Node{ Node *ch[2]; int v,r,s; Node(int v): v(v) {ch[0]=ch[1]=NULL;r=rand();s=1;} int cmp(int x) co...

2016-10-28 21:05:19

阅读数:99

评论数:0

Treap树

#include #include #include #include using namespace std; struct Node{ Node *ch[2]; int v,r,s; int cmp(int x) const { if(x==v) ret...

2016-10-28 17:44:15

阅读数:57

评论数:0

UVA 11020 Efficient Solutions(BST multiset实现)

#include #include #include #include #include using namespace std; struct Point{ int a,b; bool operator < (const Point &rhs) const { ...

2016-10-28 16:14:33

阅读数:400

评论数:0

lower_bound和upper_bound的区别

lower_bound是返回大于等于val的第一个值 upper_bound是返回大于等于val的最后一个值 具体参考点击打开链接

2016-10-28 15:52:13

阅读数:245

评论数:0

UVA 12206 Stammering Aliens(字符串hash)

POJ上超时,而且x选择对时间影响很大。#include #include #include #include using namespace std; const int maxn=40000+5; const int x=123; char s[maxn]; int n,m,pos; unsi...

2016-10-28 11:54:51

阅读数:89

评论数:0

UVA 12206 Stammering Aliens(后缀数组+二分)

这题二分搞了我两天。#include #include #include #include #include using namespace std; const int maxn=44000+5; struct SuffixArray{ int s[maxn]; int sa[m...

2016-10-28 09:55:05

阅读数:90

评论数:0

UVA 11107 Life Forms(后缀数组)

#include #include #include #include using namespace std; const int maxn=100000+1000; struct SuffixArray{ int s[maxn]; int sa[maxn]; int r...

2016-10-27 19:44:05

阅读数:86

评论数:0

UVA 10679 I Love Strings!!(后缀数组)

第一次做后缀数组的题,先处理文本串,整理出字典序然后对比模式串就可以了,感觉预处理对象和AC自动机换了一下。#include #include #include #include using namespace std; const int maxn=100000+5; struct Suffix...

2016-10-27 14:33:05

阅读数:78

评论数:0

计数排序

#include using namespace std; int a[10],b[10],c[10]; int main() { for(int i=0;i>a[i]; for(int i=0;i<10;i++){ for(int j=i+1;j<...

2016-10-27 09:50:56

阅读数:86

评论数:0

UVA 1019 Matrix Matcher(AC自动机)

没想到这题有重复的行= =。#include #include #include #include #include using namespace std; const int maxnode=10000+5; int n,m,x,y; int tr; char T[1005][1005],P[...

2016-10-27 08:52:27

阅读数:77

评论数:0

UVA 11468 Substring(AC自动机+树上的动态规划)

这题pro数组开小了,一直TLE。 就是简单的记忆化搜索,走不是单词节点的点就可以,记得标出危险节点。#include #include #include #include #include using namespace std; const int maxnode=500; int idx[...

2016-10-26 10:31:03

阅读数:115

评论数:0

UVA 1449 Dominating Patterns(AC自动机)

p数组少开了一个,查了一小时。#include #include #include #include #include using namespace std; const int maxnode=11000; struct AC{ int ch[maxnode][26]; int...

2016-10-25 18:17:29

阅读数:71

评论数:0

KMP循环节

首先求失配函数 rep(i,1,n-1){ int j=f[i]; while(j&&s[i]!=s[j]) j=f[j]; f[i+1]=(s[i]==s[j])?j+1:0; } f...

2016-10-23 10:31:18

阅读数:167

评论数:0

POJ 2406 Power Strings(KMP循环节)

#include #include #include #include using namespace std; #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define ss(x) scanf("%d",&x) c...

2016-10-22 22:36:37

阅读数:93

评论数:0

UVA 1328 Period(KMP)

#include #include #include #include using namespace std; #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define ss(x) scanf("%d",&x) c...

2016-10-22 22:17:57

阅读数:83

评论数:0

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