上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 16 下一页
摘要: http://poj.org/problem?id=2378树状DP 1 #include <stdio.h> 2 #include <string.h> 3 #include <vector> 4 #include <set> 5 6 #define N 10010 7 8 using namespace std; 9 10 vector<int> a[N];11 set<int> set1;12 set<int>::iterator it;13 14 int n, father[N] = {0};15 16 阅读全文
posted @ 2013-03-27 16:32 Yuan1991 阅读(135) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1655树状DP,双向建图,以1为树的根节点遍历一遍 1 #include <stdio.h> 2 #include <string.h> 3 #include <vector> 4 5 #define N 20010 6 7 using namespace std; 8 9 vector<int> a[N];10 11 int n, mark[N], result, resulti;12 13 int dfs(int x)14 {15 int i, j, temp, sum = 1, max_ 阅读全文
posted @ 2013-03-27 11:23 Yuan1991 阅读(135) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2412树状DP,找出树中互不相邻的点,最多能有多少个,判断是否唯一比较麻烦不涂即为白色,黑色表示选择该点不唯一的涂色方法可以分为以下两种树:1.(如果根节点为白色,最多的涂色方法)dp[i][0] 有多种的树2.(如果根节点为黑色,最多的涂色方法)dp[i][1] 有多种的树形成1类型树方法:如果根节点为白色,它的子树中有任意一个满足下面条件:dp[j][0] == dp[j][1]或 (dp[j][0] > dp[j][1] 且 该子树为1类型树)或 (dp[j][1] > dp[j][0] 且 阅读全文
posted @ 2013-03-26 20:49 Yuan1991 阅读(143) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1200hash入门,用karp-rabin做的 1 #include <stdio.h> 2 #include <string.h> 3 #define N 16000100 4 5 char s[1000100] = "\0", mark[26] = "\0"; 6 char hash2[N] = "\0"; 7 int hash1[26] = {0}; 8 int n, nc; 9 10 int main()11 {12 int i, j, sum = 阅读全文
posted @ 2013-03-26 11:39 Yuan1991 阅读(119) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2182线段树,单点更新,单点查询#include <stdio.h>#define lson l, m, root<<1#define rson m+1, r, root<<1|1#define N 80008int sum[N<<2];void push_up(int root){ sum[root] = sum[root<<1] + sum[root<<1|1];}void build(int l, int r, int root){ int m; if(l == 阅读全文
posted @ 2013-03-12 11:30 Yuan1991 阅读(159) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 16 下一页