上一页 1 2 3 4 5 6 7 8 ··· 19 下一页
摘要: 每个单词可以看做一条边,每个字母就是顶点。有向图欧拉回路的判定,首先判断入度和出度,其实这个题判定的是欧拉通路,不一定非得构成环,所以可以有一个点的顶点入度比出度大1,另外一个点的出度比入度大1,或者每个点的出度和入度相等。用并查集判断是否弱联通。最后dfs求出欧拉路径,不过这个题是让求字典序最小的... 阅读全文
posted @ 2015-10-24 09:50 Howe_Young 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 几个入门的题目:hdu 1878判定一个图是否存在欧拉回路。直接判断图是否连通和每个点的度数是否为偶数就行了。(可用并查集判断连通,也可以用dfs)#include #include #include #include using namespace std;const int maxn = 110... 阅读全文
posted @ 2015-10-23 21:03 Howe_Young 阅读(918) 评论(0) 推荐(0) 编辑
摘要: 因为题目当中的k比较小k #include #include #include using namespace std;const int maxn = 55;struct Point { int x, y; int r;}p[maxn];bool vis[maxn][maxn];int... 阅读全文
posted @ 2015-10-23 11:03 Howe_Young 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个序列ai,个数为n。再给出一系列w;对于每个w,求序列中,所有长度为w的连续子串中的权值和,子串权值为子串中不同数的个数。思路:动态规划,用dp[w]表示当前长度为w的时候的权值和。显然dp[1] = n; 如果求dp[2]的话,那么它可以由dp[1]推出来,首先它比dp[1]少了最后... 阅读全文
posted @ 2015-10-23 10:55 Howe_Young 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 鸽巢原理又叫抽屉原理,百度百科的定义是:桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的“抽屉原理”。下面有两个入门题目:POJ2356题意:从n个数中选出几个数的和是n的倍数。因为给定的是n个数,所以结论是一定存在。证明... 阅读全文
posted @ 2015-10-22 14:49 Howe_Young 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 给定一个矩阵,查询一块子矩阵的最大值和最小值,然后他们和的一半替换(x, y)这个位置,裸的二维线段树。和一维差不多,只不过是一维当中保存的是最值,而这个保存的是个数组而已,而这个数组也是个一维的线段树,所以就是二维线段树。具体见代码注释。#include #include #include usi... 阅读全文
posted @ 2015-10-13 11:56 Howe_Young 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 给定一棵树求任意两个节点的公共祖先tarjan离线求LCA思想是,先把所有的查询保存起来,然后dfs一遍树的时候在判断。如果当前节点是要求的两个节点当中的一个,那么再判断另外一个是否已经访问过,如果访问过的话,那么它的最近公共祖先就是当前节点祖先。下面是tarjan离线模板:#include #in... 阅读全文
posted @ 2015-10-12 15:30 Howe_Young 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 题意比较费劲:输入看起来很麻烦。处理括号冒号的时候是用%1s就可以。还有就是注意它有根节点。。。Q次查询在线st算法/************************************************************************* > File Name: ... 阅读全文
posted @ 2015-10-08 20:53 Howe_Young 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 题目连接:http://acm.uestc.edu.cn/#/problem/show/92题意:给定一棵树,最后给加一条边,给定Q次查询,每次查询加上最后一条边之后是否比不加这条边要近,如果近的话,输出近多少,否则输出0思路:没加最后一条边之前两点之间的距离是dis(u) + dis(v) - 2... 阅读全文
posted @ 2015-10-08 20:48 Howe_Young 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一棵树,求任意两点之间的距离。思路:由于树的特殊性,所以任意两点之间的路径是唯一的。u到v的距离等于dis(u) + dis(v) - 2 * dis(lca(u, v)); 其中dis(u)表示u到根节点的距离。RMQ求LCA,过程如下,摘自http://dongxicheng.org/... 阅读全文
posted @ 2015-10-08 18:50 Howe_Young 阅读(372) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 19 下一页