poj2586Y2K Accounting Bug
来源:互联网 发布:魏晋风骨 知乎 编辑:程序博客网 时间:2024/06/05 08:18
背景:再做这道题的时候,我严重怀疑我的英语能力,o(︶︿︶)o 唉,翻译了一个多小时。
思路:由于本题情况比较少,所以可以直接枚举出所有的情况,首先要找出五个月中最少亏损月份,然后就开始枚举出五种情况,最后输出即可。
#include <stdio.h>void print(int n){ if(n<0) printf("Deficit\n"); else printf("%d\n",n);}void YinKui(int m,int s,int d){ int n=0; if(m==1) n=10*s-2*d; else if(m==2) n=8*s-4*d; else if(m==3) n=6*s-6*d; else if(m==4) n=3*s-9*d; else n=-1; print(n);}void Deficit_Month(int s,int d){ int m; if(d>4*s) m=1; else if(d*2>3*s) m=2; else if(d*3>2*s) m=3; else if(d*4>s) m=4; else m=5; YinKui(m,s,d);}int main(void){ int s,d; while(scanf("%d %d",&s,&d)==2) Deficit_Month(s,d); return 0;}
然后看了同学的代码,发现也可以用贪心算法。
下面附同学的代码
#include<stdio.h> int a[15]; int main () { int s,d; while (scanf("%d%d",&s,&d)==2) { int sum=0; int i,j; for(i=5;i>=0;i--) //一定要写成i>=0 若写成i>0可能出现一种情况i=1的时候sum>0 然后由于i>0退出了 sum仍然>0 { //写成i>=0 则上面那种情况变成i=1时sum>0,i=0时sum<0 break sum=i*s-(5-i)*d; if(sum<0)break; } for(j=0;j<i;j++) a[j]=s; for(j=i;j<5;j++) a[j]=-d; for(i=5;i<12;i++) { a[i]=a[i-5]; sum+=a[i]; } if(sum>0) printf("%d\n",sum); else printf("Deficit\n"); } return 0; }
1 0
- poj2586Y2K Accounting Bug
- POJ2586Y2K Accounting Bug
- POJ2586Y2K Accounting Bug
- POJ2586Y2K Accounting Bug
- Y2K Accounting Bug POJ2586
- poj2586 Y2K Accounting Bug
- POJ2586 Y2K Accounting Bug
- POJ Y2K Accounting Bug
- POJ2586 Y2K Accounting Bug
- POJ2586--Y2K Accounting Bug
- Y2K Accounting Bug
- poj2586 Y2K Accounting Bug
- POJ2586:Y2K Accounting Bug
- POJ2586 Y2K Accounting Bug
- poj2586--Y2K Accounting Bug
- Y2K Accounting Bug(贪心)
- POJ2586-Y2K Accounting Bug
- poj2586 Y2K Accounting Bug
- eth0:ERROR while getting interface flags:No such device问题解决
- sublime text3 格式化html代码
- 一些看了让人心疼的签名
- 远程桌面控制台,有标签页可以管理多个远程桌面
- 进程与线程&同步与异步
- poj2586Y2K Accounting Bug
- http使用
- 自己动手写编译器、链接器-第十章
- 在Delphi与C++之间实现函数与对象共享
- [IOS之应用程序发布到苹果APP STORE完整流程]
- 也谈武媚娘
- 你在按谁的时间表过人生?
- HBase的eclipse操作环境配置
- 事件处理方式 && 消息传递机制