上一页 1 2 3 4 5 6 7 ··· 12 下一页
  2013年3月2日
摘要: http://poj.org/problem?id=1322题目大意:c种颜色的巧克力,拿出n块,桌子上有m块的概率是多少。如果桌子上出现相同颜色的巧克力那么将2块都吃掉分析:1》台上的巧克力数和当前拿出的巧克力的颜色有关系,设dp[i][j]表示拿出第i块的时候台上有j块巧克力的概率。巧克力i的颜色有两种情况:与桌上的巧克力颜色相同或者是与桌上的巧克力颜色不同状态转移方程为:dp[i][j]=dp[i-1][j-1]*p1+dp[i-1][j+2]*p2;p1=(c-j+1)/c,p2=(j+1)/c;2》状态i仅和i-1有关,可以进行空间上的优化,用滚动数组实现3》当拿出2*n+1奇数次巧 阅读全文
posted @ 2013-03-02 09:51 crying_Dream 阅读(204) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1189设经过位置(i,j)的小球个数为P(i,j),那么落入格子m的小球个数为p(n+1,m),那么概率就是p(n+1,m)/2^n。假设位置(i,j)有铁钉,那么各有p(i,j)/2个小球落入位置(i+1,j)和位置(i+1,j+1);否则球全部落入(i+2,j+1)的位置。代码如下:View Code /*POJ 1189钉子和球*/ #include<stdio.h>#include<string.h>#include<iostream>using namespace std;long long p 阅读全文
posted @ 2013-03-02 09:49 crying_Dream 阅读(232) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=11791》给出的样例,取得的最优值为去掉2边后结果为:4*2*5-7=33。2》对于加法两个最优的相加肯定是最优的,但是对于乘法:求最大值:正数X正数两个都是最大的结果最大正数X负数正数最小,负数最大结果最大负数X负数两个都是最小值结果最大求最小值:正数X正数两个都是最小值结果最小正数X负数正数最大,负数最小结果最小负数X负数两个都最大结果最小要保存子问题的最大值和最小值,还具有点最优子结构,可以用动态规划求解。fmin(i,L)表示以i为首,顺时针长度为L的链的计算结果最小值。fmax(i,L)表示以i为首,顺时针长度为L的链的计算结果最 阅读全文
posted @ 2013-03-02 09:45 crying_Dream 阅读(370) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1338b最小的丑数是1,以后的丑数为在以前的基础上进行*2,*3,*5....那么设第i个丑数为F[i]=min{F[n2]*2,F[n3]*3,F[n5]*5},其中n2,n3,n5....表示进行衍生丑数的下标。暴力的打出1500个丑数要很久很久....才出来结果....代码如下:View Code /* POJ 1338丑数*/#include<stdio.h>#include<iostream>using namespace std;long long f[1505];long long minx(long 阅读全文
posted @ 2013-03-02 09:41 crying_Dream 阅读(169) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=11911>根据公式化简:其中后者是一个已知数。求均方差的最小值就是求出个个棋盘内各数值的平方和最小值。2>棋盘分割分四种情况:竖切(左不动),竖切(右不动),横切(上不动),横切(下不动);3>状态转移方程:f(i,x1,y1,x2,y2)表示以(x1,y1),(x2,y2)为四边形对角线的棋盘切割成i块的各块值总平方的最小值;D(x1,y1,x2,y2)表示棋盘的总分_____________|f(i-1,x1,a+1,x2,y2)+D(x1,y1,x2,a)[横切(上不动)]|f(i-1,x1,y1,x2,a)+D(x 阅读全文
posted @ 2013-03-02 09:40 crying_Dream 阅读(202) 评论(0) 推荐(0) 编辑
  2013年2月23日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3788上HDU看到滚动条‘浙大研究生复试上机考试’最近热议的话题是考研的分数下来了。想直接找工作的我,也在犹豫的边缘,挑了了道题做了一下。代码写的挫死了..o(╯□╰)o1. zoj ac2.xxxzojxxx zoj左右两边的o的数量一样多3.azbojac 其中它是由xxzojxx一次递归而来的.假设为ozojo(a=1, b=1, c=1)递归而来的,那么一次是ozojo -->ozoojoo --> ozooojooo可以发现numa是不变的。numb每次+1,那么变换次数为numb-1。 阅读全文
posted @ 2013-02-23 15:18 crying_Dream 阅读(359) 评论(0) 推荐(0) 编辑
  2013年2月10日
摘要: 208K 16MS 2379B 2013-02-10 23:04:05 1A 蛇年第一A1》机器人有3种属性:横坐标x, 纵坐标y, 面向dir。因此用结构体存机器人的信息,规定E为0, N为1,w为2, S为3 2》 如果是向前走: if(方向==0) x++; if(方向==1) y++; if(方向==2) x--; if(方向==3) y--;3》转弯: 向走转n次:方向dir=(dir+n)%4; 向右转n次:方向dir=(dir-n%4+4)%4;4》判断是否和别的机器人发生碰撞,int visit[i][j]=k,表示坐标为(x, y)处有机器人k5》为了处... 阅读全文
posted @ 2013-02-10 23:46 crying_Dream 阅读(154) 评论(0) 推荐(0) 编辑
  2013年1月27日
摘要: 编辑器加载中... 阅读全文
posted @ 2013-01-27 11:26 crying_Dream 阅读(115) 评论(0) 推荐(0) 编辑
  2013年1月6日
摘要: 堆:分为小根堆和大根堆,就是说堆根的元素的关键字最小(最大);堆排序:Heapsort;时间复杂度:O(nlogn);优点:当题目描述只是说输出第K大或者是最大的数据的时候比快排有优势。快排的时间复杂度为O(nLogn),但是如果是堆排序的话时间复杂度为O(klogn),如果k<<n那么还是选择堆 排序;步骤:1>将待排序size个数据存储在数组内。如果下标2*i<size,那么2*i为i的左子树;如果2*i+1<size,那么2*i+1为i的右子树;2>建立初始堆。从最后一个非叶子节点开始调整,就是size/2。如果是想建小根堆的,建的初始堆堆根元素最大; 阅读全文
posted @ 2013-01-06 17:54 crying_Dream 阅读(212) 评论(0) 推荐(0) 编辑
  2012年11月5日
摘要: HDU 1251http://acm.hdu.edu.cn/showproblem.php?pid=1251Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.注意:本题只有一组测试数据,处理到文件结束.Output对于每个提问, 阅读全文
posted @ 2012-11-05 22:17 crying_Dream 阅读(215) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 12 下一页