
hdu
文章平均质量分 61
zz_ylolita
这个作者很懒,什么都没留下…
展开
-
hdu某道题
题目大意:给出一棵树,求以i为根节点的子树中有多少个节点标号比i小 得到dfs序之后,用树状数组求第i个数之前比第i个数小的数的个数 ans[i]=ed[i]-st[i];#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;#define MAXN 100原创 2015-08-09 23:17:55 · 430 阅读 · 0 评论 -
hdu5423
题目大意:给出一张n个点n条边的无向图,判断这张图中是否存在哈密顿回路。分析:存在哈密顿回路:这张图要连通,有一条回路经过每个点一次。dfs的时候每次只能从点x向一个未访问过的点y走,不能再由y回溯到x走x的其它相邻点,保证只经过每个点一次。所以dfs是在循环外调用的。为了优化,每次取x相邻的未访问过的度数最小的点扩展。#include #include #include原创 2015-08-29 21:56:25 · 507 阅读 · 0 评论 -
Manacher算法
http://blog.youkuaiyun.com/ggggiqnypgjg/article/details/6645824/原文说的很清楚,Manacher算法就是O(n)来求一个字符串S的最长回文串的。hdu3068 #include #include #include #include #include //max min函数包含在这个里面。。?using namespace原创 2016-01-01 23:57:18 · 454 阅读 · 0 评论 -
hdu1028;hdu1398——母函数入门
Tanky Woohdu1028分解整数G(x)=(1+x+x^2+…)*(1+x^2+x^4+...)*(1+x^3+x^6+...)*...*(1+x^n)所以第i个括号的增量是i,从0开始,保证方案数没有重复,从小到大排列答案为h(N)#include #include #include #include using namespace std;int n;原创 2016-07-16 18:21:00 · 650 阅读 · 1 评论 -
hdu5806 two-pointers
头尾两个指针扫就可以了,注意ans非常大,要用long long ,输入输出要配套#include #include #include #include using namespace std;int T,n,m,k,x,s,i,j;long long ans;int a[200010];int main(){ scanf("%d", &T); while (原创 2016-08-10 19:47:26 · 690 阅读 · 0 评论 -
hdu4418 Time Travel 概率DP+高斯消元
可以先用BFS判断每个点是否可以到达,在BFS中使用队列和vis[],但是vis[]只用标记一次,并且即使点出队,标记也不要清除,因为如果一个点的vis = 1,那么它要么在队列里,当前不用入队,要么已经出队了,那么这个时候它能影响到的点已经被更新了,不用再入队一次。(和DFS同理)设E[i]表示从i走到终点y的期望,那么E[y] = 0来回折返的处理:为了将走动变成只有一个方向,将数轴翻...原创 2018-08-10 11:21:57 · 458 阅读 · 2 评论