![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acm
文章平均质量分 62
fyy607
这个作者很懒,什么都没留下…
展开
-
PKU1138 Ugly Numbers
刚见到这道题的时候自然想到的方法就是采用下面的函数,直接顺序判断某个数是不是ugly numbers,结果超时了bool isUglyNumber(int a){ while(a%2==0){ a=a/2; } while(a%3==0){ a=a/3; } while(a%5==0){ a=a/5; } if(a==1) return true; else retur原创 2015-06-03 17:12:15 · 348 阅读 · 0 评论 -
HDU 1421
思路分析: # include # include using namespace std; int a[2005],b[2005]; int dp[2005][2005]; int getDP(int i,int j) { if(i<2*j) return 1000000000; if(j==0) return 0; return dp[i][j]; }//针对特殊情况的原创 2015-08-18 18:27:48 · 333 阅读 · 0 评论 -
HDU 2084
经典的dp问题 从上往下,状态转移方程为dp[i,j]=max{dp[i-1][j-1],dp[i-1][j]}+a[i,j] 代码如下;(这是第一次AC的代码,应该可以继续优化,有时间再继续完善) # include # include using namespace std; int a[100][100],dp[100][100]; int main() { //freope原创 2015-08-18 16:58:41 · 624 阅读 · 0 评论 -
hdu1069
题目描述:一组研究人员正在设计一项实验,以测试猴子的智商。他们将以平均时间挂香蕉在建筑物的屋顶,提供给一些块猴子。如果猴子足够聪明,它应当能够通过叠加长方体,并爬上去拿到香蕉。 研究人员有n个类型的块,每种类型的块无限供应。每种类型i的块为长方体与线性尺寸(xi,yi,zi)。 每个长方体可以按任意形状放置。 他们希望确保最高的塔可以通过堆叠模块可以达到屋顶。问题在于,在构建塔,一个块原创 2015-08-16 16:37:33 · 507 阅读 · 0 评论 -
hdu1003 最大子序列的和
题目大意:给出一串数字,求出子序列中的最大和。 思路:典型的dp问题,状态转移方程为:dp[i]=max{dp[i-1],dp[i-1]+a[i]}.设置start和end两个指标,用来记录结果子序列中的开始和结束的位置。 值得注意的是这道题目中的格式要求很多,一开始没太在意所以wrong answer 了好几次。 如下是第一次AC的代码: # include # include us原创 2015-08-16 16:24:06 · 476 阅读 · 0 评论 -
hdu1087
题目大意:下棋比赛,棋子是标有正整数,和“start”和“end”。从起点往终点跳,可以跨越一个甚至多个棋子,但不能后退,且下一个棋子的数值必须大于当前数值,求出从起点到终点的路径中经过的点的数值之和的最大值。也就是求上升子序列中的和的最大值。 思路:动态规划问题,找出递推公式,用数组a[]来存储数据 dp[i]=max{dp[j]+a[i],a[i]} (当j,a[j原创 2015-08-14 11:11:03 · 421 阅读 · 0 评论 -
poj1458 hdu1159
题目大意: 代码如下:# include using namespace std; char s1[1000]; char s2[1000]; int c[1001][1001]; int main() { while(scanf("%s",s1+1)!=EOF) { scanf("%s",s2+1); memset(c,0,sizeof(c)); int n,m,i,j原创 2015-08-13 21:46:12 · 445 阅读 · 0 评论 -
HDU1257最少拦截系统
题目要求: Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大原创 2015-08-26 10:27:57 · 554 阅读 · 0 评论 -
HDU2037 事件排序问题
题目要求: Problem Description “今年暑假不AC?” “是的。” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。 作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国原创 2015-08-24 15:45:59 · 904 阅读 · 1 评论 -
hdu1051 Wooden Sticks
题目大意: 有一堆木棍要放到机器里面处理,第一根放进去的木棍需要1分钟的调整机器的时间,如果后续放进的木根的长度比它长且重量比它重,则不需要重新调整机器,否则要花1分钟时间来再次调整。给出这一堆木根的各自的长度和重量,求需要的最少的时间。 解题思路: 考虑可以将木根排序,以长为第一要素,长度相同时参考重量,贪心算法,按升序排列。由于要标记木根是否已经被原创 2015-08-24 17:36:35 · 672 阅读 · 0 评论 -
HDU1050 Moving tables
题目大意:在一个长走廊里面搬桌子,走廊的两侧都是房间,把桌子从一个房间搬到另一个房间,走廊的宽度每次只允许搬一个桌子,每次搬桌子需要10分钟,问最少多长时间办完。 输入:第一个数t代表测试用例,接下里是n,表示要搬的桌子的总数,接着n行代表每个桌子从房间i搬到房间j 输出:最少需要的时间 解题思路:首先考虑,给出的每次需要搬的房间号,实际情况中是可能从大的房间号往房间号小的房间搬,因原创 2015-08-24 11:37:22 · 612 阅读 · 0 评论 -
poj2231
题目大意:总结起来,相当于给出n个数,求这n个数的任意两个数的差值的绝对值的总和 解题思路:首先,要明确一点,这n个数的输入顺序对结果是没有影响的,为了方便计算,将这些数按照升序排列。 代码如下: # include # include using namespace std; long long int a[100001]; int main () { int N,i,j; l原创 2015-07-27 15:07:42 · 520 阅读 · 0 评论 -
pku1163
# include using namespace std; # define LINE 102 int max(int a,int b) { if(a return b; else return a; } int main() { int N; cin>>N; int a[LINE][LINE]; int dp[LINE]原创 2015-03-13 13:52:44 · 363 阅读 · 0 评论 -
HDU1231 最大连续子序列和
Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。 在今年的数据结构考卷中,要求编写程序得到最大和,现在增加一个要求,即还原创 2015-08-20 11:06:14 · 1037 阅读 · 0 评论