HDOJFatmouse肥鼠交易//c++控制保留小数
贪心算法.我就不贴题了//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);
HDOJFatmouse肥鼠交易//c++控制保留小数的更多相关文章
- C++(五)— 控制保留小数位数
1.C++中输出指定保留的小数位数. 这里还要注意,每次输出只要设置一次就行了,因为这两个的作用范围是后续对象,而不是仅对后一个对象起作用. #include<iostream> #inc ...
- java中double变量保留小数问题
(转载自玄影池扁舟) 做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结: java中double类型变量保留小数问题大体分两种情况: (一):小数点 ...
- C++ cout 如何保留小数输出
参考 : http://upliu.net/how-cout-out-2-precision.html 大家都知道用 C 语言中 printf () 函数可以非常方便控制保留 几位小数输出 不过在 C ...
- Javascript 智能输入数字且保留小数点后三位
html: <input type="text" name="cprice" placeholder="最多保留小数点后三位" onk ...
- C++ cout输出保留小数
参考: http://www.cnblogs.com/wushuaiyi/p/4439361.html http://blog.csdn.net/edricbjtu/article/details/4 ...
- 格式化 float 类型,保留小数点后1位
""" 练习 : 小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点, 并用字符串格式化显示出'xx.x%',只保留小数点后1位: &qu ...
- c#保留小数点后位数的方法
Double dValue = 95.12345; ; string strValue = "95.12345"; string result = ""; re ...
- codevs 2988 保留小数 2
2988 保留小数 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 这个难度是吸引你点进来的.(其实难度挺 ...
- 总结C#保留小数位数及百分号处理
方法一: ); 方法二: Math.Round() 方法三: double dbdata = 0.55555; string str1 = dbdata.ToString("f2" ...
- c++保留小数问题,如有不足或错误,欢迎指出
#include<iostream> #include <iomanip> using namespace std; int main() { double a; cin> ...
随机推荐
- nginx配置文件内容详解
events { # 服务器最大链接数 worker_connections 1024; # 设置一个进程是否同时接受多个网络连接,默认为off multi_accept on; #事件驱动模型,se ...
- 6.监控elasticsearch集群---放弃采用(获取不到数据),建议看另一篇文章:监控elasticsearch
prometheus监控es,同样采用exporter的方案. 项目地址: elasticsearch_exporter:https://github.com/justwatchcom/elastic ...
- Request Body Search
官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting-using.html
- 【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问
前言:目前翻译都是在线的,要在C#开发的程序上做一个可以实时翻译的功能,好像不是那么好做.而且大多数处于局域网内,所以访问在线的api也显得比较尴尬.于是,就有了以下这篇文章,自己搭建一套简单的离线翻 ...
- 一篇文章带你掌握主流基础框架——Spring
一篇文章带你掌握主流基础框架--Spring 这篇文章中我们将会介绍Spring的框架以及本体内容,包括核心容器,注解开发,AOP以及事务等内容 那么简单说明一下Spring的必要性: Spring技 ...
- .NET 6 跨服务器联表查询
一.大家是否有这个需求 1.跨品种查询 :比如 MYSQL和一个SQLSERVER进行联表查询 ,或者SQLITE和MYSQL进行联表查询 2.跨服务器查询 : A服务器和B服务器查询 如果想同时支持 ...
- 《基于Apache Flink的流处理》读书笔记
前段时间详细地阅读了 <Apache Flink的流处理> 这本书,作者是 Fabian Hueske&Vasiliki Kalavri,国内崔星灿翻译的,这本书非常详细.全面得介 ...
- 实例分析Scheduled Thread Pool Executor与Timer的区别
摘要:JDK 1.5开始提供Scheduled Thread PoolExecutor类,Scheduled Thread Pool Executor类继承Thread Pool Executor类重 ...
- SpringMVC入手项目注解版
SpringMVC入手项目注解版 1.创建Maven项目在pom.xml文件引入相关的依赖 <dependencies> <dependency> <groupId> ...
- 开源WindivertDotnet
0 前言 Hi,好久没有写博客,因为近段时间没有新的开源项目给大家.现在终于又写了一篇,是关于网络方向的内容,希望对部分读者有帮助. 1 WinDivert介绍 WinDivert是windows下为 ...