![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM 算法题目解
SUN704093334
快乐如风 快乐如风快乐如风快乐如风快乐如风
展开
-
hdu 1023 Train Problem II
hdu 1023 Train Problem IIhttp://acm.hdu.edu.cn/showproblem.php?pid=1023//C(0) = 1 ; (n+2)*C(n+1) = (4n+2)*C(n);#includeiostream>using namespace std;int a[101][101]={0};int main(){ int n,i,j,l转载 2009-07-14 16:37:00 · 1000 阅读 · 1 评论 -
ACM联系建议
ACM联系建议一位高手的建议: 一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。 下面给个计划你练练:第一阶段: 练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把原创 2009-07-08 16:33:00 · 491 阅读 · 0 评论 -
[计算几何]凸包算法 收藏
[计算几何]凸包算法 收藏 /**//*凸包算法总结:凸包是指覆盖平面坐标系内若干点的面积最小的凸多边形。求凸包的第一步是确定:凸包的定点都在给定的点中。通过几何方法反证很容易得到这一结论。所以,只要从所有点中挑选若干正确的点,按顺序(顺时针或逆时针)排列,就相当与求得了凸包。一种简便的方法是"包裹法"(Gift-Wrapping)。将y坐标最低的点作为凸包的第一个顶点H1(易证,所有点中x转载 2009-07-08 16:58:00 · 3737 阅读 · 3 评论 -
ACM 算法题目解
在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。转载 2009-07-08 14:11:00 · 551 阅读 · 0 评论 -
搜索算法科普型入门文章--Bfs,Dfs和回溯
Bfs,Dfs和回溯 Bfs和dfs都是遍历图(包括隐式的状态树)的方法,搜索的策略略有不同,bfs的策略是尽可能往深处搜索。而bfs则是一层一层搜索,搜索完一层所有的节点后,再进入下一层,对于无向图来说,下面给出bfs和dfs的模板 Bfs(){原创 2009-07-08 14:40:00 · 1162 阅读 · 0 评论 -
Pku acm 2075 Tangled in Cables数据结构题目解题报告(十一)最小生成树:prim算法&二叉查找树
典型的最小生成树算法,题目给出图的邻接矩阵,要求输出最小生成树对应的权值和,本例用prim算法实现。对于图,其生成树中的边也带权,将生成树各边的权值总和称为生成树的权,并将权值最小的生成树称为最小生成树(Minimun Spanning Tree),简称为MST。有两种非常典型的算法:Prim算法和kruskal算法,这两种算法都采用了贪心策略。Prim算法的基本思想是:(1) 在图G=(V,E)转载 2009-07-08 14:45:00 · 713 阅读 · 0 评论 -
排序算法
1排序算法 第10章 排序 10.1基本概念 排序(Sorting)是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个项值有序的序列。作为排序依据的数据项称为“排序码”,也即数据元素的关键码。为了便于查找,通常希望计算机中的数据表是按关键码有序的。如有序表的折半查找,查找效率较高。还有,二叉排序树、B-树和转载 2009-07-08 15:16:00 · 703 阅读 · 0 评论 -
动态规划的状态表示(一)
1动态规划的状态表示(一) 一、引言 问题求解技术,包括两个方面的内容:表示和搜索。在这两个方面的内容中,搜索是重点,表示是基础。不同的状态表示对搜索的效率会产生极大的影响。一个粗糙的状态表示可能使得搜索时要对状态变换进行更多的操作,而采取简洁的表示,搜索时进行的操作可能就显得方便、高效,甚至由于状态表示准确描述了问题的本质,给人以启示,从而找到原创 2009-07-08 15:24:00 · 1153 阅读 · 0 评论 -
ACM算法集1
ACM算法集1一、数论算法1.求两数的最大公约数function gcd(a,b:integer):integer;begin if b=0 then gcd:=aelse gcd:=gcd (b,a mod b);end ;2.求两数的最小公倍数function lcm(a,b:integer):integer;beginif alcm:=a;while lcm mo原创 2009-07-08 15:43:00 · 1192 阅读 · 0 评论 -
ACM算法集2
ACM算法集2三、背包问题*部分背包问题可有贪心法求解:计算Pi/Wi数据结构:w[i]:第i个背包的重量;p[i]:第i个背包的价值;1.0-1背包: 每个背包只能使用一次或有限次(可转化为一次):A.求最多可放入的重量。NOIP2001 装箱问题 有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积 (正整数)。要求从 n原创 2009-07-08 15:44:00 · 621 阅读 · 0 评论 -
ACM算法集3
ACM算法集3五、高精度计算高精度数的定义:typehp=array[1..maxlen] of integer;1.高精度加法procedure plus ( a,b:hp; var c:hp);var i,len:integer;beginfillchar(c,sizeof(c),0);if a[0]>b[0] then len:=a[0] else len:=b[0]原创 2009-07-08 15:45:00 · 538 阅读 · 0 评论 -
ACM算法集4
ACM算法集4十、贪心*会议问题(1) n个活动每个活动有一个开始时间和一个结束时间,任一时刻仅一项活动进行,求满足活动数最多的情况。解:按每项活动的结束时间进行排序,排在前面的优先满足。(2)会议室空闲时间最少。(3)每个客户有一个愿付的租金,求最大利润。(4)共R间会议室,第i个客户需使用i间会议室,费用相同,求最大利润。十一、回溯法框架1. n皇后问题procedur原创 2009-07-08 15:46:00 · 673 阅读 · 0 评论 -
ACM算法集5
ACM算法集5十五、数据结构相关算法1.链表的定位函数loc(I:integer):pointer; {寻找链表中的第I个结点的指针}procedure loc(L:linklist; I:integer):pointer;var p:pointer;j:integer;beginp:=L.head; j:=0;if (I>=1) and (Iwhile jloc:=p;e原创 2009-07-08 15:47:00 · 521 阅读 · 0 评论 -
大整数乘法(C语言实现)
大整数乘法(C语言实现)int mul(int l1,int l2,int a1[101],int a2[101],int c[101]){//计算a1与a2的乘积,结果保存到c中,返回c的长度 int i,j; int y;//进位 int x;//乘积 int z;//余数 int w;//乘积结果的保存位置 for(i=0;i for(i=0;i { for(j=0;j { x=原创 2009-07-08 16:18:00 · 1245 阅读 · 0 评论 -
大整数加法(C程序实现)
大整数加法(C程序实现)int add(int l1,int l2,int a1[101],int a2[101],int c[101]){//计算a1与a2的和,结果可在到c中,并返回c的长度 int i; int len; int k=0;//进位 if(l1 else len=l2; for(i=0;i { c[i]=(a1[i]+a2[i]+k)%10; k=(a1[i]+a2[原创 2009-07-08 16:19:00 · 989 阅读 · 0 评论 -
求算大数(比如100)阶乘的思路
求算大数(比如100)阶乘的思路 /* 可以把n!的结果放在数组中,数组中每个元素都表示n!值的一位. 对整数范围内的n,求n!. 对于输入的n想办法昼精确地估计出n!所占的位数.就能确定数组元素的个数 可以将n!表示成10的次幂,即n!=10^M(10的M次方)则不小于M的最小整数就是 n!的位数,对转载 2009-07-08 16:54:00 · 1014 阅读 · 0 评论 -
优化阶乘算法的探索
优化阶乘算法的探索中国地质大学(武汉) 陈海丰 阶乘(factorial)是基斯顿·卡曼(Christian Kramp, 1760 – 1826)于1808年发明的运算符号。阶乘,也是数学里的一种术语,是指从1乘以2乘以3乘以4一直乘到所要求的数。例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。如果所要求的数是n,则阶乘式是1×2×3×……×n,设原创 2009-07-08 16:56:00 · 1506 阅读 · 2 评论 -
求阶乘--hdu1018--Big Number
主要是使用了下面这个公式:log10(n!)=log10(1*2*3…*n)=log10(1)+log10(2)+…+log10(n)注意:这边的result要用double值,精度比较高,我wrong了一次就因为把它设成float值了代码如下: #include#includeint main(){ int n,t; double result; scan原创 2009-07-09 15:50:00 · 852 阅读 · 0 评论 -
动态规划之最长公共子序列算法
动态规划之最长公共子序列算法算法思想:假设X = (x1, x2, ..., xm), Y = {y1, y2, ..., yn)的最长公共子序列为Z = (z1. z2, ..., zk).则:1.若xm = yn, 则zk = xm = yn,且Zk-1是Xm-1和Yn-1的最长公共子序列;2.若xm != yn, 且zk != xm, 则Z转载 2009-07-08 16:31:00 · 910 阅读 · 0 评论 -
解答Google的一道面试题 收藏
解答Google的一道面试题 收藏 这几天有一道Google的面试题在论坛炒得很火,题目如下:“有一个100层高的大厦,你手中有两个相同的玻璃围棋子。从这个大厦的某一层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略,来得知那个临界层面。”下面给出我的分析和解答。 为了得到两个棋子的最优策略,我们先简化问题,看看一个棋子的情况。如果手中只有一个棋子,为了得知临界层面,你只转载 2009-07-08 16:28:00 · 896 阅读 · 0 评论 -
N! ---HDU 1042
N!Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9907 Accepted Submission(s): 2330Problem DescriptionGiven an integer N(0 ≤ N ≤ 10000原创 2009-07-15 10:07:00 · 962 阅读 · 0 评论 -
hdu 1267 下沙的沙子有几粒?
摘要: f(m,n) =( ((m+n)!)/((m!)*n!) )*(1-n/(m+1)) #includeiostream>using namespace std;int main(){ int i,j,len=1,r=0,temp=0; int a[201][400]={0}; a[1][0]=1; for(i=2;i200;i++)//求1……原创 2009-07-17 11:35:00 · 1392 阅读 · 1 评论 -
ACM PKU 1048 Follow My Logic
ACM PKU 1048 Follow My Logic2009/04/02 0 Comments Follow My Logic 题目重述对于一个逻辑电路和给定的输入值,计算该电路的输出值。该逻辑电路有一个或多个输入端, 零个或多个逻辑门电路,和一个输出端。本题中用标准ASCll字符来表示逻辑电路:横竖导线分别用‘-’和‘|’表示,转折点用‘+’表示,输入端用大写字母‘A’-’Z转载 2009-07-19 11:50:00 · 1084 阅读 · 0 评论 -
1134 ---( Game of Connections )
/*很郁闷的一道题,看通过率本以为很简单,其实就是个数学题,求Catalan数,关于Catalan数,现在做下说明:令h(1)=1,catalan数满足递归式:h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2)该递推关系的解为:h(n+1)=c(2n-2,n-1)/n (n=1,2,3,...)我并不关心其解是怎么求出来的,我原创 2009-07-17 10:40:00 · 974 阅读 · 0 评论 -
HDOJ_ 1133 Buy the Ticket
/*首先告诉这题的公式:(C(m+n, n) - C(m+n, m+1))*m!*n! m个人拿50,n个人拿100 , 所以如果 n>m,那么排序方法数为 0 这一点很容易想清楚 现在我们假设 拿50的人用 ‘0’表示, 拿100的人用 1 表示。 如果有这么一个序列 0101101001001111.......... 当第K个位置出现1的个数多余0的个数时就是一个不合法序列了 假原创 2009-07-17 10:43:00 · 957 阅读 · 0 评论 -
HDOJ_1480 钥匙计数之二 解题报告(解密版)
HDOJ_1480 钥匙计数之二 解题报告(解密版)说明:华东交通大学的周教授提供递推公式,这里特表示感谢,详细注解lcy。Copy codeProblem Description一把钥匙有N个槽,2Input本题无输入Output对2Sample OutputN=3: 104N=4: 904N=5: 5880。。。。。。N=25: 8310566473196300280解题思路:设l转载 2009-07-19 10:12:00 · 959 阅读 · 0 评论 -
石子合并(动态规划)详细解题报告
石子合并(动态规划)详细解题报告2008-03-29 11:07一.试题 在一个园形操场的四周摆放N堆石子(N≤100),现要将石子有次序地合并成一堆。规定 每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 编一程序,由文件读入堆数N及每堆的石子数(≤20), ①选择一种合并石子的方案,使得做N-1次转载 2009-07-19 10:12:00 · 1163 阅读 · 0 评论 -
(pku 1014) (hdu 1059) (zoj 1049) Dividing muhanshu
(pku 1014) (hdu 1059) (zoj 1049) Dividing 前几天看了刘老师关于母函数的课件,顺便找几个题目来热热身.看了1059的题目以后,很快我就把他和母函数联系起来了,于是就动手写了程序,没想到提交就wa掉了,后来发现是在多项式计算的地方出现了问题.后来一个师姐看我做这个题目,她也去动手做了起来.她用的是贪转载 2009-07-20 09:34:00 · 1683 阅读 · 1 评论 -
欧几里德算法
欧几里德算法 1 欧几里德算法原始描述 命题:给定两个正整数,求它们的最大共因子。 设A和C是两个给定正整数;求它们的最大共因子。如果C整除A,则C就是C和A的一个共因子,因为它也整除本身。而且事实上,显然它是最大的,因为再没有比C大的数能整除C了。 但如果C不整除A,则不断地从A,C两数中之大者减去小者,直到得出整除前一数的某个数。这种情况最终一定要发生,因为如果得到的是1,则它就整转载 2009-07-17 11:55:00 · 1723 阅读 · 1 评论 -
一道ACM剑气算法的编程题
无剑无我Problem Description: 北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯。时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从。值此危急存亡之秋,在一个与世隔绝的地方---MCA山上一位江湖人称的人正在为抗击辽贼研究剑法,终于于一雷电交加之夜精确计算出了荡剑回锋的剑气伤害公式。定义 f(x, y, m, n) = sqr转载 2009-07-08 14:36:00 · 951 阅读 · 0 评论 -
Pku acm 2752 Seek the Name, Seek the Fame数据结构题目解题报告(二十)----kmp算法
关于kmp算法,大家都非常熟悉,其涵义非常难懂,以至于我学习kmp算法的时候一直怀疑自己的智商,其具体思想,这里就不多说了,网上也有很多资料,我用的是严蔚敏老师的书,实现也是按说上的方法实现的,推荐大家把kmp算法彻底弄明白了再做poj相关的几道题:2406 Power Strings 1961 Period 2752 Seek the Name, Seek the Fame。该题的题意是这样的,原创 2009-07-08 14:58:00 · 608 阅读 · 0 评论 -
Pku acm 1961 Period数据结构题目解题报告(十九)----kmp算法
关于kmp算法,大家都非常熟悉,其涵义非常难懂,以至于我学习kmp算法的时候一直怀疑自己的智商,其具体思想,这里就不多说了,网上也有很多资料,我用的是严蔚敏老师的书,实现也是按说上的方法实现的,推荐大家把kmp算法彻底弄明白了再做poj相关的几道题:2406 Power Strings 1961 Period 2752 Seek the Name, Seek the Fame。该题的题意是这样的,原创 2009-07-08 14:59:00 · 787 阅读 · 0 评论 -
Pku acm 2406 Power Strings数据结构题目解题报告(十八)----kmp算法
关于kmp算法,大家都非常熟悉,其涵义非常难懂,以至于我学习kmp算法的时候一直怀疑自己的智商,其具体思想,这里就不多说了,网上也有很多资料,我用的是严蔚敏老师的书,实现也是按说上的方法实现的,推荐大家把kmp算法彻底弄明白了再做poj相关的几道题:2406 Power Strings 1961 Period 2752 Seek the Name, Seek the Fame。该题的题意是这样的,原创 2009-07-08 15:00:00 · 1086 阅读 · 1 评论 -
匈牙利算法求二分图的最大匹配----杭电ACM
Pku acm 1466 Girls and Boys数据结构题目解题报告(十七)---- 匈牙利算法求二分图的最大匹配 阅读本文前请先阅读我blog的另一篇文章:匈牙利算法求二分图的最大匹配(2008-4-12).有了匈牙利算法的基础,该题就是一道非常简单的题目了:题目给出一些boy和girl,有一些人有罗曼史,比如A和B有罗曼史,那么B和A就有罗曼史,求最多有多少人,他们之间没有罗曼史,根原创 2009-07-08 15:07:00 · 2048 阅读 · 0 评论 -
拦截导弹问题
USACO 4.3.1 Buy Low, Buy Lower 题解2007年12月02日 星期日 22:47USACO 4.3.1 Buy Low, Buy LowerBuy Low, Buy LowerThe advice to "buy low" is half the formula to success in the stock market. But原创 2009-07-08 15:29:00 · 1432 阅读 · 0 评论 -
并查集 (Union-Find Sets)及其应用
并查集 (Union-Find Sets)及其应用并查集:(union-find sets)是一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多。一般采取树形结构来存储并查集,并利用一个rank数组来存储集合的深度下界,在查找操作时进行路径压缩使后续的查找操作加速。这样优化实现的并查转载 2009-07-08 16:22:00 · 613 阅读 · 0 评论 -
天平数学,12个球称3次
天平数学,12个球称3次 问题:天平数学问题:有12个外观完全一样的球,其中有一个球和其他球的重量不一致,如何使用一个天平称3次得出不一致的球是哪个?解答:方法一12个球:1、2、3、4、5、6、7、8、9、10、11、12第一次:1、2、3、4 | 5、6、7、8假设左侧重,则1、2、3、4中有个重的或者5、6、7、8中原创 2009-07-08 16:25:00 · 3387 阅读 · 1 评论 -
矩阵最大 max sum
矩阵最大 max sum给定一个2维的由正数组成的整数矩阵,找出其中具有最大和的子矩阵。一个矩阵的和就是矩阵中所有元素的和。本题中,具有最大和的子矩阵称为最大子矩阵。子矩阵是指位于整个矩阵中任何一个1×1或更大的连续的子矩阵。例如,在矩阵 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 中其最大子矩阵在其左下角: 9 2原创 2009-07-09 16:14:00 · 803 阅读 · 0 评论