sicily 6272. n钱m鸡问题

摘要:
Description一只公鸡值五文钱;一只母鸡值三文钱;三只小鸡值一文钱。请问用n文钱买m只鸡的方案有多少种?Input输入有多个case,每个case如下nm其中n,m˂=100,输入以EOF结束。=EOF)7{8for9{10for11{12chick=m-cock-hen;13cost=cock*5+hen*3+;14num=hen+chick+cock;15if16counter++;17}18}19printf;20counter=0;21}22return0;23}实在无奈,只好用比较笨的办法,三个循环,不控制枚举次数,居然成功AC了,但是runtime达到了0.02secViewCode1#include2intmain()3{4intcock,hen,chick,n,m,cost,counter=0;56while(scanf("%d%d",&n,&m)!AC的程序在用10020测试时解出的是1,而WA的那个是5.修改代码查看具体每种解法问题关键出现了,第二种算法把小鸡数为负的状况也算进去了。
Description

一只公鸡值五文钱;

一只母鸡值三文钱;三只小鸡值一文钱

。请问用n文钱买m只鸡的方案有多少种?

Input

输入有多个case,

每个case如下

n m

其中n,m <= 100,

输入以EOF结束。

Output

对于每个case输出一行,

这一行只有一个整数,表示解的个数

后记:除了小鸡数=总数-公鸡数-母鸡数以外,还可以用只有小鸡数能被3整除时才开始计算花费,而不是在枚举时检验花费的同时一起检验小鸡数是否能被3整除的方法进一步减少计算量。

一开始用做实验的算法直接提交,WA无数次,屡改屡败。

被报错n次的其中一种,用小鸡数=总数-公鸡数-母鸡数控制枚举次数

View Code
1 #include<stdio.h>
2 intmain()
3 {
4     int cock, hen, chick, n, m, cost, counter=0, num;
5     
6     while( scanf("%d%d", &n, &m ) !=EOF )
7 {
8         for( cock = 0; cock <= n/5; cock++)
9 {
10             for( hen = 0; hen <= n/3; hen++)
11 {
12                   chick = m - cock -hen;
13                 cost = cock * 5 + hen * 3 + (chick / 3);
14                 num = hen + chick +cock; 
15                  if ( (cost == n) && (num == m) && (chick % 3 ==0)  )
16                   counter++;
17 }
18 }
19         printf("%d\n",counter);
20         counter = 0;
21 }
22     return 0;
23 } 

实在无奈,只好用比较笨的办法,三个循环,不控制枚举次数,居然成功AC了,但是run time达到了0.02sec

View Code
1 #include<stdio.h>
2 intmain()
3 {
4     int cock, hen, chick, n, m, cost, counter=0;
5     
6     while( scanf("%d%d", &n, &m ) !=EOF )
7 {
8         for( cock = 0; cock <= n/5; cock++)
9 {
10             for( hen = 0; hen <= n/3; hen++)
11 {
12                 for( chick = 0; chick <= 3*n; chick++)
13 {
14                     cost = cock * 5 + hen * 3 + (chick / 3);
15                     if ( (cost == n) && (hen + chick + cock == m) && (chick % 3 ==0)  )
16                     counter++;
17 }
18                 
19 }
20 }
21         printf("%d\n",counter);
22         counter = 0;
23 }
24     return 0;
25 }                                 

在自己看来这两种算法本质都差不多,实在想不通为什么会出现不同的情况。于是存下来自己设计测试对比,在用100 20测试的时候发现了不同。

AC的程序在用100 20测试时解出的是1,而WA的那个是5.

sicily 6272. n钱m鸡问题第1张

修改代码查看具体每种解法

sicily 6272. n钱m鸡问题第2张

sicily 6272. n钱m鸡问题第3张

问题关键出现了,第二种算法把小鸡数为负的状况也算进去了。在控制条件里再加一个小鸡数不小于0,成功AC,Run Time 0sec

View Code
1 #include<stdio.h>
2 intmain()
3 {
4     int cock, hen, chick, n, m, cost, counter=0, num;
5     
6     while( scanf("%d%d", &n, &m ) !=EOF )
7 {
8         for( cock = 0; cock <= n/5; cock++)
9 {
10             for( hen = 0; hen <= n/3; hen++)
11 {
12                 chick = m - cock -hen;
13                 cost = cock * 5 + hen * 3 + (chick / 3);
14                 num = hen + chick +cock; 
15                 if ( (cost == n) && (num == m) && (chick % 3 ==0 ) && (chick >= 0)  )
16 {
17                     counter++;
18 }
19 }
20 }
21         printf("%d\n",counter);
22         counter = 0;
23 }
24     return 0;
25 } 

还有一种更简单的办法,声明变量时使用unsigned,就直接避免了负数的出现,也AC了,Run Time 0sec

View Code

免责声明:文章转载自《sicily 6272. n钱m鸡问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇内核模式 定时器学习VS2008 集成SVN工具AnkhSvn介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

web前端常见的加密算法介绍

如今,信息安全越来越受到重视,前端的各种加密变得更加重要。目前,常见的加密算法可分为三种类型的对称加密算法:AES,…不对称加密算法:RSA,…哈希算法:MD5,…对称加密算法对称加密是指使用相同密钥进行加密和解密的加密算法。如果一方的密钥被泄露,加密的信息将是不安全的。使用场景:AESAES用于本地数据加密、https通信、网络传输等:高级加密标准是最常见...

未知账户(S1521)无法删除的问题

只有在“安全”中将所有者设置为当前管理用户后,才能删除此项。单击安全,单击高级,然后单击安全中的所有者以更改为系统的当前用户。...

Protobuf动态解析那些事儿

收到protobuf数据后,如何自动创建特定的ProtobufMessage对象,然后对其进行反序列化。有关Protobuf的技术介绍,请参阅Google协议缓冲区的在线帮助页面或IBM developerworks上的文章“Google协议缓冲的使用和原理”。protobuffer的动态分析并没有在谷歌protobuffer官网上介绍。有关实现,请参阅淘宝...

全网最详细的最新稳定OSSEC搭建部署(ossec-server(CentOS7.X)和ossec-agent(CentOS7.X))(图文详解)

OSSEC是一款开源的基于主机的入侵检测系统,可以简称为HIDS。它具备日志分析,文件完整性检查,策略监控,rootkit检测,实时报警以及联动响应等功能。详细的介绍和文档可以参考官网网站:http://www.ossec.net/环境本文中的环境极其简单,两台CentOS7虚拟机。CentOS7的安装详解服务端:  计算机名:ossec-server  I...

学习Python3 天眼查 爬虫

在开始学习Python时,我不想看基础知识,而且我的记忆力很差。我记不住那些语法,所以我直接去了这个项目。这是相当深刻的。刚好公司有情况需要检查企业的信息,所以我想成为一名爬虫。那些有验证码的人不愿意这样做。这是个大问题。我选择了天眼查,跳过检查过程,直接写下结果。总结的步骤如下:首先,天眼查最大的障碍是字体问题。本网站上有介绍,大致意思是网页上显示的一些字...