P2637 第一次,第二次,成交!
题目描述
因为奶牛们的节食运动(奶牛还节食?)给农夫JOHN余下了一大批干草无法处理,所以他准备要开一个拍卖会去出售他的干草。他有N(1<=N<=1000)批干草(每批大约100捆)。他的客户有M个(1<=M<=1000),都是和他相邻的农夫。 第I名农夫会告诉农夫JOHN他会为农夫JOHN的每批干草付P_i的钱(1<=P_i<=1,000,000)。每个农夫都想买(也只想买)农夫JOHN的一批草料。 为了确保农夫们不会互相嫉妒,所以农夫JOHN决定要以一个固定的价格出售他的草料。每一个出价比农夫JOHN的要价要高的农夫将会买到草料,余下的将会被拒绝购买:< 请你帮助农夫JOHN找出能让他赚到最多的钱的最低的单批草料的售价。
输入输出格式
输入格式:
* 第一行:两个被空格隔开的整数,N和M * 第二行到第M+1行:第I+1行只包含一个整数:P_i
输出格式:
第一行:由空格隔开的两个整数:农夫JOHN能出的每批草料的最低价格,以及他能赚到的最多的钱
输入输出样例
说明
输入样例解释:
农夫JOHN有5批草料,4个农夫想要购买。他们出价分别为:每批草料为2,8,10和7。
输出样例解释:
农夫JOHN应该把价格设定为7,这样会有3个农夫会付钱买草料,农夫JOHN自己会挣到21的钱。
/*
要让john卖更多的钱。
我们把每个农夫出的钱降序排序。
枚举每个农夫 i=1 -> m ,
那么i和i之前的农夫 1->i 都可以用p[i]的价格买到草料,
所以 ans=max(ans,p[i]*min(i,n)),
为什么要写min(i,n),
是因为 可能会出现草料比农夫多的情况,
但是最多只会有n个农夫来买草料,多余的(m-n)批草料是不会有人买的。
所以,我们也可以直接让i枚举到min(n,m)
然后让ans=max(ans,p[i]*i)就行了。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; const int N=1e3+; int n,m;
int p[N]; int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;++i)
scanf("%d",&p[i]);
sort(p+,p+m+,greater<int>() );
int ans_sum=,ans_min=;
// for(int i=1;i<=m;++i)
// {
// if(ans_sum<p[i]*min(i,n))
// {
// ans_sum=p[i]*min(i,n);
// ans_min=p[i];
// }
// }
for(int i=;i<=min(n,m);++i) //也可以这样写,直接枚举到min(人,草)
{
if(ans_sum<p[i]*i)
{
ans_sum=p[i]*i;
ans_min=p[i];
}
}
printf("%d %d",ans_min,ans_sum);
return ;
}
P2637 第一次,第二次,成交!的更多相关文章
- 洛谷P2637第一次,第二次,成交! 模拟?DP?
今天水来一天,就贴道水吧.. 原题>>https://www.luogu.org/problem/show?pid=2637<< 题目描述 因为奶牛们的节食运动(奶牛还节食?) ...
- OO第一次博客作业
OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...
- 广州商学院16级软工一班&二班-第二次作业成绩
作业地址 https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 https://edu.cnblogs.com/campus/gzc ...
- Morris.js和flot绘制折线图的比较
[文章摘要] 最近用开源的AdminLTE做框架感觉效果特别好,其针对图表库Morris.js和flot都提供了不错的支持,也都提供了这两者的例子.不过Morris.js是基于Raphael.js来的 ...
- CCNA网络工程师学习进程(3)常规网络设计模型与基本的网络协议
本节介绍分层的网络设计模型与基本的网络协议,包括ARP协议,ICMP协议和IP协议. (1)三层网络架构: 一个好的园区网设计应该是一个分层的设计.一般分为接入层.汇聚层(分布层).核 ...
- 谢谢博客-园,让我不再有开源AYUI的想法
第一次 第二次 教程不会在博客园上写了,具体的看我官网博客吧,谢谢大家了 ================= 我是个有素质的程序员 艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹 ...
- “康园圈--互联网+校园平台“项目之Sprint3
sprint3任务列表 1.部署项目内测版上线,并绑定相应域名. 2.添加测试用的模拟数据. 3.写已实现功能及效果汇报文档. 4.写项目总结博客. 5.记录并分析用户反馈. 看板动态 第一次 第二次 ...
- “康园圈--互联网+校园平台“项目之sprint2
一.sprint2任务列表 1.部署框架,并上传代码到github. 2.原型设计 * 设计首页界面原型(包括功能公告.快速通道等展示栏) * 设计店铺浏览页面原型 * 设计店内浏览页面原型 * 设计 ...
- KTV点歌系统
经过十多天的艰苦奋战,MyKTV点歌系统终于成型,从刚开始接到项目的茫然,到完成项目时的喜悦,整个过程的艰辛和付出只有自己知道.虽然这个项目还有许多需要完善的地方,譬如添加歌词信息,实现窗体的美化等, ...
随机推荐
- Spring Boot的配置文件-yml文件的集合配置方式
yml集合数据的表示方式: 这种方式是配置普通的字符串—— 如果集合中装的是对象,就这么配置—— 行内配置方式—— map的配置方式——
- oracle-3-Linux-11g安装-静默安装
oracle下载地址:https://www.oracle.com/database/technologies/112010-linx8664soft.html 系统是最小化安装的Centos7.2 ...
- linux学习之路(一)--centos7安装JDK
一.卸载centos自带jdk 1.rpm -qa | grep java 查看包含“java”关键字的安装包. 2.然后通过 rpm -e --nodeps 后面跟系统自带的jdk名 ...
- K380键盘IOS使用
- VMware Workstation Pro 15 序列号
VMware Workstation Pro 15 序列号: GA70H-8TYE2-H886P-04YZC-YVA84 YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8 UG5J2-0ME ...
- jmeter接口测试中的用例数据分离
用jmeter做接口测试的话,一个jmx文件就可以是一个用例,而用例的设计多数还是等价类.边界值等方法.用例越来越多的时候,维护比较麻烦,所以可以把用例的数据存在csv文件中,然后通过组件(CSV D ...
- netcore使用EFcore(第一个实例)
说明:搭建netcore 使用efcore入门教程,跟着这个教程,傻瓜都可以成功!O(∩_∩)O哈哈~,咱们开始吧: 首先介绍下环境: vs2017, netcore2.2, EntityFramew ...
- 3_PHP表达式_2_变量
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP变量可分为自定义变量和预定义变量. 以下所谈到的变量均为自定义变量. 1.变量的基本概念 PHP的变量名遵循 ...
- 【转】使用Scanner输入字符串时next()和nextLine()区别
在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较简单.在编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但 ...
- 简单理解undefine和null的区别
直接进入主题: 相同点:都表示“值的空缺” 不同点: null: 定义:一个空对象指针. 使用typeOf得到Object,相当于是一个特殊值 undefine: 定义:声明变量却未对其加以初始化的变 ...