/*
参看博客地址:http://blog.csdn.net/oceanlight/article/details/7857713
重点是取完最优的后剩余的rest=n%lcm+lcm;中性价比小的数目num<lcm/性价比小的体积,因为如果大于的话
肯定可以由性价比好的替换。
然后枚举。从体积大的开始枚举次数少。
注意64位
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define ll __int64
ll gcd(ll a,ll b) {
if(b==0)return a;
return gcd(b,a%b);
}
ll lcm(ll a,ll b) {
return a/gcd(a,b)*b;
}
int main() {
ll t,n,i,k=0,m,a,av,b,bv,aa,maxx,d;
scanf("%I64d",&t);
while(t--){
scanf("%I64d%I64d%I64d%I64d%I64d",&n,&av,&a,&bv,&b);
m=lcm(av,bv);
aa=0;maxx=-1;
if(n/m) {//如果可以lcm<=n
if(a*bv>b*av)
aa+=m/av*(n/m-1)*a;
else
aa+=m/bv*(n/m-1)*b;
}
if(n/m)//如果lcm<=n
m+=n%m;
else
m=n;
if(av<bv) {d=av;av=bv;bv=d;d=a;a=b;b=d;}//av。a记录体积大的
for(i=0;i<=m/av;i++) {//从体积大的开始枚举
if(maxx<aa+i*a+(m-i*av)/bv*b)
maxx=aa+i*a+(m-i*av)/bv*b;
}
printf("Case #%I64d: %I64d\n",++k,maxx);
}
return 0;}

最新文章

  1. IE、FF、Chrome浏览器中的JS差异介绍
  2. PHP限制提现时间-----周一至周五 9点到17点
  3. (null): Linker command failed with exit code 1 (use -v to see invocation)
  4. 【面试必备】Swift 面试题及其答案
  5. 算法大全(c,c++)
  6. chrome emulator use-agent 设置 chrom模拟手机客户端
  7. Linux C程序的编译过程
  8. 基于内嵌Tomcat的应用开发
  9. Python 命令行参数解析
  10. [OI笔记] 最长上升子序列与网络流建模
  11. HTML简单介绍及常见元素
  12. Linux 常用命令使用方法大搜刮
  13. YUI Array 之some(检测|any)
  14. WPF 辅助开发工具
  15. WEB前端需要了解的XML相关基础知识
  16. CF987B - High School: Become Human
  17. pyhton图片合成模块-PIL
  18. xampp启动MySQL出现Error: MySQL shutdown unexpectedly.
  19. FFmpeg封装格式处理2-解复用例程
  20. 使用jquery刷新当前页面、刷新父级页面

热门文章

  1. magento 自建插件通道服务
  2. Android Dialogs(2)最好用DialogFragment创建Dialog
  3. 449 Serialize and Deserialize BST 序列化和反序列化二叉搜索树
  4. [转]查询表达式 (F#)
  5. jquery各种选择器示例
  6. 技术杂记之:vi使用入门
  7. Hadoop YARN学习监控JVM和实时监控Ganglia、Ambari(5)
  8. SceneAction$$FastClassByCGLIB$$7330f7b9.invoke(int, Object, Object[]) line: not available
  9. JavaScript线程
  10. Zed Shaw:程序员的常见健康问题