上一页 1 ··· 3 4 5 6 7 8 9 10 11 12 下一页

2013年5月9日

POJ 3716 Cow Bowling 数字三角形 简单DP

摘要: 照抄刘汝佳的《算法竞赛入门经典》(较薄的那本)P159 数字三角形两种写法,一个是记忆化搜索,一个是DP,其实之所以要用DP是因为解这个题时出现了大量重叠的子问题用d(i,j)记录从第i 行,第j列出发(从上往下)能得到的最大和(包括自己)转移方程为d(i,j) = a(i,j) + max(d(i+1,j) , d(i+1,j+1));还有一个问题就是关于#define max(a,b) a<b?a:b的用法如果写这样的式子 t = a + max(c,d),怀疑会出错,因为下面的递推式我本来没有写max()函数而是用的这个宏定义,但是就错了,一直出不来正确的结果,还不符合" 阅读全文

posted @ 2013-05-09 19:42 allh123 阅读(258) 评论(0) 推荐(0) 编辑

2013年5月8日

shanghai 2000 regional 2031 dance dance revolution DP

摘要: 2031 - Dance Dance RevolutionAsia - Shanghai - 2000/2001//https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=32看代码中的注释View Code 1 //怀特先生跳舞 2 #include <cstdio> 3 #define MAXN 100005 4 #define INF 100000000 5 int cur; 6 int a[MAXN]; 阅读全文

posted @ 2013-05-08 18:11 allh123 阅读(145) 评论(0) 推荐(0) 编辑

2013年5月7日

ZOJ 3703 Happy Programming Contest (0-1背包,稍微加点处理)

摘要: 先按做完题目的时间排序,在确定自己要做哪些题后,先做时间短的,这样能保证等的时间是最短的,在这里,能保证罚时会是最少的。然后0-1背包,0-1背包时先只管价值最大,在背包完后当价值一样时,再管题目做的多,题目数量一样时再管罚时少。贴代码,代码中有注释:View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define INF 0x7fffffff//int类型中最大的正整数 5 using namespace std; 6 struct node1 7 { 8 阅读全文

posted @ 2013-05-07 21:18 allh123 阅读(211) 评论(0) 推荐(0) 编辑

2013年5月5日

棋盘切割 DP POJ 1191

摘要: 把方差公式先变形为σ2 = (1/n)∑xi2-xa2xa为平均值。由于要求标准差最小,只需方差最小,平均值都是一样的,n也是一样的,这样原问题就变为求这n快小棋盘总分的平方和最小考虑左上角为(x1,y1),右上角为(x2,y2)的棋盘,设该棋盘切割K次后得到的K+1块矩形的总分平方和最小值为d[k,x1,y1,x2,y2]。该棋盘的总分平方和为s[x1,y1,x2,y2].则它可以沿着横线切,也可以沿着竖线切,然后选一块继续切(这里可以用递归完成)状态转移方程为d[k,x1,y1,x2,y2] = min{min{ d[k-1,x1,y1,a,y2] + s[a+1,y1,x2,y2] , 阅读全文

posted @ 2013-05-05 16:24 allh123 阅读(171) 评论(0) 推荐(0) 编辑

2013年5月4日

DP Brackets Sequence POJ 1141

摘要: 题意就是给一个字符串,字符串中只含(,),[,].加入这四种字符,要你插入一些字符,使得这段字符串是正确的,要求加入的字符数目最少。正确的定义就是一般意义上的正确。。。。比如([)就是错误的,([])就是正确的。题目要求的是输出加入最少数量的字符后,字符串正确了,输出该正确的字符串,感觉DP一般会让你输出最少加多少个字符啊,结果让我输正确的结果,蒙了,我不会,就抄了别人的,下面的代码是别人的,但是我忘了从哪里抄来的了,反正是百度的。。。。。希望原作者勿怪。。。贴代码:注意注释View Code 1 //如果原括号出现(S'),[S'],只需用最少的步数把S'化为正确的即 阅读全文

posted @ 2013-05-04 20:26 allh123 阅读(188) 评论(0) 推荐(0) 编辑

2013年4月28日

奇数幻方 程序实现 C++,linux系统下的codeblocks写的,估计里面的清屏函数windows下不能被调用

摘要: 该程序实现了输入一个正的奇数n,输出一个n阶幻方的解(解不唯一,但是该程序只输出一个解)。幻方是最古老且最流行的数学游戏之一,它曾激起很多重要历史名人的兴趣。一个n阶幻方就是由一个整数1,2,3,·······,n^2按照下面的方式构成的n*n阶矩阵:它的每一行和每一列以及两条对角线上的数字总和相等,都等于某个整数s,这个s被称为这个幻方的幻和。n 阶幻和中所有整数的和是1+2+3·······+n^2 = n^2*(n^2+1)/2.所以s =n*(n^ 阅读全文

posted @ 2013-04-28 19:08 allh123 阅读(607) 评论(0) 推荐(0) 编辑

输入初始单纯形表后的单纯形程序,线性规划 未写完

摘要: 虽然学了单纯形,但学得很差,终于看着书把最简单的例子给写出来了,对不起白老师啊(教我们运筹学的老师)。该程序执行的初试条件是自己把初试单纯形表搞出来,本程序只负责进行迭代,(偷笑)。唉,希望有人能得到帮助,本来做这个题是为了去解一个线性规划的题的,但感觉有点麻烦,还是先歇着吧,看以后变强了再来A这个实数幻方的题该题链接:http://122.207.68.93/OnlineJudge/problem.php?cid=2031&pid=9Problem J: Real Numbers Magic Square咳咳,以后再说吧贴代码:View Code 1 //这里在找进基变量和出基变量时 阅读全文

posted @ 2013-04-28 16:41 allh123 阅读(212) 评论(0) 推荐(0) 编辑

2013年4月27日

POJ 1087 ZOJ 1157 插头和插座 网络流 繁琐 不喜欢

摘要: 这个题的做法我已经知道,就是先构造出图,用网络流算法走个最大流,由于只有插头插座两种,也可以用二分图(二部图)匹配,但是要我写代码,感觉很烦躁,拖了很久,终于用网络流A了它。记录第一次用map,呵呵。因为老是要做查找操作,所以试试map,希望能省点时间。构图方式如下:加入超源点s和超收点ts点到所有插座的容量为1(因为该插座只有一个)设备要用的插头到t点的容量为该类型插头的个数(例如有3个设备是B插头,插头B到t的容量为3)插头能直接插在插座上(名字相同),那么插座到插头的容量为无穷。插头能通过交换器连接到插座上,该插座到插头的容量也为无穷,用最大流算法求出能输送多少到超收点。再用设备数-该值 阅读全文

posted @ 2013-04-27 20:09 allh123 阅读(214) 评论(0) 推荐(0) 编辑

2013年4月26日

HDU 1271 整数对

摘要: 这个题算是数论类吧,也许也就是水题级别,不过我估计是很难想出来的````首先你自己拿个数试一下比较好看出来规律。比如 A = 3457拿掉数字5B = 347把A写成34*10^2+5*10^1+7B写成34*10+7更一般地,如果拿掉的是第k位数字(0<=k<=log10(N)),A = a*10^(k+1)+b*10^k+c.(其中a为数字b之前的数,c为数字b之后的数)然后B = a*10^k+c有方程A+B=N,带入,得11*10^k*a+10^k*b+2*c = N,10^k*b<=9*10^k,2*c<2*10^k ,所以有10^k*b+2*c < 1 阅读全文

posted @ 2013-04-26 00:34 allh123 阅读(114) 评论(0) 推荐(0) 编辑

2013年4月25日

DFS HDU 1518 Square

摘要: 因为n<=20,较小,用DFS,但是要剪枝,不然就TLE这个题是校队讨论时ZZM说的,然后里面有讲到一种错误的思路,用0-1背包恰好背满边长,边长的2倍 ,边长的三倍,边长的四倍事实上,如果数据是7 7 2 1 7 8就是一个反例,每种都能背满,但是无法构成四边形。然后我自己先写了一个DFS,用四个数d1,d2,d3,d4来存状态,对于每根棍子,有四种可能,分别是放d1,d2,d3,d4里,再往里搜,回退的时候,d1,d2,d3,d4回到原来的状态。一个剪枝是当d1,d2,d3,d4中出现大于边长的值就return,不往下搜了。还有就是已经搜到可行解了,也不搜了。这样最坏情况下复杂度为O 阅读全文

posted @ 2013-04-25 18:56 allh123 阅读(171) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 11 12 下一页

导航