zoukankan      html  css  js  c++  java
  • CSPS模拟 85

        WWB大佬的bitset映射真是太强了!

        %%%

        

        T1

          观察样例,猜规律。

        T2

          对题目的翻译工作用了很长时间

          翻译错了好几次..

          观察到奇环没法染色,选的边必须把奇环弄断

          如果在偶环上,偶环就变得没法染色了,所以不能在偶环上

          翻译完成后

          这是什么?

          算了乱搞吧

          先弄个树出来,然后对于非树边,会和树边形成一个环

          树上差分一下在哪个环里,维护一下有几个奇环,那么树上的边必须不在偶环里然后必须在所有奇环里

          好有道理的样子,打出来交了。

          

          考试快结束了

          非树边的贡献??

          完戏

          赶紧再乱搞一发,我猜每个非树边只在一个奇环里!(瞎猜)

          所以直接给非树边的num赋值成1算了

          

          然后他就A了(RP--?)

          然后经大神skyh指点,我跟正解撞上了。。

          (又开心又怕RP--)

          其实对非树边num=1的赋值没有问题,

          如果有两个奇环的话,那么两条非树边一定分离,或者形成偶环废了

          然后树边的贡献就严格按照定义(题意)来就没问题

          %%%skyh被大样例坑了错失正解

        T3

          再%%%WWB

          没想到啊,真没想到,还能

          真·大暴力·STL映射STL

          找到相关询问集合相同的所有下标

          然后让这些下标分别平衡,就可以满足题意。//平衡:把这个子序列单独拎出来,它的左右括号完美地匹配

          否则一定不满足,因为每个边界都必须满足在其方向上的“括号需求”为0//括号需求:需要在最左边加上多少左括号才能使右括号都得到匹配,可能为0,右边同理

          如何平衡?用一个贪心

          为了防止括号资源短缺,每个子序列内部的不平衡能自己抵消就自己抵消//内部的不平衡:既有左括号需求又有右括号需求

          代价为$(min(Lneed,Rneed)+1)/2$//换一对,满足两组匹配,所以除以2

          如果括号不平衡,从外部引进//一种括号过多,用一些这种括号换一些其他的

          引进量为$abs(Lneed-Rneed)/2$//换一个满足一组匹配,减少一组需求,所以除以2

          同时维护两个变量$NeedL NeedR$

          用以平衡不同子序列之间的括号流动,如果子序列A需要左括号,B需要右括号

          由于贡献只能计算一次,那么两次需求只有一次花费

          那么记录一下有多少左括号曾被需求,等到需要右括号时优先使用那部分的免费左括号。

          右括号需求多时同理

          

  • 相关阅读:
    Element老司机开车了
    前端下载excel打不开求助+解法
    js常见的几种继承方式
    Django笔记&教程 3-1 模板(Template)基础
    Django笔记&教程 3-2 模板语法介绍
    Django笔记&教程 3-3 模板常用语法
    Django笔记&教程 3-4 模板继承
    Django笔记&教程 4-1 模型(Models)介绍
    Django笔记&教程 4-2 模型(models)中的Field(字段)
    Django笔记&教程 4-3 模型(models)主键外键
  • 原文地址:https://www.cnblogs.com/yxsplayxs/p/11732278.html
Copyright © 2011-2022 走看看