• ST03模拟赛#1 比赛记录


    ST03模拟赛#1 比赛记录

    终于不是vp了

    比赛情况

    赛时:(0)

    赛后:T1

    题解

    T1

    点分治垃圾题,然而我想了一个傻逼做法,所以应该我是傻逼

    首先是人都能看出来点分治,然后每个点处理一个 pair<int,int> 表示它到根的最大,严格次大。

    然后是计算子树里经过根的答案。

    如果暴力维护当前选好的点,然后加入一个子树合并一下,这样写,保准他妈写死你。

    然而我只会这一种做法,是我太simple了。于是我就写了怎么想都不太能写出来的,点分+BIT+SGT。

    这题的话,我们用瞎几把算+去重的写法,更加合适。对于瞎几把算的部分,我们不妨排个序。维护尼玛的线段树啊先排个序啊喂

    然后就是枚举一个位置算一下它跟前面组合一下的答案。设当前是 ((A_1,A_2)),表示这个pair。

    对于前面的一个 ((B_1,B_2)),如果:

    (B_1le A_2),这一部分的pair显然是 ((A_1,A_2))。对答案的贡献是 (A_1 imes A_2 imes #)

    (A_2<B_1< A_1),这一部分的pair是 ((A_1,B_1))。对答案的贡献是 (A_1 imessum B_1)

    (B_1=A_1),这一部分我们讨论一下 (B_2) 的大小,用树状数组维护

    然后,加子树,加子树,去重,诶,做完了,简单吧,除了我应该都会qaq

    实况

    上来先把3题都看了一遍。T3是神秘题,不会;T2是一个我怎么也看不出来是分块的分块;T1是我一眼就看出来的点分治。

    然后我就去主攻T1。

    做一做发现要讨论4个情况。啪啪啪打完发现不对,因为要讨论6个情况。

    我接着搞,发现了剩下两个情况。原来的 (4) 个用树状数组写一下就行,新来了俩我还不会做了还。仔细的想一想,我得到了一个动态开点线段树做法。虽然怎么想它好像都不太对,不应该有这么大码量;但是我没有办法,只能这么写了

    然后我就硬是写+调了这么一个点分治+大讨论+BIT+动态开点线段树。码长7.7KB,我靠我 高 超 的码力,终于,在距离比赛结束40s的时候,调过了样例。

    删掉调试输出,剩2s

    ctrl+c,进入提交界面,ctrl+v,剩1s

    划鼠标到“提交”键,剩0s

    于是我没交上去,比赛就结束了,我喜提0分的好成绩,rating有了200多的变化量,当然,是负的

    总结

    • 对于这种难度很大,时间很短的比赛,先去打部分分
    • 对于码量明显很大的题,适当放弃
  • 相关阅读:
    git(常用命令)思维导图...
    有关gitlab的神秘操作.....version&&domain设置...
    Gitlab不小心关闭了sign-in,无法登录web的坑。。。
    聊聊CMSIS-RTOS是什么东东
    c#接口interface学习
    没有内置小鹤双拼的rime输入法就是差劲
    stm32中的型号对比——为什么很少用STM32F2,F3?
    stm32软件编程的框架及注意事项——rtos篇
    modbus-poll和modbus-slave工具的学习使用——modbus协议功能码3的解析(及欧姆龙温控器调试笔记)
    keil中error: #70: incomplete type is not allowed—解决方法
  • 原文地址:https://www.cnblogs.com/LightningUZ/p/15130489.html
Copyright © 2020-2023  润新知