被sdfz踩爆了!

  %%%kai586123

  %%%Gekoo

  %%%sdfz_yrt

  

  T1

    我以为是水题!一直在肝!

    而且为什么每次我的考场暴力都是考后才调出来啊!!

    先记录一下正解的大神做法:

      按顺序考虑每次出牌,每次要出使总胜数不变的最大的牌

      考虑将a和b的牌放在一起排序,那么这个问题变成了:括号匹配

      那么考虑对于一个左括号,每次找一个最靠右的右括号与他匹配(或不匹配),还使得总对数不变

      如果找到的右括号在它右边,那么如果找到的当前位置i的右括号导致对数减少,找到更右的位置i+k一定也导致对数减少

      这点可以直观理解,因为i位置导致对数减少,说明左侧的左括号找不到任何替代的右括号,也说明右侧没有任何“空闲”的括号

      所以出牌的大小对对数的影响有可二分性,问题变成了如何快速维护剩余对数

      Rockstar_B:线段树维护分治

      考虑在值域线段树上维护对数,给每个节点维护2个变量sum[2]和pair表示这个值域区间里“空闲”左括号和右括号的数量和匹配数

      修改后递归回来维护:

      int now=min(sum[lch][0],sum[rch][1]);

      pair[x]=pair[lch]+pair[rch]+now;

      sum[x][0]=sum[lch][0]+sum[rch][0]-now;

      sum[x][1]=sum[lch][1]+sum[rch][1]-now;

      最后对数就是 pair[1]

    然后记录下弱智的暴力做法。

      同样是括号匹配,需要被满足的左括号p两端的答案分别单调

      那么找到的右括号应该满足什么样的性质呢?

      考虑找到的右括号本来就和左括号匹配,那么应该是可以与之匹配的最靠右的那一个

      如何找到,把左括号视为+1,右括号视为-1,那么从头开始跑这个过程,到了p之后的一个位置减为了0

      那么这个0就是最后一个可以被拿走的右括号。原因是,再拿右边的,将导致这个0减为-1,也就是增加了一对失配,对数减少了。

        

      考虑右括号没和左括号匹配,这种右括号就是找不到左括号匹配那种,也就是说跑了一遍+1-1之后,它所在的位置应该为负数(虽然强制赋成0)

      一个比较优的暴力做法就是,先跑一遍+1-1的括号匹配,把所有的失配右括号塞到堆里,并标记不再进堆

      按出牌顺序枚举左括号,首先取出堆顶最优的第二种括号,再暴力找第一种括号,两者取一个max作为此次的手牌

      然后删除这两个括号,重新维护+1-1的前缀和序列。就是从修改的地方开始重新跑。

      再加一个剪枝,如果跑到一个地方发现你求出来的真实值和它原本的值相同,就不用跑了,因为可以想到再跑也不会再有更新了。

  T2

    最大值不好搞,把最小值扔到两边。

  T3

    差分表。

    更细节的我也不会,本题用到了一些性质

    差分表中的差分值具有单调性,即大的差分值一定出现在序列较靠前的位置

    差分表中的k个元素一定作用于序列的前k个元素

    

    于是这些差分值可以用一个堆维护。

    另一个学到的地方是dfs+set建树。

CSPS_103的更多相关文章

随机推荐

  1. 深入理解SpringCloud之Gateway

    虽然在服务网关有了zuul(在这里是zuul1),其本身还是基于servlet实现的,换言之还是同步阻塞方式的实现.就其本身来讲它的最根本弊端也是再此.而非阻塞带来的好处不言而喻,高效利用线程资源进而 ...

  2. Java Intellij 第一个HelloWord

    前言 最近重心点都在Java, 鉴于避免一些跟我一样学习Java开始啥都不懂,不知如何下手,方便小白快速入门.故写下此文,鉴于分享. (前提是安装jdk, 建议使用版本是1.8) JDK 安装地址:h ...

  3. iPhone 手机用 Fiddler 抓取数据包 问题

    近日公司服务升级,将所有的接口请求由HTTP升级为了HTTPS,升级后在手机中安装了Fiddler的证书,Android端抓取HTTPS请求一切正常,可是在ios端抓取HTTPS请求时一直提示“此服务 ...

  4. 8 个 Python 实用脚本,【速】收藏备用!

    脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作. 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这 ...

  5. 古剑奇谭三已取消该页导航,B站版本无法登陆

    最近登陆古剑三突然出现这个问题 怎么重开也无法登陆 最后发现是Ie设置问题 解决方法 点中间这个圆形图标打开 小娜 搜索“ie” 点击打开ie之后点右上角的小齿轮 选择“internet选项” 连接- ...

  6. 采用WPF开发截图程序,so easy!

    前言  QQ.微信截图功能已很强大了,似乎没必要在开发一个截图程序了.但是有时QQ热键就是被占用,不能快速的开启截屏:有时,天天挂着QQ,领导也不乐意.既然是程序员,就要自己开发截屏工具,功能随心所欲 ...

  7. App元素定位

    1.元素定位(采用Appium-desktop自带的工具) 1.1将初始化参数复制进去校验json格式正确且保存后,点击start session 初始化参数来源如下: # 定义启动设备需要的参数 d ...

  8. postman常用断言

    1.Code is 200 断言状态码是200 2.contains string 断言respoonse body中包含string 3.json value check (检查JSON值)

  9. Python之网络编程Socket

    Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络 ...

  10. 详解立即执行函数(function(){}()),(function(){})()

    要知道这几种写法之间的区别,我们要先聊些题外话——js中函数的两种命名方式,即表达式和声明式. 函数的声明式写法为:function foo(){/*...*/},这种写法会导致函数提升,所有func ...