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

2011年7月31日

poj1012-Joseph

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303803255大致题意:有k个坏人k个好人坐成一圈,前k个为好人(编号1~k),后k个为坏人(编号k+1~2k)现在有一个报数m,从编号为1的人开始报数,报到m的人就要自动死去。问当m为什么值时,可以使得在出现好人死亡之前,k个坏人先全部死掉?PS:当前一轮第m个人死去后,下一轮的编号为1的人 为 前一轮编号为m+1的人 前一轮恰好是最后一个人死掉,则下一轮循环回到开头那个人报“1”解题思路:经典的约瑟夫水题由于k值比较少(1~13),暴力枚举m就可以了递推公式为:ans[i]; / 阅读全文

posted @ 2011-07-31 15:43 小優YoU 阅读(423) 评论(0) 推荐(1) 编辑

POJ1159-Palindrome

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300587979设原序列S的逆序列为S' ,则这道题目的关键在于,最少需要补充的字母数 = 原序列S的长度 — S和S'的最长公共子串长度这个公式我不证明,不难证剩下的就小意思了,最基础的LCS题。注意本题空间开销非常大,需要适当的处理手法先看看几种不同的申请空间方法的区别:1. 静态数组 开销大小为5001*5001的int是铁定超的.据说用short int的话不会MLE,有兴趣的同学可以试试2. 动态数组 单纯的申请动态数组是不能解决这个问题的,动态数组只能增加空间 阅读全文

posted @ 2011-07-31 12:19 小優YoU 阅读(378) 评论(0) 推荐(1) 编辑

POJ1080-Human Gene Functions

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300550378LCS的变形而已 注意LCS的子串可以是离散的,不必连续,用动态规划设dp[i][j]为取s1第i个字符,s2第j个字符时的最大分值则决定dp为最优的情况有三种(score[][]为s1[i]和s2[j]两符号的分数):1、 s1取第i个字母,s2取“ - ”: dp[i-1][j]+score[ s1[i-1] ]['-'];2、 s1取“ - ”,s2取第j个字母:dp[i][j-1]+score['-'][ s2[j-1] ];3、 阅读全文

posted @ 2011-07-31 12:16 小優YoU 阅读(270) 评论(1) 推荐(1) 编辑

POJ1163-The Triangle

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300454092和POJ3176一模一样,不懂做这题的去看看我对3176的解释这是地址http://blog.csdn.net/lyy289065406/article/details/6648150不骗人,确实是一模一样的代码O(∩_∩)O哈哈~ 1 //Memory Time 2 //232K 0MS 3 4 #include<iostream> 5 using namespace std; 6 7 int max(int a,int b) 8 { 9 return a& 阅读全文

posted @ 2011-07-31 12:14 小優YoU 阅读(149) 评论(0) 推荐(0) 编辑

POJ3176-Cow Bowling

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300453935大致题意:输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线。规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个。解题方法:用二维数组way[][]靠左存储三角形内的数据,那么连线规则变更为way[i][j] → Way[i+1][j]或 Way[i][j] → Way[i+1][j+1]注意:way[][]初始化为输入时的三角形数值,此时way[i][j]表示该点位置上的权值,没输入的位置初始化为0。解题思路: 阅读全文

posted @ 2011-07-31 12:12 小優YoU 阅读(229) 评论(0) 推荐(1) 编辑

POJ2533-Longest Ordered Subsequence

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1300023619提示:动态规划,求LIS最大不下降子序列O(n^2)和O(n*logn)算法都能完美AC不懂的就去看看LIS的概念就会做了我把两种算法都贴出来: 1 //Memory Time 2 //228K 16MS 3 4 //O(n^2)算法 5 #include<iostream> 6 using namespace std; 7 8 int main(int i,int j) 9 {10 int n;11 while(cin>>n)12 {13 in 阅读全文

posted @ 2011-07-31 12:07 小優YoU 阅读(236) 评论(0) 推荐(0) 编辑

POJ1260-Pearls

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1300164274大致题意:给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。【规定买任一类的珍珠n个(价格为p),都要支付(n+10)*p的钱,即额外支付10*p】例如样例Input的第二个例子:31 101 11100 12需要买第一类1个,第二类1个,第三类100个按常规支付为 (1+10)*10 + (1+10)*11 + (100+10)*12 = 1551元(一共买了102个珍珠)但是如果全部都按照第三类珍珠的价格支付,同样是买102 阅读全文

posted @ 2011-07-31 12:03 小優YoU 阅读(692) 评论(0) 推荐(0) 编辑

POJ1836-Alignment

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300076744解题思路:是POJ2533的扩展题。题意不难,令到原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处。就是使新队列呈三角形分布就对了。但这里有一个陷阱,看了一些别人的解题报告说“任一士兵旁边不能存在等高的士兵”,然后又举了一个例子说注意35 5 5 的情况,我没看他们的程序,不知道他们是不是把这些例子特殊处理了,但完全没必要,因为“允许处于三角形顶部的两个士兵等高”,图形化就是如下图:其实蓝色士兵的身高和红色士兵的身高是完全没有关系的。要求最少出 阅读全文

posted @ 2011-07-31 12:00 小優YoU 阅读(1169) 评论(1) 推荐(1) 编辑

POJ3267-The Cow Lexicon

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299653270解题思路动态规划题意就是给出一个主串,和一本字典,问最少在主串删除多少字母,可以使其匹配到字典的单词序列。PS:是匹配单词序列,而不是一个单词不多说,看程序主要是知道状态方程的含义dp[i]表示从message中第i个字符开始,到第L个字符(结尾处)这段区间所删除的字符数,初始化为dp[L]=0由于我的程序是从message尾部向头部检索匹配,所以是下面的状态方程:从程序可以看出,第i个位置到L所删除的字符数,总是先取最坏情况,只有可以匹配单词时才进入第二条方程进行状态 阅读全文

posted @ 2011-07-31 11:47 小優YoU 阅读(510) 评论(0) 推荐(0) 编辑

POJ1276-Cash Machine

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299341477提示:动态规划,多重背包题目大意:有各种不同面值的货币,每种面值的货币有不同的数量,请找出利用这些货币可以凑成的最接近且小于等于给定的数字cash的金额。初始思路:多重背包问题,第i种面额d[i]有 n[i]+1种选择方案可以转化为01背包问题处理转化的大概思路就是把 每种面值乘以其不同的个数,把得到的不同金额作为一件新的独一无二的货币,但是这样存在两个问题,一是 d[i]*ki 可能等于 d[j]*kj ,其中ki ∈n[i],kj∈n[j],二是这样做一定TLE超时 阅读全文

posted @ 2011-07-31 11:42 小優YoU 阅读(1385) 评论(1) 推荐(0) 编辑

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

导航