ACM
2016
codeforces #368 div 2 C. Pythagorean Triples (构造,数学)
题目链接
题意:给出一个数,问包含这个数三个数组成的勾股数,输出另外两个数。
codeforces #368 div 2 A. Brain's Photos (暴力)
·1 分钟
题目链接
。。。这题也能成hack题。。。。有毒啊。。然后我room里所有人都写对了。。。是我看这道题看得太早了?
hdu 1754 I Hate It (线段树模板题,炒鸡详细注释版)
hdu 1754 题目链接 题意:单点更新,区间查询最大值。 思路:线段树。 一开始借鉴了clj的pointer写法。。wjmzbmr’s code 直接MLE。。。看来也许只能在cf上用。。。 下面是MLE的代码:
ac自动机模板by Lalatina (hdu 2222)
orzorz 日常%学弟 华科的未来orz
1#include <cstdio> 2#include <cstring> 3 4using namespace std; 5 6struct tnode { 7 int s; 8 tnode *f, *w, *c[26]; 9} T[5000000], *Q[5000000]; 10int C; 11 12inline tnode *tnew() { 13 memset(T + C, 0, sizeof(tnode)); 14 return T + C++; 15} 16 17inline void AcaInsert(tnode *p, const char *s) { 18 while (*s) { 19 int u = *s - 'a'; 20 if (!p->c[u]) 21 p->c[u] = tnew(); 22 p = p->c[u]; 23 ++s; 24 } 25 ++p->s; 26} 27 28inline void AcaBuild(tnode *p) { 29 p->f = p->w = p; 30 int ql = 0; 31 for (int i = 0; i < 26; ++i) 32 if (p->c[i]) { 33 p->c[i]->f = p->c[i]->w = p; 34 Q[ql++] = p->c[i]; 35 } 36 for (int qf = 0; qf < ql; ++qf) 37 for (int i = 0; i < 26; ++i) 38 if (Q[qf]->c[i]) { 39 tnode *f = Q[qf]->f; 40 while (f != p && !f->c[i]) 41 f = f->f; 42 if (f->c[i]) { 43 Q[qf]->c[i]->f = f->c[i]; 44 Q[qf]->c[i]->w = f->c[i]->s ? f->c[i] : f->c[i]->w; 45 } 46 else 47 Q[qf]->c[i]->f = Q[qf]->c[i]->w = p; 48 Q[ql++] = Q[qf]->c[i]; 49 } 50} 51 52inline int AcaMatch(tnode *root, const char *s) { 53 int x = 0; 54 for (tnode *p = root; *s; ++s) { 55 while (p != root && !p->c[*s - 'a']) 56 p = p->f; 57 if (p->c[*s - 'a']) { 58 p = p->c[*s - 'a']; 59 for (tnode *q = p; q->s != -1; q = q->w) { 60 x += q->s; 61 q->s = -1; 62 } 63 } 64 } 65 return x; 66} 67 68char S[1000001]; 69 70int main() { 71 int tt; 72 scanf("%d", &tt); 73 while (tt--) { 74 C = 0; 75 tnode *root = tnew(); 76 root->s = -1; 77 int N; 78 scanf("%d", &N); 79 while (N--) { 80 scanf("%s", S); 81 AcaInsert(root, S); 82 } 83 AcaBuild(root); 84 scanf("%s", S); 85 printf("%d\n", AcaMatch(root, S)); 86 } 87 return 0; 88}
hdu 2222 Keywords Search (ac自动机模板题(静态数组写法+动态指针写法))
hdu 2222 题目链接
题意:给出n个模式串,一个文本串,问文本串中出现了多少各模式串。
poj 2001 Shortest Prefixes (trie树)
poj 2001 题目链接
题意:给出n个字符串的表,问每个字符串的简化表示。简化表示的要求是,以该字符串的最短的而且不能产生歧义的前缀来表示。
poj 3630 Phone List (带删除操作的静态trie树模板题)
poj 3630 题目链接
题意:给出n个字符串,问是否满足所有的字符串都不以其他的字符串为前缀。
hdu 1247 Hat’s Words (trie树)
hdu 1247 题目链接
题意:给出n个字符串的单词表,输出所有的字符串a,满足字符串a是由n中另外两个字符串拼接成的。
hdu 5536 || 2015 长春区域赛 J Chip Factory (带删除操作的trie树)
hdu 5536 题目链接
题意:给出n个数,然后问最大的(a[i]+a[j])^a[k] (i,j,k互不相同)
hdu 4828 Xor Sum (trie 树模板题,经典应用)
hdu 4825 题目链接
题意:给定n个数,然后给出m个询问,每组询问一个数x,问n中的数y使得x和y的异或和最大。
hdu 1251 统计难题 (trie树模板题)
hdu 1251 题目链接
题意:先给一个单词表,然后给出若干查询,每个查询一个单词,问单词表中以这个单词为前缀的单词的个数。
hdu 5833 || ccpc 2016 网络赛 1002 Zhu and 772002 (高斯消元)
hdu 5833 题目链接
题意:n个数,保证每个数的素因子不超过2000,从中取若干个,问乘积是完全平方数的方案数。