97 等价交换(贪心-2)

Description

黑龙江的五常大米全国闻名,每年到了秋天,农民们把自己家的大米到集市上去买,但由于五常地区还是一个比较落后的地方,还实行物物交换,即农民用大米换白面,可以用来蒸馒头啊!每个集市上大米换白面的比例并不相等,如何能用最少的大米换到最多的白面呢?(单位是斤)

Input

输入数据有多组,每组数据的第一行有2个数:m和n,m代表大米的斤数,n代表有n集市,接下来有n行,每行2个数t1和t2,表示在这个集市可以用t1斤的大米换t2斤的白面(只有t2斤的白面)。

Output

输出m斤大米能换到的白面的最大值(结果保留2位小数)

Sample Input

5 3
1 2
4 9
1 5

Sample Output

14.00

 1 #include<iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <stdio.h>
 5 #include <math.h>
 6 using namespace std;
 7 struct sa
 8 {
 9     int t1;
10     int t2;
11     double awp;
12 }data[1000];
13 double cmp(const sa &a,const sa &b)
14 {
15     return a.awp>b.awp;
16 }
17 int main()
18 {
19     double ans;
20     int n,m;
21     while(cin>>n>>m)
22     {
23         for(int i=0;i<m;i++)
24         {
25             cin>>data[i].t1>>data[i].t2;
26             data[i].awp=1.0*data[i].t2/data[i].t1;
27         }
28         sort(data,data+m,cmp);
29         ans=0.0;
30         for(int i=0;i<m;i++)
31         {
32             if(n>=data[i].t1)
33             {
34                 ans+=data[i].t2;
35                 n=n-data[i].t1;
36             }
37
38             else
39             {ans+=n*data[i].awp;break;}
40         }
41         printf("%.2lf\n",ans);
42     }
43     return 0;
44 }

注意else之后一定要跳出for循环

时间: 2024-10-15 05:09:10

97 等价交换(贪心-2)的相关文章

股份合计合计快快快快快快快韩国韩华

http://gz.58.com/jdyd/jh_%E5%8C%97%E4%BA%AC%E6%89%BE%E5%B0%8F%E5%A7%90%E4%B8%8A%E9%97%A8%E6%9C%8D%E5%8A%A1186-0138-3322/ http://gz.58.com/jdyd/jh_%E4%B8%8A%E6%B5%B7%E6%89%BE%E5%B0%8F%E5%A7%90%E4%B8%8A%E9%97%A8%E6%9C%8D%E5%8A%A1186-0138-3322/ http://g

汤谠汕偎于yu436d0y6

http://www.qiushibaike.com/tag/%e6%96%b0%e6%b3%b0%e5%93%aa%e9%87%8c%e6%9c%89%e5%8d%96%e8%bf%b7%e5%b9%bb%e8%8d%af%2b%ef%bd%91%ef%bc%92%ef%bc%98%ef%bc%95%ef%bc%98%ef%bc%92%ef%bc%99%ef%bc%91%ef%bc%92%ef%bc%90.http://www.gxxc.gov.cn/Town/TownDetails?id=9

·【C语的方式规定言】用c编写乘法口诀表

http://search.kankan.com/search.php?keyword=%E9%9D%92%E5%B7%9E%E5%B8%82%E6%89%BE%E6%9C%8D%E5%8A%A1%E5%B0%8F%E5%A6%B9%E4%B8%8A%E9%97%A8%E5%85%A8%E5%A5%97185g2057g2220http://search.kankan.com/search.php?keyword=%E8%AF%B8%E5%9F%8E%E5%B8%82%E6%89%BE%E6%9

【贪心+Treap】BZOJ1691-[Usaco2007 Dec]挑剔的美食家

[题目大意] 有n头奶牛m种牧草,每种牧草有它的价格和鲜嫩度.每头奶牛要求它的牧草的鲜嫩度要不低于一个值,价格也不低于一个值.每种牧草只会被一头牛选择.问最少要多少钱? [思路] 显然的贪心,把奶牛和牧草都按照鲜嫩度由大到小排序,对于每奶牛把鲜嫩度大于它的都扔进treap,然后找出后继. 不过注意后继的概念是大于它且最小的,然而我们这里是可以等于的,所以应该是找cow[i].fresh-1的后继,注意一下…… 1 #include<iostream> 2 #include<cstdio&

ZOJ 3946 Highway Project 贪心+最短路

题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3946 题解: 用dijkstra跑单元最短路径,如果对于顶点v,存在一系列边(ui,v)使得dis[v]最小(dis[v]表示0到v的距离).这些边能且只能选一条,那么我们自然应该选cost最小的那个边了. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #inc

五大常用算法之三贪心算法

贪心算法 贪心算法简介: 贪心算法是指:在每一步求解的步骤中,它要求"贪婪"的选择最佳操作,并希望通过一系列的最优选择,能够产生一个问题的(全局的)最优解. 贪心算法每一步必须满足一下条件: 1.可行的:即它必须满足问题的约束. 2.局部最优:他是当前步骤中所有可行选择中最佳的局部选择. 3.不可取消:即选择一旦做出,在算法的后面步骤就不可改变了. 贪心算法案例: 1.活动选择问题  这是<算法导论>上的例子,也是一个非常经典的问题.有n个需要在同一天使用同一个教室的活动a

poj 3016 K-Monotonic 左偏树 + 贪心 + dp

//poj 3016 K-Monotonic//分析:与2005年集训队论文黄源河提到的题目类似,给定序列a,求一序列b,b不减,且sigma(abs(ai-bi))最小.//思路:去除左偏树(大根堆)一半的节点(向上取整),让左偏树的根节点上存放中位数:每个左偏树的根节点表示一个等值区间//在本题中,我们将一段区间 与 一颗左偏树等同:将求调整给定数列 vi 为不减序列的代价 与 求取数列 bi 等同 1 #include"iostream" 2 #include"cstd

贪心算法:最优装载问题

/*----------------------------------------------------- 给出n个物体,第i个物体的重量为wi. 选择尽量多的物体,使得总重量不超过C. 输入: n和C以及n个整数表示的wi. 输出: 按照输入物体的顺序输出n个用空格分隔的Y或N. Y表示该物体被选中,N表示不被选中. 最后一行输出所选中的物体的个数num和总重量w,用空格分隔. 注意:这个地方每个物体是不可再分割的整体. 思路: 先把所有物体按重量排序(从小到大排序) , 然后贪心选择重量

codeforces219C - Color Stripe DP+贪心

题意:给你n,k,大意就是说给你一个已经涂满颜色长为n的字符串,现有k种颜色可以选择,问你最少要改变多少个箱子的颜色使得相邻箱子之间颜色不同. 解题思路:当k = 2 时单独讨论,不能用贪心,其余情况都可贪心得到. 解题代码: 1 // File Name: 219c.cpp 2 // Author: darkdream 3 // Created Time: 2014年07月26日 星期六 15时45分56秒 4 5 #include<vector> 6 #include<list>