HDOJFatmouse肥鼠交易//c++控制保留小数
2024-09-08 16:55:59
贪心算法.我就不贴题了//no.1009
但是我的代码运行超时了…改了好久都不对…
看别人代码,顺便学习c++控制保留小数怎么操作;
我的错误代码:(时间占用可能是多次调用findmax造成的)
#include <iostream>
using namespace std;
int findmax(double [],int n);
int main()
{
int asset,nshop;
while(~scanf("%d%d",&asset,&nshop),asset,nshop)
{
int s[nshop-1][2],i;
double rate[nshop-1];
while (nshop--)
{
for (i = 0;i<nshop;i++)
{
scanf("%d%d",&s[nshop-1][0],&s[nshop-1][1]);
rate[i] = (double)s[nshop-1][0]/s[nshop-1][1];
}
}
int maxnum;
double ans = 0.0;
maxnum = findmax(rate,nshop-1);
while (s[maxnum][1]<=asset)
{
ans = ans+s[maxnum][0];
asset = asset-s[maxnum][1];
rate[maxnum] = 0.0;
maxnum = findmax(rate,nshop-1);
}
double r = s[maxnum][0]/(double)s[maxnum][1];
ans+=r*asset;
printf("%.3lf\n",ans);
}
return 0;
}
int findmax(double a[],int n)
{
int i,index = 0;
double max = a[0];
for (i = 0;i<n;i++)
if (a[i]>max)
{
index = i;
max = a[i];
}
return index;
}
ac代码:
#include <cstdio> //贪心
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int N,M;
struct node{
int x,y;
double s;
}a[1000];
double cmp(node aa,node bb){
return aa.s>bb.s;
}
int main(){
double sum,ans,w;
int l,k;
while(~scanf("%d %d",&M,&N)){
if(M==-1&&N==-1) break;
for(int i=0;i<N;i++){
scanf("%d %d",&a[i].x,&a[i].y);
a[i].s=(1.0*a[i].x/a[i].y);
}
sort(a,a+N,cmp);//c++内置的sort算法
sum=0.0,ans=0.0;
for(int i=0;i<N;i++){
if(sum<=M){
if(sum+a[i].y<=M){
ans+=a[i].x;
sum+=a[i].y;
}
else{
ans+=a[i].s*(M-sum);
sum=M;
}
}
else {
break;
}
}
printf("%.3lf\n",ans);
}
return 0;
}
最好找时间再做一遍,看看掌握否
下面是c++控制输出:
#include <iomanip> //这是一定要有的头文件
//setprecision括号里的就是保留几位小数
cout<<fixed<<setprecision(2);//最简写法
//还有更复杂一些的写法,我不理解其意义
cout<<setiosflags(ios::fixed)<<setprecision(2);
//或者:
cout.setf(ios::fixed);
cout<<setprecision(2);
最新文章
- Hive中的排序和分组(对map和reduce的影响,值得一看!)
- 原型prototype
- JAVA_DES 加密 解密 生成随机密钥
- Spring 事务管理 01 ——
- android 进程/线程管理(四)----消息机制的思考(自定义消息机制)
- 关于通过JS识别浏览器类型的方法
- delphi 08 HTML组件
- Objective-C路成魔【2-Objective-C 规划】
- NCache:最新发布的.NET平台分布式缓存系统
- 洛谷 P3370 【模板】字符串哈希
- Python——阶段总结(一)
- os模块walk方法
- Breakable loop in Scratch
- 【转】Ubuntu 64位系统安装交叉编译环境一直提醒 没有那个文件或目录
- Luogu4338 ZJOI2018 历史 LCT、贪心
- table给tbody设置滚动条
- 【JS】JavaScript中innerHTML与innerText,createTextNode的区别
- 遇到的问题&;思考
- Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!
- easyui页面上字段排序并与后台交互
热门文章
- 使用Logstash把MySQL数据导入到Elasticsearch中
- 持续集成指南:GitLab 的 CI/CD 工具配置与使用
- 痞子衡嵌入式:一个关于Segger J-Flash在Micron Flash固定区域下载校验失败的故事(SR寄存器BP[x:0]位)
- 使Squashfs可写的办法
- .NET下数据库的负载均衡(有趣实验)(续)
- python基础作业1
- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project StuMavenDemo1: There are test failures.
- 齐博x1where 标签动态变量查询/where 实现条件筛选与数据关联
- SpringBoot整合ES+Kibana
- UVA10763