自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嗯。

嗯。

  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

原创 POJ 3882 Stammering Aliens 后缀数组height应用

题目来源:POJ 3882 Stammering Aliens题意:给你m一个一个字符串 求至少出现m次的最长字符串 可以在字符串中重叠出现思路:二分长度l 然后从height数组中找长度大于等于l的前缀 #include #include #include using namespace std;const int maxn = 40010;char s[maxn];in

2014-04-30 14:42:25 1327

原创 后缀数组模版

char s[maxn];int sa[maxn];int t[maxn], t2[maxn], c[maxn];int rank[maxn], height[maxn];int n;void build_sa(int m){ int i, *x = t, *y = t2; for(i = 0; i < m; i++) c[i] = 0; for(i = 0; i < n;

2014-04-29 18:07:47 903

原创 FOJ 2170 花生的序列 DP

题目来源:FOJ  2170 花生的序列题意:给你一个长度为2*n的由W和B组成字符串 该字符串是由2个长度为n的并且是WBWBW....形式的 求有多少种组成方案思路:dp[i][j] 代表第一个字符串长度为i 第二个字符串长度为j时的数量然后根据i和j的奇偶数递推i为奇数 原来的字符串的第i位是W 为偶数是B j同上i+j是到输入的串的位置 #include #inc

2014-04-28 12:47:21 1089

原创 福州大学第十一届程序设计竞赛

Problem 2167 大王叫我来巡山呐比赛的第二题 呵呵Problem 2168 防守阵地 I比赛时看懂第一题 大了下草稿 马上切了它假设当前x=(ai)*1+(ai+1)*2+(ai+2)*3+''''+(aj)*m下一次是(ai+1)*1+(ai+2)*2+(ai+3)*3+''''+(aj+1)*m = (ai)*1+(ai+1)*2+(ai+2)*3+''''+(a

2014-04-27 17:33:18 1419

原创 UVa 11019 Matrix Matcher 字符矩阵出现次数

题目来源:UVa 11019 Matrix Matcher题意:输入2个字符矩阵 求第二个字符矩阵在第一个字符矩阵中出现的次数思路:见大白书218页#include #include #include #include using namespace std;const int maxn = 1010;const int maxm = 110;char a[maxn][m

2014-04-26 21:44:50 962

转载 数位DP专题

hdu2089 不要62Hdu3555不能出现连续的49UESTC 1307相邻的数差大于等于2HDU 3652 出现13,而且能被13整除。HDU 3709 平衡数light OJ 1140两个数之间的所有数中零的个数。lightoj 1032  二进制数中连续两个‘1’出现次数的和Codeforces 55D. Beautiful numbers POJ 325

2014-04-21 13:34:41 865

原创 HDU 3440 House Man 差分约束

题目来源:HDU 3440 House Man题意:要从高度最低的地方(记为s)跳到高度最高的地方(记为e) 每次跳跃的距离为d 每次只能跳到下一个帮他高的位置 n个位置需要跳n-1次每个位置都有一个高度值 并且顺序不能换 求s到e的最远距离思路:差分约束 建图 首先每个位置不能重叠 所以d[i+1] - d[i] >= 1 换成小于等于号 d[i] - d[i+1] 然后对高度排

2014-04-21 11:35:23 1289

原创 HDU 1534 Schedule Problem 差分约束输出一组解

题目来源:HDU 1534 Schedule Problem题意:若干个派对 每个派对需要连续几天的时间 接下来有一些限制条件 诸如第i个派对开始时间必须在第j个派对开始之后..(4种)求出任意一种安排的方案 无解输出impossible思路:差分约束求最长路求最小值的类型 #include #include #include #include using namesp

2014-04-20 16:26:10 1113

原创 HDU 3592 World Exhibition 差分约束基础题

题目来源:HDU 3592 World Exhibition题意:若干限制条件 求1到n的最大距离思路:直接差分约束这里收集了某大牛的总结/*题意:求符合题意的最小集合的元素个数题目要求的是求的最短路,则对于 不等式 f(b)-f(a)>=c,建立 一条 b 到 a 的边 权值为 c,则求的最长路 即为 最小值(集合)并且有隐含条件:0<=f(a)-f(a-1)<=1

2014-04-20 15:26:50 1196

原创 最短路模版

SPFAbool SPFA(){ memset(inq, false, sizeof(inq)); for(int i = 0; i <= n; i++) d[i] = INF; d[0] = 0; queue Q; Q.push(0); inq[0] = true; while(!Q.empty()) { int u = Q.front(); Q.pop();

2014-04-20 13:21:05 1008

原创 POJ 2375 Cow Ski Area 强连通图最少添边数

题目来源:POJ 2375 Cow Ski Area题意:n*m的一个矩阵 如果在一个点上 可以往上下左右4个点 并且必须大于等于要去的点 可以安装一个任意门 每个任意门可以连接容易2个点 求最少安装多少个任意门 可以是全通连通 思路:强连通分量缩点 求出度为0和入读为0的连通分量2者的最大值 特判全图强连通的情况#include #include #include #inc

2014-04-19 16:39:10 1259

原创 强连通分量模版

Tarjanvector G[maxn];int pre[maxn];int low[maxn];int sccno[maxn];int dfs_clock;int scc_cnt;stack S;int n, m;int degree[maxn];int cnt[maxn];void dfs(int u){ pre[u] = low[u] = ++dfs_cloc

2014-04-19 11:04:29 900

原创 POJ 2778 DNA Sequence 长度为n且不含m种模式串的字符串种数

题目来源:POJ 2778 DNA Sequence题意:给你m个字符串 求出长度为n 并且不包含m个模式串的任何一个的文本串的数量思路:有一个经典的矩阵题目:给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数 这里的k步就是字符串的长度 点就是AC自动机上的节点 2点之间有路必须满足2个节点都不是禁止节点   求的长度为n 然后次矩阵快速幂即可 需要透彻理解AC

2014-04-18 23:45:56 1446

原创 HDU 2457 DNA repair 不含模式串的最少修改次数

题目来源:HDU 2457 DNA repair题意:给你一个文本串 求最少需要修改的次数 使得文本串不包含模式串思路:可以一位一位构造一个和文本串长度一样的字符串 就4个字符 每次4选1 如果对应的位置的字符不一样修改的次数+1 并且构造的时候不包含禁止节点 dp[i][j] 代表到文本串的前i位 在ac自动机的状态为j 最少需要修改的次数dp[l+1][v] = min(dp[

2014-04-18 19:03:28 1158

原创 UVa 11468 Substring AC自动机+概率DP

题目来源:UVA 11468 Substring题意:求不包含任意一个模式串的长度为l的文本串的概率 给出可以使用的字符的种类及其概率思路:AC自动机+概率DP #include #include #include using namespace std;const int maxnode = 20*22;const int size = 66;int ch[maxn

2014-04-18 14:25:27 1029

原创 HDU 2896 病毒侵袭 AC自动机裸题

题目来源:HDU 2896 病毒侵袭题意:求文本串中有多少个模式串 并且输出下标思路:直接ac自动机 然后数组记录在输出 我日写了半天结果函数没调用 找了半天错误 你要长记性啊 这种错误犯了好几次了啊 笨蛋#include #include #include using namespace std;const int maxn = 10010;char a[maxn];

2014-04-15 15:23:28 917

原创 HDU 3695 Computer Virus on Planet Pandora AC自动机裸题

题目来源:HDU 3695 Computer Virus on Planet Pandora题意:输入n个字符串 求最后一个字符串有n个字符串中的几种思路:直接暴力ac自动机#include #include #include using namespace std;const int maxn = 5200010;char s1[maxn], s2[maxn], s3[ma

2014-04-14 22:56:21 1047

原创 AC自动机模版

struct node{ int val; node *next[26]; node *fail; node() { val = 0; for(int i = 0; i < 26; i++) next[i] = NULL; fail = NULL; }};node *root;void insert(char *s){ int n = strlen(s)

2014-04-14 11:00:22 914

原创 UVa 11732 strcmp() Anyone? 求字符串比较次数

题目来源:UVa 11732 strcmp() Anyone?题意:求若干个字符串两两比较需要的次数 than 和 that 需要比7次 there和the需要7次 就是LCP的长度*2+1 特判2个字符串一样的情况abc和abc需要8次思路:利用字典树 每个点出现分叉的时候说明有些字符串可以比较出来了 总和加上当前深度*和当前节点不一样的兄弟数 链表超时了 学习了左儿子又兄弟表示法

2014-04-10 14:02:32 1065

原创 UVa 11488 Hyper Prefix Sets 字典树基础题

题目来源:UVa 11488 Hyper Prefix Sets题意:求公共前缀的长度与有该前缀的字符串的数量的乘积的最大值思路:对于字典树很清楚的可以马上做出来 建树时直接取节点数量和节点深度的乘积的最大值#include #include #include using namespace std;struct node{ int val; node *next[2];

2014-04-09 18:52:17 1225

原创 C#记事本

3  编写程序代码首先在代码的通用段声明以下两个公共变量,他们都是布尔型的,“b”用于判断文件是新建的还是从磁盘打开的,“s”用于判断文件是否被保存。//*************************************************************************/* 布尔变量b用于判断文件是新建的还是从磁盘打开的,   true表示文件是从

2014-04-09 15:25:16 2588

原创 字典树模版

数组版 来自大白书int ch[maxnode][sigma_size];int val[maxnode];int sz;void init(){ sz = 1; memset(ch[0], 0, sizeof(ch[0]));}int idx(char c){ return c - 'a';}void insert(char *s){ int u = 0, n

2014-04-09 13:11:16 972

原创 HDU 4749 Parade Show 相对匹配的KMP

题目来源:HDU 4749 Parade Show题意:从长度为n的序列最多能找到多少个不重叠的的连续的子串 和长度位m的序列的相对大小相同  思路:转化成KMP 把原来的字母相同换成一个检测是否相对大小相同的函数 具体参考了http://blog.csdn.net/no__stop/article/details/11949743#include #include const i

2014-04-08 14:57:24 1521 3

原创 字符串匹配模版

void getFail(){ int m = strlen(p); f[0] = f[1] = 0; for(int i = 1; i < m; i++) { int j = f[i]; while(j && p[i] != p[j]) j = f[j]; f[i+1] = p[i] == p[j] ? j+1 : 0; }}void find(){ int

2014-04-07 20:41:48 964

转载 博弈题集

刷博弈前请看:http://blog.csdn.net/liuqiyao_01/article/details/8479340===================================================================================================HDOJ1079&POJ1082&ZOJ1024Calendar

2014-04-07 17:11:40 902

转载 最短路&差分约束题集

最短路【HDU】1548    A strange lift基础最短路(或bfs)★2544    最短路基础最短路★3790   最短路径问题基础最短路★2066    一个人的旅行基础最短路(多源多汇,可以建立超级源点和终点)★2112    HDU Today基础最短路★1874    畅通工程续基础最短路★1217    Arbitrage  货

2014-04-07 16:18:52 941

原创 HDU 1599 find the mincost route 无向图最小环

题目来源:HDU 1599 find the mincost route题意:求最小的3点组成的环思路:floyd 参考http://blog.sina.com.cn/s/blog_476a25110100mag6.html http://www.cppblog.com/mythit/archive/2009/04/21/80579.aspx#include #include #i

2014-04-07 15:39:07 1021

原创 HDU 3986 Harry Potter and the Final Battle 删掉任意一条边的最长最短路

题目来源:HDU 3986 Harry Potter and the Final Battle题意:哈利波特要从1到n 不过敌人可以破坏一条边 求最坏的情况下到达n需要的最短时间 不能到达输出-1思路:和上一题差不多 每次枚举最短路上的边 然后去掉该条边在做最短路 因为是无向的 不要忘记把它的反向边也删除 上一题一定有解 这题不一定 如果去掉一条边后无法到达n那么输出-1 因为敌人足够

2014-04-07 14:03:47 1207

原创 HDU 1595 find the longest of the shortest 删掉任意一条边的最长最短路

题目来源:HDU 1595 find the longest of the shortest题意:n个点m条边的无向图 有一条路是不能走的 求从1到n最短路的最大值思路:首先求出最短路 如果坏掉的那条路不在最短路上 那么最短路是不会变大的 所以枚举最短路上的n-1条边 每次把这条路设为正无穷 在做最短路 取最大值一次Dijkstra的最短路的复杂度是mlogn n次最短路的复杂度是nm

2014-04-07 13:20:51 1153

原创 HDU The Shortest Path 矩阵的最短路

题目来源:HDU The Shortest Path题意:如果A*B=C 那么A与C之间的距离为1 其中ABC为矩阵 下面q次询问 求2个矩阵之间的最短路思路:暴力 n的5次的复杂度 枚举2个矩阵 然后算出2个矩阵的乘积 再去找第三个矩阵 建图 然后floyd 1500ms左右 其中写成了函数调用也超时了#include #include using namespace std;

2014-04-06 23:48:19 1112

原创 HDU 2224 The shortest path 双调旅行商问题

题目来源:HDU 2224 The shortest path题意:求从1到n 然后在从n到1的最短路 去的时候经过的点的顺序必须从小到大 来的时候经过的点的顺序必须从大到小 并且每个点只能经过一次(1和n不算) 输出最短路的长度思路:经典题  参考了大牛http://www.cppblog.com/doer-xee/archive/2009/11/30/102296.html#inc

2014-04-06 21:57:59 1209

原创 HDU 3339 In Action 价值为最短路的背包

题目来源:HDU 3339 In Action题意:有一个系统要去破坏 该系统是有n个点组成的图 每个点有一个权值 可以从0排除任意个机器人 去占领一个点 每个机器只能占领一个地方 所有机器人占领点的权值之和大于所有点权值之和的一半(不能等于) 就算破环成功 求在破坏的情况下所有机器人走过的路径之和最小 思路:简而言之 就是选出若干个点 他们的和大于总数的一半 并且走的路最短

2014-04-06 00:00:11 1242

原创 POJ 3259 Wormholes Bellman-Ford找负环

题目来源:POJ 3259 Wormholes题意:某人想回到过去 输入有2中类型的边 一种是正的 并且是双向的 另外一种是负的 是单向的 可以回到过去就输出YES 否则NO思路:和UVa 558差不多 如果存在负环就可以通过这个负环一直无限时光倒流 找负环用SPFA或者Bellman-Ford#include #include #include using namespace

2014-04-05 18:32:59 1154

原创 POJ 3660 Cow Contest 传递闭包确定名次

题目来源:POJ 3660 Cow Contest题意:n头牛 下面m行 每行x y 代表牛x打败了牛y 问有几头牛的最终排名是确定的思路:传递闭包 如果x打败了y 令a[x][y]=1 并且a[y][x]=-1 其他不知道的都为0  然后floyd 最后对于每头牛数一下是否有n-1个1或者-1(就是不为0) 如果有n-1个不为0 说明该牛和其他牛都确定了状态#include #

2014-04-05 15:49:23 1051

原创 HDU 1839 Delay Constrained Maximum Capacity Path 最短路+二分

题目来源:HDU 1839 Delay Constrained Maximum Capacity Path题意:给你一张无向图 要从1到n运送东西 每条路都有容量限制和经过的时间 选择一条路径该路径最多能运的数量等于容量最少的那条边 并且总时间不能超过T思路:和上一题一样 二分容量 然后做最短路判断是否最短时间小于等于T#include #include #include #in

2014-04-04 23:40:59 1017

原创 HDU 2962 Trucking 最短路+二分

题目来源 HDU 2962 题意:给你一张无向图n个点m条边 给出起点s终点e和最大承受的高度 其中每条路都有限制的高度以及该条路的长度 求从s到e最大可以通过的高度和在最大高度的前提下的最短路思路:二分高度再求最短路 无解特判一下#include #include #include #include using namespace std;const int maxn

2014-04-04 23:16:25 882

原创 HDU 1535 Invitation Cards 2次Dijkstra来回最短路

题意:从1派学生到2-n这n-1个点  求去并且回来的最短路 就是1到各点的最短路之和和各点到1的最短路之和 给的是有向图思路:对于1到各个点的最短路直接Dijkstra求出无压力 然后各个点到1的最短路可以反向建图后再求一次从1到各个点的最短路对于很多点到一个点的情况可以考虑反向建图 转变成单源最短路#include #include #include #include us

2014-04-04 21:23:14 1028

原创 HDU 1317 XYZZY Bellman-Ford求最长路 判断正环

题意:给你n个房间 开始有能量值100 判断能否从1到第n个房间 每到一个房间可以获得能量x(可能小于0)  每到一个房间总能量必须大于0 每个房间可以重复到达思路:求一个从1到n的最长路 不过可能有正环 没有正环 直接求最长路 如果有正环 判断环中的点是否可以到达n具体用Bellman-Ford算法 虽然复杂度是(n*m)这题应该可以了 如果迭代n-1次之后还能松弛 说明有正环 然后

2014-04-04 18:50:48 1772

原创 POJ 2002 Squares hash求正方形个数

题意:给你n个点 坐标都小于20000 数一下可以组成多少个正方形思路:借鉴了网上hash的思路 哈希链地址法 把x+y的绝对值相同的放人一个链表里 然后枚举2个点(1条边上的) 推算出另外2个点另外2点分别是 x1 = a[i].x+(a[i].y-a[j].y);y1 = a[i].y-(a[i].x-a[j].x);x2 = a[j].x+(a[i].y-a[j].y);y2

2014-04-04 16:11:52 901

原创 HDU 2371 Decode the Strings 矩阵快速幂求m次置换

题意:给你一个置换和一个字符串 按照置换m次之后的结果 求原字符串思路:构造一个矩阵1的每一行只有1个1 a[i][j]代表第i个字母替换成了第j个字母 然后快速幂#include #include const int maxn = 88;struct Mat{ int a[maxn][maxn];};Mat A, B;int n, m;Mat get(Mat x,

2014-04-04 10:24:05 1114

ACM 学习资料

ACM 学习资料 包括一些压缩包 和 数据结构的一点东西

2013-11-29

数据结构课件

数据结构的课件 感觉比书上的代码容易理解

2013-09-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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