这道题也很感人,主要改了比较久的时间。。。

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]组队[单调指针乱搞]的更多相关文章

  1. 直径上的乱搞 bzoj1999求树直径上的结点+单调队列,bzoj1912负权树求直径+求直径边

    直径上的乱搞一般要求出这条直径上的点集或者边集 bzoj1999:对直径上的点集进行操作 /* 给出一颗树,在树的直径上截取长度不超过s的路径 定义点u到s的距离为u到s的最短路径长度 定义s的偏心距 ...

  2. 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)

    4692: Beautiful Spacing Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 46  Solved: 21[Submit][Statu ...

  3. Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】

    题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...

  4. P3105 [USACO14OPEN]公平的摄影(正解是乱搞,我却二分了)(+二分答案总结)

    照例化简题意: 给定一个01区间,可以把0改成1,问其中最长的01数量相等的区间长度. 额很容易想到前缀和,把w弄成1,h弄成-1,然后求前缀和,然后乱搞就行了. 但是一直不太会乱搞的我却直接想到了二 ...

  5. 洛谷 P3438 - [POI2006]ZAB-Frogs(乱搞/李超线段树)

    题面传送门 首先一眼二分答案,我们假设距离 \((i,j)\) 最近的 scarefrog 离它的距离为 \(mn_{i,j}\),那么当我们二分到 \(mid\) 时我们显然只能经过 \(mn_{i ...

  6. URAL 1827 Indigenous Wars(排序、乱搞)

    题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...

  7. UVA 11853 [dfs乱搞]

    /* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...

  8. Codeforces 732e [贪心][stl乱搞]

    /* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...

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

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

随机推荐

  1. 分模块的maven项目调试时报Source not found的解决办法

    一.背景 通常在开发中,我们经常会拆分我们的项目为一个个maven子工程,然后用一个父项目进行集成,并且子项目还会继承自父项目.当我们对这些项目进行debug调试的时候往往会在eclipse中出现so ...

  2. Tmux的安装、使用与配置

    tmux 安装.使用.配置 因上线需求,故需要使用tumx,方便上线 tmux功能 提供了强大的.易于使用的命令行界面 可横向.纵向分割窗口 窗格可以自由移动和调整大小,或者直接利用四个预设布局之一 ...

  3. XSLT教程

    XSL 指扩展样式表语言(EXtensible Stylesheet Language), 它是一个 XML 文档的样式表语言. XSLT 指 XSL 转换.即使用 XSLT 将 XML 文档转换为其 ...

  4. Linux 压缩系列常用命令

    tar 命令: http://man.linuxde.net/tar zip 命令: http://man.linuxde.net/zip unzip 命令: http://man.linuxde.n ...

  5. kvm 下运行的 WINWS7磁盘空间不足 增加磁盘 实战(这个有问题,还未解决)

    创建一个新硬盘: [root@NB vhost]# qemu-img create -f qcow2 add_win_desk.img 5G Formatting encryption=off clu ...

  6. Linux常用的日志分析命令与工具

    >>基础命令 操作 命令 说明 查看文件的内容 cat -n access.log -n显示行号 分页显示文件 more access.log Enter下一行,空格下一页,F下一屏,B上 ...

  7. 二叉树学习笔记之经典平衡二叉树(AVL树)

    二叉查找树(BSTree)中进行查找.插入和删除操作的时间复杂度都是O(h),其中h为树的高度.BST的高度直接影响到操作实现的性能,最坏情况下,二叉查找树会退化成一个单链表,比如插入的节点序列本身就 ...

  8. Linux获取当前用户信息函数

    转自:http://net.pku.edu.cn/~yhf/linux_c/function/07.html endgrent(关闭组文件) 相关函数 getgrent,setgrent 表头文件 # ...

  9. ASP.NET MVCでResponse Headerのサーバーバージョンをどうやって隠しますか?

    本来是发布在客户的Wiki上的,所以用日语写. ---------------------------------------------------------------------------- ...

  10. JavaWeb学习之JSTL自定义标签库的使用、JSTL自定义函数库(7)

    一.自定义标签,步骤 * 确定需求 * <my:date /> 输出当前系统的时间 yyyy-MM-dd hh:mm:ss:SSS * 编写Java类 新建包名:com.yxl.tag,新 ...