HA果然是弱省中的弱省……

原题:

ZZ市准备在绿博园举办一次花卉节。Dr.Kong接受到一个任务,要买一批花卉进行布置园林。
能投入买花卉的资金只有B元 (1 <= B <= 10^18) 。Dr.Kong决定做一个社会调查,统计一下市民们都喜欢哪种花卉,以便在有限的资金范围内,让更多的市民都能找到并标注一盆自己喜欢的花卉(一盆花只能一位市民标注)。  
经调查统计,市场上有N (1 <= N<=100,000)种不同类型的花卉,第i种花卉的价格是Pi(1 <= Pi <= 10^18) 。有Ci (1 <= Ci <= 10^18) 个市民喜欢。
你能帮助Dr.Kong计算一下,在不透支的情况下,如何购买花卉才能让更多的市民都能找到并标注一盆自己喜欢的花卉?  
例如:Dr.Kong 有 50块钱,有5种不同类型的花卉:

     花卉类型       价格/盆      喜欢该类型花卉市民的人数      
      1           5            3
      2           1            1
      3          10            4
      4           7            2
      5          60            1

显然,Dr.Kong不能购买第5种类型的花卉,因为他不够钱。
下面的购买方案是最优的:
  第1种花卉买3盆;第2种花卉买1盆;第3种花卉买2盆;第4种花卉买2盆。
 总共花费:5*3+1*1+10*2+7*2=50,这样,Dr.Kong 最多能让3+1+2+2 =8 人满意。

贪心:如果有一盆比较贵的花和一盆不是很贵的花,如果剩下的钱能买贵的花的话也一定能买更多不是很贵的花

所以按照价格排序,从小到大把能买的全买了就行,注意longlong

没了

代码:

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
long long read(){long long z=,mark=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-')mark=-; ch=getchar();}
while(ch>=''&&ch<=''){z=(z<<)+(z<<)+ch-''; ch=getchar();}
return z*mark;
}
struct dcd{long long x,y;}a[];
long long n,m;
bool compare(dcd x,dcd y){return x.x<y.x;}
int main(){//freopen("ddd.in","r",stdin);
cin>>n>>m;
for(int i=;i<=n;i++) a[i].x=read(),a[i].y=read();
sort(a+,a+n+,compare);
long long ans=;
for(int i=;i<=n;i++) ans+=min(m/a[i].x,a[i].y),m-=min(m/a[i].x,a[i].y)*a[i].x;
cout<<ans<<endl;
return ;
}

【HAOI2013】花卉节的更多相关文章

  1. nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞

    第0.1节 HTML5和桌面软件开发的碰撞 当我们谈论桌面软件开发技术的时候,你会想到什么?如果不对技术本身进行更为深入的探讨,在我的世界里,有这么多技术概念可以被罗列出来(请原谅我本质上是一个Win ...

  2. android内部培训视频_第五节(1)_OA实战之登录界面

    第五节(1):OA实战之登录界面  一.登录界面布局 1.背景图片 2.文本框 3.checkbox 4.按钮 暂未实现点击切换图片效果 <RelativeLayout xmlns:androi ...

  3. android内部培训视频_第四节(1)_异步网络操作

    第四节(1):异步网络操作  一.结合asyncTask下载网络图片 1.定义下载类,继承自asyncTask,参数分别为:String(url地址),Integer(刻度,本例没有用到),BitMa ...

  4. c语言第一章第一节 认识变量

    声明:本人大一新生,闲着无聊..写写c语言教程..菜鸟一枚..大神勿喷!!! 接下来我们都用dev来进行编译..vc++太古老了,没提示功能,不好上手,并且老是出毛病..vs太大了,编个c不至于,运行 ...

  5. 11.11光棍节工作心得——github/MVP

    11.11光棍节工作心得 1.根据scrum meeting thirdday中前辈的指导进行学习 我在博客中贴了链接,竟然TrackBack引来了原博主,

  6. Reverse Core 第二部分 - 16&17章 - 基址重定位表&.reloc节区

    第16-17章 - 基址重定位表&.reloc节区 @date: 2016/11/31 @author: dlive 0x00 前言 这几天忙着挖邮箱漏洞,吃火锅,马上要被关禁闭,看书进度比较 ...

  7. Python之路第一课Day8--随堂笔记(socket 承接上节---网络编程)

    本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程 ...

  8. android内部培训视频_第二节 布局基础

    第二节:布局入门 一.线性布局 需要掌握的属性: 1.orientation:排列方式 vertical:垂直 Horizontal:水平 2.weight:水平布局的权重 3.gravity:子控件 ...

  9. android内部培训视频_第一节

    声明:本视频为公司内部做android培训时录制的,无任何商业目的.同时鉴于水平有限,可能不符合您的需求,放在这里的目的是提供给公司同事下载,作为培训的一个记录,也作为一个系列教程的自我督促完成的理由 ...

随机推荐

  1. url 中需要转义的字符

    1. +  URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. /  分隔目录和子目录 %2F  4. ?  分隔实际的 URL 和参数 %3F  5. % 指 ...

  2. Creating SSL Certificates for CRM Test Environment

    不必找第三方去申请证书了, Windows Server 自己也可以作为一个CA的. When working on a CRM Test environment there are many sce ...

  3. 使用 Python 的 Socket 模块构建一个 UDP 扫描工具

    译文:oschina 英文:bt3gl 当涉及到对一些目标网络的侦察时,出发点无疑是首先发现宿主主机.这个任务还可能包含嗅探和解析网络中数据包的能力. 几周前,我曾经谈到了如何使用Wireshark来 ...

  4. km板子(二分图最大权匹配)

    //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack- ...

  5. vim 缩进设置

    1.在自己的家目录(/home)下建立.vimrc文件.控制台输入vi ~/.vimrc 回车. 2.在.vimrc文件中输入如下文本: set tabstop=4 set softtabstop= ...

  6. response.setHeader的各种用法 ------ 笔记(一)

    转载地址:https://blog.csdn.net/junmoxi/article/details/76976692 1.一秒刷新页面一次 response.setHeader("refr ...

  7. 对va_list; va_start ; va_end ;vsprintf理解(转)

    以下为转载内容: int printf(const char* fmt, ...) { va_list args; int i; //1.将变参转化为字符串 va_start(args,fmt); v ...

  8. Scrapy-redis改造scrapy实现分布式多进程爬取

    一.基本原理: Scrapy-Redis则是一个基于Redis的Scrapy分布式组件.它利用Redis对用于爬取的请求(Requests)进行存储和调度(Schedule),并对爬取产生的项目(it ...

  9. 关系数据库ORMlite的用法;

    首先要在 http://ormlite.com/releases 页面下载两个jar 包: (1)core列表下的jar包: (2)android列表下的jar包. 将上面的两个jar包下载后放到An ...

  10. Log4j在Java工程中使用方法

    Eclipse新建Java工程,工程目录如下 1.下载log4j的Jar包,在Java工程下新建lib文件夹,将jar包拷贝到此文件夹,并将其加入到路径中,即:Jar包上右键——Build Path— ...