P4165 [SCOI2007]组队 推柿子+差分
题意:
题意
分析:
- 推柿子 :
A × h − A × m i n h + B × s − B × m i n s ≤ C A\times h-A\times min_h+B\times s-B\times min_s \le C A×h−A×minh+B×s−B×mins≤C
我们发现有三个变量,所以最暴力的复杂度是 O ( n 3 ) O(n^3) O(n3)的,那么我们考虑怎么优化
好吧,我不看题解也不是很会优化
我们将式子转化一下,然后会发现对于每一个人, m i n h min_h minh固定时,能取到的合法 m i n s min_s mins是连续的
A × ( h − m i n h ) − C B + s ≤ m i n v ≤ s \large \frac{A\times(h-min_h)-C}{B}+s\le min_v \le s BA×(h−minh)−C+s≤minv≤s
前面一个限制是由式子转化得到的,后面的限制是题目要求, m i n s ≤ ∀ s min_s\le \forall s mins≤∀s
对于区间加的操作直接差分一下
代码:
#include<bits/stdc++.h>using namespace std;namespace zzc
{const int maxn = 5005;long long h[maxn],s[maxn],num[10005],d[maxn];long long n,cnt=0,ans,a,b,c;void work(){ios::sync_with_stdio(false);cin>>n>>a>>b>>c;for(int i=1;i<=n;i++){cin>>h[i]>>s[i];d[i]=h[i];}sort(d+1,d+n+1);cnt=unique(d+1,d+n+1)-d-1;for(int i=1,l;i<=cnt;i++){memset(num,0,sizeof(num));for(int j=1;j<=n;j++){if(h[j]>=d[i]&&a*(h[j]-d[i])<=c){if(b==0) l=1;else l=max(1ll,s[j]-(c-a*(h[j]-d[i]))/b);num[l]++;num[s[j]+1]--;}}for(int j=1;j<=10000;j++) num[j]+=num[j-1];for(int j=1;j<=n;j++) ans=max(ans,num[s[j]]);}cout<<ans<<endl;}}int main()
{zzc::work();return 0;
}
P4165 [SCOI2007]组队 推柿子+差分相关推荐
- 解题报告:NOIP2013 车站分级(拓扑序递推求解差分约束、建图优化O(n+m)) 超详细讲解
本题是2013年NOIP普及组的压轴题 差分约束裸题. 计算当前线路中最小的级别(比较始发站和终点站). 整条线路中所有大于这个级别的都必须停靠 所有未停靠的站点的级别一定小于这个级别 也就是说所有未 ...
- Pass! (bsgs 推柿子)
题意: 有T组样例,一共n个人传球,从1号开始最后回到1号,给定方案数,求最小的传球次数.(t<=100,n<=1e6,方案数<=998244353) 思路: 考虑推柿子 . f[i ...
- 1071: [SCOI2007]组队
1071: [SCOI2007]组队 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 1763 Solved: 546 [ Submit][ St ...
- SP5971 LCMSUM - LCM Sum(莫比乌斯反演 ,推柿子,经典)
整理的算法模板合集: ACM模板 题目传动门 #include <iostream> #include <cstdio> #include <algorithm> ...
- [BZOJ]1071: [SCOI2007]组队 STL优先队列
Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里 速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所 ...
- [SCOI2007]组队
Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里 速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所 ...
- 另类推柿子 Crypto Lights
Crypto Lights 大意: 有 n 个台灯初始时都是暗的,每次等概率随机一个暗台灯将其点亮,若点亮后存在一个长度为 k 的连续段有大于一个台灯被点亮则立刻停止,求期望点亮多少台灯.答案对1e9 ...
- 2019.4.summary
2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...
- 退役前的做题记录2.0
退役前的做题记录2.0 最近在刷省选题......大致上是按照省份刷的. 不过上面的题目顺序是按照写题的顺序排列的,所以可能会有点乱哈. [BZOJ2823][AHOI2012]信号塔 最小圆覆盖,随 ...
最新文章
- 『高级篇』docker容器来说什么是微服务(三)
- Ubentu编译Android源码(AOSP)
- 英特尔核芯显卡控制面板没有了_【有趣】第41期:被英特尔取消发售的CPU长啥样?...
- AtCoder AGC032D Rotation Sort (DP)
- Find The Bone
- NeHe OpenGL教程 第二十一课:线的游戏
- 743. 网络延迟时间
- HDU 6064 RXD and numbers
- [Buzz.Today]2013.03.14
- 快速上手Linux核心命令(四):文件内容相关命令
- MATLAB信号处理之信号的积分和微分
- ICPC程序设计题解书籍系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
- 关于理财的一点点学习成果(先写这些吧)
- oa服务器维护,办公系统维护,维护oa系统的方法
- VRay无限平面的应用教程
- android显示txt文件的组件,Android文本控件的介绍
- rimraf node_modules 删除报错 rimraf : 无法加载文件
- 如何在Excel中将多个单元格中的文本合并到一个单元格中
- zookeeper集群伪分布式安装测试-windows
- 微信开发 -- 自定义菜单
热门文章
- The Open Group即将举办线上线下企业架构从业者峰会
- 奇葩问题☞ npm install 报错 gyp ERR
- mysql 是否支持Unix系统_在UNIX系统下安装MySQL
- RadioGroup 全部取消选中 和选中某个按钮
- Object.entries() 的使用
- 【Selenium】Selenium的3种等待方式
- 如何用sql语句查询年龄最小或最大的信息
- 算术左移,算术右移;逻辑左移,逻辑右移
- C#服务端的微信小游戏——多人在线角色扮演(六)
- UVM RAL 中的显示预测 uvm_reg_predictor