ACM刷题
文章平均质量分 75
zhouhong1026
这个作者很懒,什么都没留下…
展开
-
杭电ACM 1005 Number Sequence
Number SequenceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 38553 Accepted Submission(s): 8150Problem DescriptionA number sequence原创 2012-08-07 15:16:32 · 4157 阅读 · 2 评论 -
并查集(不相交集合)基础知识详解
并查集(不相交集合) 文章作者:ktyanny 文章来源:ktyanny 转载请注明,谢谢合作。 早上早早起来看Kruscal的MST算法,原来要用到不相交集合来实现。拿起《算法导论》看完不相交集合这章,顿然茅塞顿开,终于完成并查集的基础知识的学习。《算法导论》真是牛×× 不相交集合有两种不同的实现,链表表示和带路径压缩的按秩合并策略。看到大家都比较喜欢用带路径压缩的按秩转载 2012-07-31 20:19:20 · 1454 阅读 · 0 评论 -
杭电acm题目分类版本1
杭电acm题目分类版本1 2009-10-18 12:51:21| 分类:asdf转载 | 标签:|字号大中小 订阅1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过转载 2012-07-31 20:23:29 · 1019 阅读 · 0 评论 -
POJ题目分类
POJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分转载 2012-07-31 20:27:42 · 895 阅读 · 0 评论 -
动态规划——矩阵连乘的问题
《问题的引出》(《算法设计与分析》,王晓东编著,清华大学出版社2008年1月第2版。)看下面一个例子,计算三个矩阵连乘{A1,A2,A3};维数分别为10*100 , 100*5 , 5*50按此顺序计算需要的次数((A1*A2)*A3):10X100X5+10X5X50=7500次按此顺序计算需要的次数(A1*(A2*A3)):10X5X50+10X100X50=75000次所以原创 2012-08-20 16:05:48 · 1330 阅读 · 0 评论 -
动态规划 (1) HDU 动态规划题集
无法考证原作者是谁,故不注明转载位置1.Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i转载 2012-08-20 15:43:45 · 797 阅读 · 0 评论 -
HDOJ-1232(并查集)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1232AC代码:#include int v[1002];//定义全局变量,v[i]代表城镇。int find(int x){ int r = x; while(r != v[r]) r = v[r]; return r;//返回x所在的集合。原创 2012-08-23 20:42:35 · 1002 阅读 · 0 评论 -
hdoj 1272 小希的迷宫
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1272关键点:1.特别小心输入的格式,这个比较纠结。2.题目的最关键点:(1).所有点的根节点都相同(即下面的count=1),(2).输入路径不存在回来,这里用flag来标记回来(即构成回路,flag=1)3.注意find3(int x)这里用路径压缩的话,速度会快很多(用空间来换原创 2012-08-23 23:40:08 · 797 阅读 · 0 评论 -
最小生成树(kruskal+并查集实现)
题目大意如下:求上图中带权图的最小生成树?具体实现(C++):#include #include #include #define M 9999#define N 6using namespace std;int set[N] = {0,1,2,3,4,5};int edge[N][N] = {{0,6,1,5,M,M},{6,0,5,M,3,M},{原创 2012-08-24 15:48:05 · 697 阅读 · 0 评论 -
最小生成树实现(kruskal+并查集)续
题目:(和上篇的那个题目差不多,不过里用到了路径压缩,所以效率更高。还有就是数据后面输入的,所以,更上篇的那个题目还是有区别。)输入数据:具体实现代码(C++):#include #include #include #include using namespace std;#define MAX 100//定义边(x,y),权值为Wtypedef s原创 2012-08-24 16:08:29 · 898 阅读 · 3 评论 -
并查集算法
/*并查集的基本应用——POJ1611*//************************************************************************大致题意:一共有n个学生(编号0 至 n-1),m个组,一个学生可以同时加入不同的组。现在有一种传染病,如果一个学生被感染,那么和他同组的学生都会被感染。现在已知0号学生被感染,问一共有多少个原创 2012-07-31 20:18:14 · 517 阅读 · 0 评论 -
杭电acm题目分类版本2
杭电acm题目分类版本2 基础题:1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、1090、1091、1092、1093、1094、1095、1096、1097、1098、1106、1108、1157、1转载 2012-07-31 20:24:16 · 1371 阅读 · 0 评论 -
模运算
模运算即求余运算。“模”是“Mod”的音译,模运算多应用于程序编写中。 Mod的含义为求余。模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。虽然很多数论教材上对模运算都有一定的介绍,但多数都是以纯理论为主,对于模运算在程序设计中的应用涉及不多。 例如11 Mod转载 2012-08-08 02:03:19 · 1114 阅读 · 0 评论 -
hdu 1061 Rightmost Digit (模幂运算)
题目:Rightmost DigitTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18913 Accepted Submission(s): 7266Problem DescriptionGiven a posi原创 2012-08-08 10:28:28 · 620 阅读 · 0 评论 -
hdu acm 2091 空心三角形
题目:空心三角形 Problem Description把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。Input每行包含一个字符和一个整数n(0Output每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。原创 2012-08-08 13:48:09 · 1700 阅读 · 0 评论 -
hdu,2050,折线分割平面
这种类型的题目,在acm编程中比较经典,这里我们由浅入深来学习下:(1)在一个平面上有一个圆和n条直线,这些直线中每一条在圆内同其他直线相交,假设没有3条直线相交于一点,试问这些直线将圆分成多少区域。很容易看出递推关系,每新增一条直线,都将原来所有的区域分成两半,因此第n条直线会在原来的基础上再添加n个平面,函数递推关系式如下:递推公式1:f(0) = 1转载 2012-08-11 16:18:57 · 3672 阅读 · 0 评论 -
HDU 2047 阿牛的EOF牛肉串 动态规划
动态分析:每加一个字母会增加... s[i]=2*(s[i-1]+s[i-2]);我的思路:1.先考虑:当第i个元素为E或F时,前i-1个元素所有组合即s[i-1],s[i]=2*s[i-1]2.再考虑:当第i个元素为O时,第i-1个元素可以为E或F,前i-2个元素的所有组合s[i-2],s[i]+=2*s[i-2]AC code:#include #include转载 2012-08-11 21:20:48 · 776 阅读 · 0 评论 -
HDU 2045 递推求解
当n>3时,x[i]=x[i-1]+x[i-2]*2;递推思路:考虑长为n的串,以s[i]表示i位的字符。1.若前n-1位组成的串合法,则由于首尾不同,再添加一位时,只有1种方法;即s[n] = s[n-1] 2.若前n-1位组成的串不合法,再添加一位后合法,即因为首尾相同而引起的不合法,那么前n-2位组成的串必定合法。此时第n位有2种添加方法。即s[n] = 2*s[n-2]原创 2012-08-11 20:00:14 · 680 阅读 · 0 评论 -
hdu acm 2084 数塔
数塔 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 85 Accepted Submission(s) : 47Font: Times New Roman | Verdana | GeorgiaFont Size: ←原创 2012-08-12 10:23:50 · 1093 阅读 · 0 评论 -
hdu 2049 不容易系列之(4)——考新郎
分析:这个道题就是求N中有多少中M个数的错排。因此先找到N个新郎中M个错一共有几种,显然是CMN=N!/(M!*(N-M)!)。即CMN=N!/M!/(N-M)!。然后在求出M个数的错排个数,递推关系:f[n]=(n-1)*(f[n-1]+f[n-2])详细推导过程:错排的情况:首先考虑,如果开始有n-1个新郎,并且这n-1个人都已经完成了错排(有f(n-1)种可能),现在又来原创 2012-08-11 23:19:29 · 7988 阅读 · 0 评论 -
poj1789 Truck History(Prim算法实现)
poj1789 Truck History题意大概是这样的:用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。例如有如下4个编号:aaaaaaabaaaaaa原创 2012-07-30 10:40:14 · 544 阅读 · 0 评论 -
hdoj1233 还是畅通工程
题目:http://acm.hdu.edu.cn/diy/contest_showproblem.php?pid=1009&cid=5825&hide=0 AC代码(C++):#include #include #include #include #define N 121#define M 10000using namespace std;typedef原创 2012-08-24 18:21:28 · 639 阅读 · 0 评论