标题:贪心算法到底是什么东西?????
只看楼主
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
结帖率:85.71%
已结贴  问题点数:20 回复次数:13 
贪心算法到底是什么东西?????
先上题目:
Description
you最近新买了一个房间,为了给它做装修,想要给它铺上地砖。 然而现有的地砖只有两种 规格分别为1米*1米 2米*2米,由于you 买的房间有点小,宽度只有3米。长度为N米。 当然这样一个房间也足够他自己一个人住了。 那么如果要给这么一个房间铺设地砖,且只用上这两种规格的,请问有几种铺设方案。
Input
输入数据首先包含一个正整数C,表示包含C组测试用例,然后是C行数据,每行包含一个正整数n(1<=n<=30),表示房间的长度。
Output
对于每组测试数据,请输出铺设地砖的方案数目,每个输出占一行。
Sample Input
2 2 3
Sample Output
3 5

搜索更多相关主题的帖子: 地砖 正整数 规格 
2011-12-24 19:22
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
得分:0 
占楼上代码:
程序代码:
#include<stdio.h>
int main()
{
    int i,j,sum,flag=0;
    while(1){
    scanf("%d",&sum);
    for(i=0;i<=sum*3;i++)
        for(j=0;j<=sum*3;j++){
        if((i+4*j)==3*sum)
        {flag++;break;}
    }
    printf("%d\n",flag);
    flag=0;
    }
    return 0;
}
这个代码仅仅是测试用的不是为了AC,可是就是和答案不一样.
2011-12-24 19:24
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:7 
貌似还是个斐波那契数列  题目网址发来

                                         
===========深入<----------------->浅出============
2011-12-24 20:17
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
得分:0 
有点像我之前发过的瓷砖覆盖地面的问题,而且这估计是不能用贪心的,只能用DP

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-12-24 20:19
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
给你个贪心的题  第六届全国信息技术应用水平大赛 C语言复赛的 删数问题

2 编程解决如下问题(50分)
  请在整数n=92081346718538中删除10个数字,使得余下的数字按原次序组成的新数最大。要求如下:
  (1)整数n和删除数字的个数“10”在源程序中完成赋值,程序直接输出运行结果;
  (2)程序结果输出先后被删除的数字(之间以逗号分隔)和删除后所得的最大数。

                                         
===========深入<----------------->浅出============
2011-12-24 21:08
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:13 
贪心算法是某些动态规划的特例,要求问题本身有强最优子结构,不具有普遍性。不是哪里都能用的。

而这道题跟贪心没任何关系,它考查的还是递推关系的推导。

我就不解释了,直接告诉答案。
哪位看明白了,请给出解释,我送分哦

f(1) = 1
f(2) = 3
f(n) = f(n-1) + 2*f(n-2)

重剑无锋,大巧不工
2011-12-24 21:11
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
下次楼主发这样的问题时请附上题目的网址,既然决定做题就想实际提交试试。这一题我就是在你们学校OJ是一页页翻才找到的。

重剑无锋,大巧不工
2011-12-24 21:15
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
回复 6楼 beyondyf
第一个1*3的矩形只能放3个1*1的填满   所以只要后面的n-1个的方法数乘1就行了 1*f(n-1)

第一个1*3的矩形如果放2*2的会直接影响到第二个 那么2*2的可以放在2*3上面的(1,1) (1,2) (2,1) (2,2) 然后下面的(3,1) (3,2)用1*1的填充只有一种方法

当然2*2的也可以放在(2,1) (2,2) (3,1) (3,2) 然后上面的(1,1) (1,2)用1*1的填充只有一种方法

所以是2*f(n-2)  那么f(n) = f(n-1)+2*f(n-2) 至于递归边界自己拿笔画就行了
收到的鲜花
  • beyondyf2011-12-24 21:40 送鲜花  10朵   附言:我很赞同

                                         
===========深入<----------------->浅出============
2011-12-24 21:26
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
分析的很有道理,老杨对这类题已经很熟练了嘛

重剑无锋,大巧不工
2011-12-24 21:39
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
回复 9楼 beyondyf
多亏杨大哥早晨的指教   学习了

                                         
===========深入<----------------->浅出============
2011-12-24 21:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-358546-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.130602 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved