[bzoj1071]组队[单调指针乱搞]
这道题也很感人,主要改了比较久的时间。。。
bzoj第一页的题,居然只过了五百多个人,(我是第512,orzliyicheng是513)
代码不长,但是细节搞了很久,主要sort写错了,晕。。。
首先根据A*h+B*s排序,依次枚举minx,miny,令now=A*minx+B*miny+C
在miny增大的同时,now也跟着增大,我们可以依次把符合的加进队
然后随着miny增大,也会出现不符合的点弹出来,height<miny,同时speed符合原来进队的条件
那么会不会出现,height<miny,而speed不符合原来进队列的条件呢?
其实是有的,但是不影响答案。
“分类讨论下
首先如果一个点满足被计数的条件即 V<=v<=V+CB ,那么如果又满足 h<H 那么有 0+B(v−V)<=C ,而A(h−H)则一定<0 。
所以 A(h−H)+B(v−V)<=C 。。。。。。所以一定加进来然后被计数过,不会减多了。然后如果不满足被计数的条件。23333,都没有被计数我们管它作甚?”
这样就满足了所有条件,AC hard...
#include<cstdio> #include<algorithm> #define N 20000 #define ll long long using namespace std; struct node{ll x,bh;}cc[N]; struct sss{ll x,bh,xx;}ss[N]; ll h[N],s[N],n,A,B,C,minx,miny,maxx; int ans,sum; bool cmp1(node a,node b) { return a.x<b.x; } bool cmp2(sss a,sss b) { return a.xx<b.xx; } int main() { scanf("%lld%lld%lld%lld",&n,&A,&B,&C); ;i<=n;i++) { scanf("%lld%lld",&h[i],&s[i]); cc[i].x=A*h[i]+B*s[i];cc[i].bh=i; ss[i].x=h[i];ss[i].bh=i;ss[i].xx=s[i]; } sort(cc+,cc+n+,cmp1);sort(ss+,ss+n+,cmp2); ;i<=n;i++) { int k=ss[i].bh; minx=h[k];maxx=minx+C/A; ,r=,sum=; ;j<=n;j++) { k=ss[j].bh; miny=s[k];ll now=C+A*minx+B*miny; ].x<=now)) { r++;int k=cc[r].bh; if((h[k]>=minx)&&(h[k]<=maxx))sum++; } ].xx<miny)) { l++;k=ss[l].bh; if((h[k]>=minx)&&(h[k]<=maxx))sum--; } ans=max(ans,sum); } } printf(; }
[bzoj1071]组队[单调指针乱搞]的更多相关文章
- 直径上的乱搞 bzoj1999求树直径上的结点+单调队列,bzoj1912负权树求直径+求直径边
直径上的乱搞一般要求出这条直径上的点集或者边集 bzoj1999:对直径上的点集进行操作 /* 给出一颗树,在树的直径上截取长度不超过s的路径 定义点u到s的距离为u到s的最短路径长度 定义s的偏心距 ...
- 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)
4692: Beautiful Spacing Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 46 Solved: 21[Submit][Statu ...
- Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】
题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...
- P3105 [USACO14OPEN]公平的摄影(正解是乱搞,我却二分了)(+二分答案总结)
照例化简题意: 给定一个01区间,可以把0改成1,问其中最长的01数量相等的区间长度. 额很容易想到前缀和,把w弄成1,h弄成-1,然后求前缀和,然后乱搞就行了. 但是一直不太会乱搞的我却直接想到了二 ...
- 洛谷 P3438 - [POI2006]ZAB-Frogs(乱搞/李超线段树)
题面传送门 首先一眼二分答案,我们假设距离 \((i,j)\) 最近的 scarefrog 离它的距离为 \(mn_{i,j}\),那么当我们二分到 \(mid\) 时我们显然只能经过 \(mn_{i ...
- URAL 1827 Indigenous Wars(排序、乱搞)
题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...
- UVA 11853 [dfs乱搞]
/* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...
- Codeforces 732e [贪心][stl乱搞]
/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...
- 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞
3578: GTY的人类基因组计划2 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 367 Solved: 159[Submit][Status][ ...
随机推荐
- Jquery选中行实现行中的Checkbox的选中与取消选中
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...
- eclipse快捷键Alt + / 失效
最近电脑上的Eclipse没有了自动提示功能,也不是全部不提示,大多数情况下按下"alt+/"键还会产生提示,但是当我在java项目中邪main方法和syso的时候,"a ...
- October 11th 2016 Week 42nd Tuesday
A friend is one who knows you and loves you just the same. 朋友就是懂你并爱你的人. Leave nothing for tomorrow w ...
- Ubuntu gcc编译报错:format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘__time_t’ [-Wformat=]
平时用的都是Centos系统,今天偶然在Ubuntu下编译了一次代码,发现报错了: 源码: #include <stdio.h> #include <sys/time.h> # ...
- 数据库IO简介
IO有四种类型:连续读,随机读,随机写和连续写,连续读写的IO size通常比较大(128KB-1MB),主要衡量吞吐量,而随机读写的IO size比较小(小于8KB),主要衡量IOPS和响应时间.数 ...
- TCP UDP 协议的区别和联系
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次“对话”才能建立起 ...
- 与你相遇好幸运,Waterline初遇
Github : https://github.com/balderdashy/waterline 文档 : https://github.com/balderdashy/waterline-docs ...
- 使用Timer和ScheduledThreadPoolExecutor执行定时任务
Java使用Timer和ScheduledThreadPoolExecutor执行定时任务 定时任务是在指定时间执行程序,或周期性执行计划任务.Java中实现定时任务的方法有很多,主要JDK自带的一些 ...
- HTML5学习之跨文档传输消息(七)
新标准中提供了文档之间直接的消息传输API.而且不限制跨域消息传递! 发送消息使用的是Window对象的postMessage(data,targetURL)方法就可以了,但给哪个window对象发送 ...
- h5 range应用 透明度+RGB
透明度 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...