uva12325 暴力枚举
这题刚开始我就贪心,直接wrong了,贪心适合可以取一个物体部分的题。
还是老实枚举吧,注意枚举要分类,不然可能会超时,还有注意答案是long long
AC代码:
#include<cstdio> //贪心会错
#include<algorithm>
using namespace std;
const int maxn=100500; //枚举的最大上限
int gcd(int a,int b) {
return b==0?a:gcd(b,a%b);
}
int main() {
int T;
scanf("%d",&T);
int n,s1,v1,s2,v2;
int kase=0;
while(T--) {
scanf("%d%d%d%d%d",&n,&s1,&v1,&s2,&v2);
long long ans=-100;
//先判断n/s1和n/s2是否够大,不至于超时
int cnt1=n/s1,cnt2=n/s2;
int cnt=min(cnt1,cnt2);
if(cnt<maxn) { //符合条件
if(cnt==cnt1) {
for(long long i=0;i<=cnt;++i) {
long long tmp=0;
tmp+=i*v1;
tmp+=(n-i*s1)/s2*v2;
ans=max(ans,tmp);
}
}
else if(cnt==cnt2) {
for(long long i=0;i<=cnt;++i) {
long long tmp=0;
tmp+=i*v2;
tmp+=(n-i*s2)/s1*v1;
ans=max(ans,tmp);
}
}
}
else {
int d=s1*s2/gcd(s1,s2);
cnt1=d/s1,cnt2=d/s2;
if(cnt1*v1>cnt2*v2) {
for(long long i=0;i<cnt2;++i) {
long long tmp=0;
tmp+=i*v2;
tmp+=(n-i*s2)/s1*v1;
ans=max(ans,tmp);
}
}
else {
for(long long i=0;i<cnt1;++i) {
long long tmp=0;
tmp+=i*v1;
tmp+=(n-i*s1)/s2*v2;
ans=max(ans,tmp);
}
}
}
printf("Case #%d: %lld\n",++kase,ans);
}
return 0;
}
如有不当之处出欢迎指出!
uva12325 暴力枚举的更多相关文章
- CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)
题意:求定 n 个数,求有多少对数满足,ai^bi = x. 析:暴力枚举就行,n的复杂度. 代码如下: #pragma comment(linker, "/STACK:1024000000 ...
- 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)
/* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> #include<cstri ...
- HNU 12886 Cracking the Safe(暴力枚举)
题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12886&courseid=274 解题报告:输入4个数 ...
- 51nod 1116 K进制下的大数 (暴力枚举)
题目链接 题意:中文题. 题解:暴力枚举. #include <iostream> #include <cstring> using namespace std; ; ; ch ...
- Codeforces Round #349 (Div. 1) B. World Tour 最短路+暴力枚举
题目链接: http://www.codeforces.com/contest/666/problem/B 题意: 给你n个城市,m条单向边,求通过最短路径访问四个不同的点能获得的最大距离,答案输出一 ...
- bzoj 1028 暴力枚举判断
昨天梦到这道题了,所以一定要A掉(其实梦到了3道,有两道记不清了) 暴力枚举等的是哪张牌,将是哪张牌,然后贪心的判断就行了. 对于一个状态判断是否为胡牌,1-n扫一遍,然后对于每个牌,先mod 3, ...
- POJ-3187 Backward Digit Sums (暴力枚举)
http://poj.org/problem?id=3187 给定一个个数n和sum,让你求原始序列,如果有多个输出字典序最小的. 暴力枚举题,枚举生成的每一个全排列,符合即退出. dfs版: #in ...
- hihoCoder #1179 : 永恒游戏 (暴力枚举)
题意: 给出一个有n个点的无向图,每个点上有石头数个,现在的游戏规则是,设置某个点A的度数为d,如果A点的石子数大于等于d,则可以从A点给每个邻接点发一个石子.如果游戏可以玩10万次以上,输出INF, ...
- CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)
问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...
随机推荐
- 流API--流的迭代
虽然流不是数据存储对象,但是仍然可以使用迭代器来遍历其元素,就如同使用迭代器遍历集合中的元素一样. 流API支持2类迭代器,一类是传统的Iterator,另一类是JDK8新增的Spliterator. ...
- android新建项目
MinMum Required SDK :最低支持的Android api的版本,你的应用不能在低于这个版本的手机上面运行 Target SDK:你的应用最高支持android api版本 Compi ...
- 手把手 学习Git
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- 面向对象_04【关键字:super使用】
super关键字:解决当子类重写父类对象方法后,子类对象无法访问父类的成员1,调用父类成员变量和方法 super.成员变量 super.成员方法([参数1,参数2.......])Example: / ...
- javascript中this指向问题
本文参考http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html this是JavaScript的一个关 ...
- Jmeter3.1 使用技巧
一.JMeter官网 下载地址 http://jmeter.apache.org/download_jmeter.cgi Jmeter wiki https://wiki.apache.org/jme ...
- git修改目录名称
同步代码 $ git pull origin master 修改某个目录名称 $ git mv doc docs 把doc目录修改为docs 提交至远程仓库 $ git push origin mas ...
- canvas将图片转为base64
最简例子 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta ...
- bzoj 1930: [Shoi2003]pacman 吃豆豆 [费用流]
1930: [Shoi2003]pacman 吃豆豆 题意:两个PACMAN吃豆豆.一开始的时候,PACMAN都在坐标原点的左下方,豆豆都在右上方.PACMAN走到豆豆处就会吃掉它.PACMAN行走的 ...
- 利用Effmpeg 提取视频中的音频(mp3)
在B站看到一个up发的病名为爱的钢琴曲,感觉很好听,然后当然是要加入歌单啊.然而不知道怎么转换成mp3,找来找去找到了EFFmpeg 这篇只是达到了我简单的需求,以后可能会有EFFmpeg更详细的使用 ...