hdu
文章平均质量分 78
heb1c
心有猛虎,细嗅蔷薇。
展开
-
KMP—HDU2203
这道题吧,刚开始觉得不知道从哪里下手,后来上了个厕所,突然想到,其实把匹配串复制一遍,然后用KMP搜一遍就行了: #include #include #include #define val 100005 int lens,lenp,next[val]; char s[val*2],p[val]; bool kmp(); int main() { wh原创 2016-11-20 12:14:27 · 319 阅读 · 0 评论 -
并查集—HDU1232
一看到题目,很明显的并查集嘛,走起走起。 #include int bin[1002]; int findx(int x)//用来找每个节点的根节点 { int r=x; while(bin[r] !=r) r=bin[r]; return r; } void merge(int x,int y) { int fx,fy; fx = fi原创 2016-11-20 12:17:27 · 371 阅读 · 0 评论 -
拓扑排序算法—HDU1285
运用拓扑排序的算法 这也是老师提供的模板 把每个关系构成图 离散没有学好... 但是有模板啊,不过数学真的要好好学,嗯! 代码: #include #include using namespace std; #define MAXN 520 int toposort(int n,int mat[][MAXN],int* ret) { int d[MAXN],i,j,k;原创 2016-11-20 12:22:11 · 308 阅读 · 0 评论 -
BFS—HDU1548
题目意思呢大致是: 电梯每层有一个不同的数字,例如第n层有个数字k,那么这一层只能上k层或下k层,但是不能低于一层或高于n层,给定起点与终点,要求出最少要按几次键。 最开始想的,诶这不就是一道深搜的题么,结果写好后发现炸掉了,想了想果断广搜: #include #include #include #include using namespace std; int n,s,e原创 2016-11-20 12:45:47 · 320 阅读 · 0 评论 -
最短路—SPFA&dijkstra(51nod1459)
题目: 你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大。现在问题来了,给定房间、道路、分数、起点和终点等全部信息,你能计算在尽快离开迷宫的前提下原创 2016-11-20 13:01:31 · 387 阅读 · 0 评论 -
快速幂取余—HDU1061
题目意思炒鸡简单:给你一个N,计算N^N个位上的数字是多少 做法也很简单,但是普通做法会超时,所以要用到快速幂取余。 啦啦啦,召唤代码~~:#include int FPT(int a,int n,int mod) { if(n==0) return 1; int ans=qpow(a,n/2,mod); ans=ans*ans%mod;原创 2016-11-20 12:33:55 · 583 阅读 · 0 评论