看运气抽签啦!
2016-03-17 17:48
281 查看
这是一道很easy的题啦!不过可以引发很多思考耶,一开始还差点被这道题吓住了,不过还好,每一次抽取的纸片都放回了的,并且抽取次数很少,限制条件的范围也比较小,所以直接枚举啦!多的不说,看题!
思考:
1、当n足够大时,显然四重循环不是最优的,要超时(测试通不过),因此还需寻找高效算法(后面会讲)。
2、如果改改题意:每次抽取的纸片不放回且所有元素都不可能相同,那么又该怎样处理?((*^__^*) 嘻嘻……先留给大家思考啦,后面再给讲解!)
#include<stdio.h> int main() { int i,n,m,j,k,l,flag; int a[55]; while(scanf("%d%d",&n,&m)!=EOF) { flag=0; //标识是否找到 for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) { for(j=0;j<n;j++) { for(k=0;k<n;k++) { for(l=0;l<n;l++) if(a[i]+a[j]+a[k]+a[l]==m) { flag=1; break;//找到方案就跳出循环 } } if(flag) break;//继续跳出 } if(flag) break;//继续跳出 } if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }
思考:
1、当n足够大时,显然四重循环不是最优的,要超时(测试通不过),因此还需寻找高效算法(后面会讲)。
2、如果改改题意:每次抽取的纸片不放回且所有元素都不可能相同,那么又该怎样处理?((*^__^*) 嘻嘻……先留给大家思考啦,后面再给讲解!)
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#数据结构之顺序表(SeqList)实例详解
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua和C语言的交互详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 关于C语言中参数的传值问题