1526: 分梨子

时间限制: 1 Sec  内存限制: 64 MB

题目描述

  Finley家的院子里有棵梨树,最近收获了许多梨子。于是,Finley决定挑出一些梨子,分给幼稚园的宝宝们。可是梨子大小味道都不太一样,一定要尽量挑选那些差不多的梨子分给孩子们,那些分到小梨子的宝宝才不会哭闹。   每个梨子都具有两个属性值,Ai和Bi,本别表示梨子的大小和甜度情况。假设在选出的梨子中,两个属性的最小值分别是A0和B0。只要对于所有被选出的梨子i,都满足C1*(Ai-A0)+C2*(Bi-B0)≤C3(其中,C1、C2和C3都是已知的常数),就可以认为这些梨子是相差不多的,可以用来分给小朋友们。   那么,作为幼稚园园长的你,能算出最多可以挑选出多少个梨子吗?

输入

第一行一个整数N(1≤N≤2000),表示梨子的总个数。 第二行三个正整数,依次为C1,C2和C3(C1,C2≤2000,C3≤10^9)。 接下来的N行,每行两个整数。第i行的两个整数依次为Ai和Bi。

输出

只有一个整数,表示最多可以选出的梨子个数。

样例输入

3
2 3 6
3 2
1 1
2 1

样例输出

2

这是一道有趣的题目,很神,可以,非常好。

搜不到题解的神奇题目,用的还是百度知道里面一个回答的神奇方法,用类似数学里的线性规划做。

具体见胡扯晓大神同学博客:http://blog.csdn.net/u013675643/article/details/52528914

Code:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
using namespace std;const int Max = 2000;struct node{int pos, x;bool operator < (const node & X) const{return x < X.x;}
}C[Max + 5], D[Max + 5];int N, C1, C2, C3;
int A[Max + 5], B[Max + 5], cnt[Max + 5], Ans;void getint(int & num){char c; int flg = 1;   num = 0;while((c = getchar()) < '0' || c > '9') if(c == '-')    flg = -1;while(c >= '0' && c <= '9'){  num = num * 10 + c - 48;  c = getchar();}num *= flg;
}int main(){//freopen("pear.in", "r", stdin);//freopen("pear.out", "w", stdout);getint(N);getint(C1), getint(C2), getint(C3);for(int i = 1; i <= N; ++ i){getint(A[i]), getint(B[i]);C[i].pos = D[i].pos = i;C[i].x = B[i];D[i].x = A[i] * C1 + B[i] * C2 - C3;}sort(C + 1, C + 1 + N);sort(D + 1, D + 1 + N);for(int i = 1; i <= N; ++ i){memset(cnt, 0, sizeof cnt );int k = 0, sum = 0;for(int j = 1; j <= N; ++ j){while(k <= N && D[k].x <= A[i] * C1 + C[j].x * C2){if(A[D[k].pos] >= A[i] && B[D[k].pos] >= C[j].x){++ sum;++ cnt[B[D[k].pos]];}++ k;}sum -= cnt[C[j - 1].x];cnt[C[j - 1].x] = 0;Ans = max(Ans, sum);}}printf("%d\n", Ans);return 0;
}   

#bzoj1526#分梨子(乱搞)相关推荐

  1. 【CodeForces - 349A】Cinema Line (贪心(其实不是贪心),乱搞)

    题干: The new "Die Hard" movie has just been released! There are n people at the cinema box ...

  2. BZOJ4401:块的计数(乱搞)

    Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构--块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...

  3. P4409 [ZJOI2006]皇帝的烦恼(20190922B)(乱搞)

    考场历程十分艰辛啊... 第一题没切掉,还浪费了很长时间,就是一个裸的最小生成树,但是因为可恶的distance为关键字莫名其妙查错了10min.... 本题先乱搞了一下,过了样例 然后看第三题,可写 ...

  4. BZOJ 1124 [POI2008]枪战Maf 贪心+乱搞

    题意:略. 方法:贪心+乱搞. 解析: 今天做的题里面最难的了- 分连通块进行考虑. 一个连通块最多死多少呢? 一个点 -> 死一个 一个环 -> 死环上点个数-1个 一个环加上内向树 - ...

  5. 【BZOJ5288】【HNOI2018】游戏(乱搞?)

    题面 BZOJ 洛谷 题面自己到洛谷上看把 题解 考场上乱搞拿到了 90 90分,简直不敢相信. 回家把代码再交了一份直接就 AC AC了??? O(n2) O(n^2)的做法应该很容易想 对于每个点 ...

  6. bzoj4900【CTSC2017】Day1T1 密钥 cipher 乱搞

    题目大意: 有一个包含n个点(n=2*k+1)的环(密钥),环上有k个点为A,有k个点为B,剩下一个点为X. 对于每一个A,从X顺时针走到这个A,如果途中A的数目严格多于B的数目,那么这个A为强的.一 ...

  7. AcWing 397. 逃不掉的路(边双连通分量缩点成树 + 树链剖分乱搞)

    整理的算法模板合集: ACM模板 我们知道在同一个边双连通分量中的点没有必经边(因为至少有两条分离的路径). 所以我们直接tarjan求出桥后缩点,然后求一下树上两点间的距离即可. 那么如何求树上两点 ...

  8. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞

    没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...

  9. BZOJ-1800 飞行棋 数学+乱搞

    这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 So ...

  10. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 367  Solved: 159 [Submit][Status ...

最新文章

  1. 分布式事务中间件 Fescar—RM 模块源码解读
  2. python自然语言处理课后答案
  3. 旧电脑怎么升级配置_旧电脑升级哪些配件效果最好?答案莫过于这3点!
  4. mac地址 linux c api,如何使用C程序获取linux中接口的mac地址?
  5. Vim 键盘指令高清图
  6. 8个实用而有趣Bash命令提示行
  7. 尚学linux课程---8、rpm软件包安装
  8. BUU刷题记录——Misc(一)
  9. 循环遍历多层json_面试官:JSON.stringify() 实现深拷贝有什么问题
  10. sqlmap源码阅读系列检查是否满足依赖
  11. android 上传nexus_android发布到nexus私服
  12. Android中如何获取应用版本号
  13. nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.chengg
  14. Android wifi信号强度显示流程
  15. 剖析搜索引擎背后的经典数据结构和算法
  16. Vue实现 上传文件到七牛云
  17. 百度升级烽火算法2.0,建议网站https改造打击网站劫持
  18. pd调节规律_PD控制规律指的是比例、微分控制。
  19. 周鸿袆:教你打造十页完美商业计划书
  20. HDU 1051 Wooden Sticks 造木棍【贪心】

热门文章

  1. Thunderbird 邮件签名三个实现方式
  2. 抢红包算法 c++_“抠抠族”的出行利器,斤斤计较的几何C为了节能果然够拼
  3. android10 psp模拟器,PPSSPP(PSP模拟器) V1.10 安卓版
  4. Capture web with FireShot
  5. 在Blender中使用代码控制人物模型的头部姿态 - 前置知识
  6. 关于ARPG发展之操作和技能之泛泛而谈(转)
  7. 百分点感知智能实验室:声纹识别技术发展及未来趋势研究
  8. Consistent hashing kills tencent2012笔试题附加题
  9. 使用国内镜像源来加速python pypi包的安装
  10. maven 编译出现错误