[Codeup 25482 ]选美

题目

一年一度的星哥选美又拉开了帷幕

N个人报名参加选拔,每个人都有着各自的相貌参数和身材参数(不大于 10000 的正整数)。你的任务是尽可能让更多人被星哥选中,而唯一要求就是,在这只队伍里面的每个人,都需满足以下不等式:

A (H− h) +B(W− w) ≤ C

其中H和W为这个人的相貌和身材, h和w为选中者中的最小相貌参数和最小身材参数,而A、 B、 C为三个不大于 10000 的正的整型常数。

现在请计算星哥最多可以选中多少人。

INPUT

第一行:一个整数: N(0<N<=2000)

第二行:三个分开的整数: A,B和C

第三行到第N+ 2行:每行有两个用空格分开的整数,分别表示一个人的相貌参数和身材参数

OUTPUT

第一行:最多被选的人数

SAMPLE

INPUT

8

1 2 4

5 1

3 2

2 3

2 1

7 2

6 4

5 1

4 3

OUTPUT

5

解题报告

考试时第一眼看到 星哥 我是茫然的= =,我在想我啥时候还能选美了= =

考试时打了个毫无根据的乱搞暴力,然后貌似竟然还过了一个点

正解:

首先我们观察一下这个式子:

显然可以化简一下,我们先将不等关系改为等于关系,再移项,就可以得到:

也就是说,我们完全可以得到两个量w与h的等量关系

那么我们想,假如我们知道了其中的h,那么我们一定可以求出这个最小的w,那么我们再把不等关系转回来,我们就得到的最小的w

那么我们就可以得到一个区间  ,只要w在这个区间里,这个人就能被选上(原因很简单,左端点是通过不等关系求出来的,右端点则是它本身的w值,假如最小值大于该值,那么就存在这个Wj比最小值还小,这显然是不成立的,所以显然只有w在该区间里才可以是她被选上)

接下来我们得到了n个区间,我们要让选上的人尽量多,所以我们要求被尽量多的区间所包含的点,来作为我们的w,所以我们可以用差分来处理,左端点+1,右端点后面一个点-1,那么这个点所能满足的数量就是该点的前缀和(差分:我们想为什么这样是可行的,我们只考虑一条线段,在该线段前的点,显然前缀和为0,在该线段中的点,显然前缀和只包含左端点,前缀和为1,在该线段后的点,前缀和中包含的左端点与右端点的1和-1相抵消,故前缀和为0,至于边界,画一画就出来了)

所以只是一个求最大前缀和即可,只是常数有点大(人傻自带超大常数)

 #include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
inline int read(){
int sum();
char ch(getchar());
for(;ch<''||ch>'';ch=getchar());
for(;ch>=''&&ch<='';sum=sum*+(ch^),ch=getchar());
return sum;
}
int n,a,b,c;
int H[],W[];
int sum[];
int tp(),ans();
int main(){
n=read(),a=read(),b=read(),c=read();
for(int i=;i<=n;i++)
H[i]=read(),W[i]=read(),tp=max(tp,W[i]);
for(int i=;i<=n;i++){
memset(sum,,sizeof(sum));
for(int j=;j<=n;j++)
if(H[j]>=H[i]&&a*(H[j]-H[i])<=c){
int tmp((a*(H[j]-H[i])+b*W[j]-c)/b);
if(tmp<)
tmp=;
if(tmp>W[j])
tmp=W[j];
sum[tmp]++,sum[W[j]+]--;
}
for(int j=;j<=tp;j++)
sum[j]+=sum[j-];
for(int j=;j<=n;j++)
if(H[j]>=H[i]&&a*(H[j]-H[i])<=c)
ans=max(ans,sum[W[j]]);
}
printf("%d",ans);
}

[Codeup 25482]选美的更多相关文章

  1. [Codeup 25482] Beauty

    25482: Beauty 时间限制: 1 Sec  内存限制: 128 MB献花: 7  解决: 3[献花][花圈][TK题库] 题目描述 一年一度的星哥选美又拉开了帷幕 N个人报名参加选拔,每个人 ...

  2. 暑假集训D13总结

    考试 又炸掉了= = 本来看着题就一脸茫然,默默的打暴力骗分,然后就交了卷= = 重要的是,在本机跑的毫无障碍的T3程序竟然在评测机CE啊喂,35分就没了啊喂(这可是比我现在分还高= =) 内心几近崩 ...

  3. HURST 1116:选美大赛(LIS+路径输出)

    选美大赛 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 1099(318 users) Total Accepted: 349(252 ...

  4. 微服务RPC框架选美

    原文:http://p.primeton.com/articles/59030eeda6f2a40690f03629 1.RPC 框架谁最美? Hello,everybody!说到RPC框架,可能大家 ...

  5. 选股:“均线是水,K线是舟,量是马达!”的选美理念!

    选股:“均线是水,K线是舟,量是马达!”的选美理念! 很多庄家就是故意做数据,让某只股票的数据非常符合“理论”,引诱“技术派”股民

  6. [Codeup 25481] swan

    莫名其妙还找到了另一个铟炔锶烃的OJ : Codeup墓地 25481: swan 时间限制: 1 Sec  内存限制: 128 MB献花: 86  解决: 13[献花][花圈][TK题库] 题目描述 ...

  7. TOJ 4095: love168yk的选美大赛

    4095: love168yk的选美大赛  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: ...

  8. 选美?作秀?MES系统的选择更应该从实际出发

    MES选型不是做秀,不是选美. 如今不少企业在信息化推广应用过程中面面求好.追求完美,用意没错,然而在MES开发过程中,软件商不可能将今后各种可能出现的问题考虑周全,不可能将系统做到十全十美.随着系统 ...

  9. 阿里云代码管理平台 Teambition Codeup(行云)亮相,为企业代码安全护航

    2019杭州云栖大会企业协作与研发效能专场,企业协同平台Teambition负责人齐俊元正式发布阿里云自研的代码管理平台Teambition Codeup(行云),Codeup是一款企业级代码管理产品 ...

随机推荐

  1. oc39-- 类的内存存储

    虚线是isa的指向,实线是继承关系. // // main.m // 类的本质 #import <Foundation/Foundation.h> #import "Person ...

  2. WebView 用法总结

    1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出 Web page not available 错误. ...

  3. [HDU4689]Derangement

    https://zybuluo.com/ysner/note/1232641 题面 给出\(b_1,b_2,...,b_n\in\{−1,1\}\),求满足\((p_i−i)*b_i<0\)的\ ...

  4. C Looooops(扩展欧几里得+模线性方程)

    http://poj.org/problem?id=2115 题意:给出A,B,C和k(k表示变量是在k位机下的无符号整数),判断循环次数,不能终止输出"FOREVER". 即转化 ...

  5. css 引入方式

    css介绍 现在的互联网前端分三层: HTML:超文本标记语言.从语义的角度描述页面结构. CSS:层叠样式表.从审美的角度负责页面样式. JS:JavaScript .从交互的角度描述页面行为 CS ...

  6. JQuery 动态创建表单,并自动提交

    前言:写这个是为了实现使用cookie进行自动登录的功能, 下面的代码是一个元素一个元素进行创建和赋值的, (可以尝试下将所有的html代码(form.input)全部拼好以后放到${ } 中,再进行 ...

  7. P2241 统计方形(数据加强版)

    题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 输入格式: n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来 ...

  8. 解决emlog默认导航不能修改的问题以及修改后台登录地址的方法

    修改默认导航 我们需要使用修改代码的方式来解决 首先找到admin/navbar.php文件 然后找到需要删除的几行代码: if ($type != Navi_Model::navitype_cust ...

  9. SharedPreferences用法

    SharedPreferences是Android四种数据存储技术中的一种,它是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信 息,其对 ...

  10. java编程基础篇-------> 从键盘输入一位整数,代表月份,编程判断指定月份属于一年中的哪个季度。如果是 12 月、1 月、2 月,就属于冬季。

    从键盘输入一位整数,代表月份,编程判断指定月份属于一年中的哪个季度.如果是 12月.1 月.2 月,就属于冬季:如果是 3 月.4 月.5 月,就属于春季:如果是 6 月.7 月.8 月,就属于夏季: ...