hdu
skymeteorite
这个作者很懒,什么都没留下…
展开
-
hdu5965 dp枚举
http://acm.hdu.edu.cn/showproblem.php?pid=5965用num[i]表示第i个格子里的数,dp[i]表示第i列有多少个雷,由dp[i]=num[i]-dp[i-1]-dp[i-2],枚举第一个格子里的雷可能的数量#include <iostream>#include <cstdio>#include <cstring>using namespace std原创 2016-11-09 18:16:34 · 475 阅读 · 0 评论 -
斐波那契博弈(转)
有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下:1)先手不能在第一次把所有的石子取完,至少取1颗;2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。约定取走最后一个石子的人为赢家,求必败态。结论:当n为Fibonacci数的时候,必败。f[i]:1,2,3,5,8,13,21,34,55,89……用第二数学归纳法证明:为了方便,我们将n记为f[i]。1、当i=2时,先转载 2015-09-14 19:58:29 · 348 阅读 · 0 评论 -
hdu2612Find a way bfs
http://acm.hdu.edu.cn/showproblem.php?pid=2612Problem DescriptionPass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet原创 2015-09-30 16:12:01 · 309 阅读 · 0 评论 -
hdu1495非常可乐bfs
http://acm.hdu.edu.cn/showproblem.php?pid=1495 Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可原创 2015-09-30 17:08:53 · 477 阅读 · 0 评论 -
hdu1729Stone Game
设当前的箱子容量为si,求出一个t满足:t + t * t < si,如果当前箱子里有ci颗石头,1、ci > t 则必胜;2、ci == t 则必败;3、ci < t不能确定,将t作为si递归调用函数。当满足ci > t时,return si - ci 作为当前状态的sg值。因为:如图: 当ci在si点时,为有向图的端点,出度为0,也就是必败点,所以sg值为0;当ci 位于si - 1时,ci的原创 2015-09-14 20:44:37 · 341 阅读 · 0 评论 -
hdu1848nim+sg
http://acm.hdu.edu.cn/showproblem.php?pid=1848 Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2; F(n)=F(n-1)+F(n-2)(n>=3); 所以,1,2,3,5,8,13……就是菲波那契数列。 在HDOJ上有不原创 2015-09-12 21:29:31 · 298 阅读 · 0 评论 -
hdu2147巴什博弈
博弈论:组合博弈必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。必败(必胜)点的属性:(1) 所有终结点是必败点(P点);(2) 从任何必胜点(N点)操作,至少有一种方法可以进入必败点(P点);(3)无论如何操作, 从必败点(P点)都只能进入必胜点(N点). 这些要会啊。原创 2015-08-02 16:53:25 · 364 阅读 · 0 评论 -
hdu1996汉诺塔VI
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1996Problem Descriptionn个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列。由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系 :n=m+p+q a1>a2>...>amb1>b2>原创 2015-08-20 17:51:00 · 547 阅读 · 0 评论 -
hdu1213 How Many Tables
http://acm.hdu.edu.cn/showproblem.php?pid=1213 Problem Description Today is Ignatius’ birthday. He invites a lot of friends. Now it’s dinner time. Ignatius wants to know how many tables he needs at l原创 2015-09-10 21:17:18 · 217 阅读 · 0 评论 -
hdu1995汉诺塔V
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1995Problem Description用1,2,...,n表示n个盘子,称为1号盘,2号盘,...。号数大盘子就大。经典的汉诺塔问题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小顺序原创 2015-08-20 17:35:36 · 626 阅读 · 0 评论 -
hdu1207汉诺塔II四柱
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1207Problem Description经典的汉诺塔问题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。原创 2015-08-20 17:13:57 · 564 阅读 · 0 评论 -
hdu2064汉诺塔III
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2064Problem Description约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。现在我们改变游戏的玩法,不允许直接从原创 2015-08-20 19:30:51 · 495 阅读 · 0 评论 -
hdu1253胜利大逃亡bfs
http://acm.hdu.edu.cn/showproblem.php?pid=1253#include<iostream>#include<queue>#include<cstdio>using namespace std;const int INF=10000;//时间初始值为无穷大;const int MAX=70;int A,B,C,T;struct node//表示达到某原创 2015-09-16 21:15:27 · 324 阅读 · 0 评论 -
hdu1372Knight Moves bfs
http://acm.hdu.edu.cn/showproblem.php?pid=1372 Problem Description A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight mov原创 2015-09-18 20:29:03 · 363 阅读 · 0 评论 -
hdu5969
http://acm.hdu.edu.cn/showproblem.php?pid=5969 要使或的和最大,要尽可能的让高位为1。将l和r两个数的二进制形式写出来,缺的补0,每一位都对齐,由于l<=r,所以在不相等的情况下,一定会出现某一位,r这一位上是1,而l这一位上是0,这样,我们可以选择一个数x这一位是1,往后所有都是0,y这一位是0,往后所有都是1,这样选择的x,y一定满足要求,而且x|原创 2016-11-08 21:11:10 · 617 阅读 · 0 评论 -
hdu1541树状数组
题意,计算每颗星左下有多少颗星,不包括自己注意树状数组不能处理x为0的时候#include<iostream>#include <cstring>#include <cstdio>using namespace std;const int MAXN=32005;int n=32005;int f[MAXN];int a[MAXN];//a[i]是横坐标为i的点的个数int lowbit(原创 2016-03-20 20:16:41 · 413 阅读 · 0 评论 -
hdu5762曼哈顿距离
考虑一种暴力,每次枚举两两点对之间的曼哈顿距离,并开一个桶记录每种距离是否出现过,如果某次枚举出现了以前出现的距离就输 YESYES ,否则就输 NONO . 注意到曼哈顿距离只有 O(M)O(M) 种,根据鸽笼原理,上面的算法在 O(M)O(M) 步之内一定会停止.所以是可以过得. 一组数据的时间复杂度 O(\min{N^2,M})O(min{N2,M}) .#include <iostrea原创 2016-07-26 18:55:56 · 556 阅读 · 0 评论 -
hdu5510
http://acm.hdu.edu.cn/showproblem.php?pid=5510 给出n个串 求最大的n使 前n-1个串不全是他的子串strstr(m,n)函数如果n是m的子串返回在m中的第一个字符的地址 else NULL 注意如果匹配过得串就不必匹配了,因为他已经是别的串的子串了,他的信息完全可以由他下面的串表示#include<iostream>#include<stdio.原创 2016-05-16 16:59:48 · 591 阅读 · 2 评论 -
hdu5524 Subtrees
http://acm.hdu.edu.cn/showproblem.php?pid=5524 问n个节点的完全二叉树有多少种节点个数不同子树 首先如果是满二叉树好判断,否则,可以把它看成一个完全二叉树和另一个非完全二叉树,如此递归下去,每递归一次,结果加一,因为结点个数肯定和其他的不一样#include<iostream>#include<cstdio>#include<cstring>#原创 2016-05-25 21:01:19 · 512 阅读 · 1 评论 -
hdu5523Game
http://acm.hdu.edu.cn/showproblem.php?pid=5523 情况比较多,要考虑周全,注意n=1时和s,t相邻时#include <iostream>#include <cmath>using namespace std;int main(){ int s,t,n; while(cin>>n>>s>>t) { if(n=原创 2016-05-25 19:54:40 · 242 阅读 · 0 评论 -
hdu5505GT and numbers
http://acm.hdu.edu.cn/showproblem.php?pid=5505题意 给出 n ,m n每次可以成一个数(是n 的因子)问最少多少次乘到m 数据范围m是2^63 而longlong是2^63-1 开成unsigned ll,但是longlong存的话会把2^63存成-2^63,求得时候也没关系,恰好正确。 如果m的素因子中有n的素因子中没有的 肯定不存在 用原创 2016-05-10 13:16:49 · 330 阅读 · 0 评论 -
hdu1754线段树单点更新
http://acm.hdu.edu.cn/showproblem.php?pid=1754#include <iostream>#include <cstring>#include <cstdio>#include <cmath>using namespace std;const int maxn=200005;int MAXN[maxn<<2];void pushup(int rt)原创 2016-03-18 19:53:01 · 250 阅读 · 0 评论 -
hdu1166线段树单点更新
题目(http://acm.hdu.edu.cn/showproblem.php?pid=1166)#include <stdio.h>#include <string.h>int a[50010];struct node{ int left,right,sum;}b[150010];void build(int left,int right,int i){ int m原创 2015-08-07 17:28:31 · 355 阅读 · 0 评论 -
hdu1541树状数组
题意:给n个星星,每个星星按y坐标从小到大,y一样x从小到大输入,然后每个星星的做下区域每包含一个星星(不包括自己),该星星就升一级;最后求等级0~n-1的星星的个数。 #include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <iostream>us原创 2016-03-19 17:12:32 · 231 阅读 · 0 评论 -
hdu2685gcd性质
Problem Description To think of a beautiful problem description is so hard for me that let’s just drop them off. :) Given four integers a,m,n,k,and S = gcd(a^m-1,a^n-1)%k,calculate the S.Input The f原创 2015-09-21 20:20:55 · 533 阅读 · 0 评论 -
hdu1997汉诺塔VII
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1997Problem Descriptionn个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列。由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系 : n=m+p+qa1>a2>...>amb1>b2>..原创 2015-08-20 18:27:44 · 473 阅读 · 0 评论 -
hdu1730Northcott Game nim
http://acm.hdu.edu.cn/showproblem.php?pid=1730 Problem Description Tom和Jerry正在玩一种Northcott游戏,可是Tom老是输,因此他怀疑这个游戏是不是有某种必胜策略,郁闷的Tom现在向你求救了,你能帮帮他么? 游戏规则是这样的: 如图所示,游戏在一个n行m列(1 ≤ n ≤ 1000且2 ≤ m ≤ 100原创 2015-09-09 21:03:12 · 449 阅读 · 0 评论 -
hdu1271整数对
http://acm.hdu.edu.cn/showproblem.php?pid=1271 没有思路,上网看了题解,解法都是差不多。引用别人的思路:首先假设X的第k位拿走,然后加上加上X的和正好等于N! 这样的话 我们可以把X 分解成:X= a+b * 10^k +c * 10^( k+1 ); 这里特别强调一下, a代表的是比第k位后面的低位数子,可能是多位,b仅仅代表一个数值,即你选择拿原创 2015-08-18 16:19:47 · 313 阅读 · 0 评论 -
hdu1285确定比赛名次
题目(http://acm.hdu.edu.cn/showproblem.php?pid=1285) 第一次做拓扑排序,照着网上的模板来敲得。#include <iostream>#include <string.h>using namespace std;const int maxn=501;int map[maxn][maxn]; //存储图的临界阵 int indegree[max原创 2015-08-18 10:52:32 · 267 阅读 · 0 评论 -
hdu1241Oil Deposits
搜索水题 http://acm.hdu.edu.cn/showproblem.php?pid=1241 八个方向如果有@则为同一油田,问共多少油田。#include <stdio.h>#include<iostream>#include<cstring>using namespace std;char s[105][105];int m,n;int f[8][2]={-1,-1,-1,原创 2015-08-18 12:15:42 · 274 阅读 · 0 评论 -
hdu1009
贪心水题,先在nefu上做的,粘到hdu上re,数组应该开大点。#include <iostream>#include <algorithm>#include <stdio.h>using namespace std;struct sa{ int f; int j; double awk;}data[4000];int cmp(const sa &a,const原创 2015-07-11 22:15:58 · 313 阅读 · 0 评论 -
hdu2149巴什博弈
水题。(http://acm.hdu.edu.cn/showproblem.php?pid=2149)#include <iostream>#include <cstdio>using namespace std;int main(){int m,n; while(cin>>m>>n) { if(n>=m) { for(int i=m;i<n;i++)原创 2015-08-06 11:28:07 · 333 阅读 · 0 评论 -
hdu1250 Hat's Fibonacci 高精度
题目(http://acm.hdu.edu.cn/showproblem.php?pid=1250)Problem DescriptionA Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1.F(1) =原创 2015-08-13 17:37:18 · 412 阅读 · 0 评论 -
hdu2438
汽车的左边尽量贴着那个直角点,而汽车的右下后方的点尽量贴着最下面的边。 以O点为原点建立直角坐标系,以角a给出P点横坐标的函数F(a) F(a)= l*cos(a)+(d-x*cos(a))/sin(a); 经求导可证是凸函数,三分查找#include <iostream>#include <stdio.h>#include <math.h>#include <algorithm原创 2015-07-11 21:59:05 · 451 阅读 · 0 评论 -
hdu4355
三分;#include <iostream>#include <stdio.h>#include <math.h>#include <algorithm>using namespace std;const double eps=1e-5;const int MAX=50010;double p[MAX],w[MAX];int n;double equ(double x){ do原创 2015-07-11 21:34:36 · 427 阅读 · 0 评论 -
hdu1079博弈(规律)
不论是月份加一,还是日期加一,奇偶性(月+天)都会改变,2月也是一样,9月30日和11月30日例外。 那么目标日期是11月4日,为奇数。初始日期如果为偶数的话,先者必胜。 考虑特殊是日期,两个特殊日期本来为奇数,移动一步还是奇数。那么会不会在中途经过这两个日期呢。 如果本来为偶数,如果经过特殊日期就会改变奇偶,从必胜到必败。作为先手,不会主动进入特殊日期,而后者不可能从奇数依旧到达特殊日期的奇原创 2015-08-08 10:07:35 · 515 阅读 · 0 评论 -
hdu1299素因子分解
题意: 求方程1/x+1/y=1/n的解的个数 1/3+1/2 与1/2+1/3看作是一组解。 分析: 1/x+1/y = 1/n 设y = n + k; ==>1/x + 1/(n+k)=1/n; ==>x = n^2/k + n; 因为x为整数,k就是n^2的约数。然后对其素因子分解就可以了。#include <iostream>#include <cstrin原创 2015-08-02 09:46:31 · 398 阅读 · 0 评论 -
hdu 1316 How Many Fibs?
题目(http://acm.hdu.edu.cn/showproblem.php?pid=1316)Problem DescriptionRecall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := fn-1 + fn-2 (n >= 3) Given two numbers a and b, calculate原创 2015-08-13 17:27:06 · 226 阅读 · 0 评论 -
hdu2516
斐波那契数列。#include<iostream>#include<cstdio>using namespace std;int num[50];void init(){ int i; num[1]=1;num[2]=2; for(i=3;i<=45;i++) num[i]=num[i-1]+num[i-2];}int main(){ init();原创 2015-09-07 21:25:59 · 508 阅读 · 0 评论 -
hdu3306 Another kind of Fibonacci
题目(http://acm.hdu.edu.cn/showproblem.php?pid=3306)Problem DescriptionAs we all known , the Fibonacci series : F(0) = 1, F(1) = 1, F(N) = F(N - 1) + F(N - 2) (N >= 2).Now we define another kind of Fibo原创 2015-08-15 17:44:42 · 251 阅读 · 0 评论