首页 > 其他分享 >板刷 2019~?的省选题

板刷 2019~?的省选题

时间:2024-01-12 21:56:56浏览次数:32  
标签:选题 板刷 sum texttt AGC17C color 2019 Delta 区间

看看会不会咕/cf

除非极度不可做题,否则一般都是会写的。

每个题限时思考 \(30\min\),如果有想法可以延长;然后自己写/看题解。

BJOI2019

P5322 排兵布阵

  • \(\color{blue}\texttt{以前做过}\)

比较水的,略。

P5323 光线

  • \(\color{blue}\texttt{以前做过}\)

考虑记 \(f_i\) 为直接穿过第 \(i\) 面镜子的光有多少,记 \(g_i\) 为从第 \(i\) 面镜子反射回来的光有多少。

易得:

\[\begin{aligned} f_i & = f_{i-1}a_i\sum\limits_{k=0}^{\infty} (g_{i-1}b_i)^k\\ g_i & = b_i+g_{i-1}a_i^2\sum\limits_{k=0}^{\infty} (g_{i-1}b_i)^k \end{aligned} \]

核心思想是一道光从上面打下了和从下面打上来,一面镜子能射回去的光是相同的。

然后就做完了。

P5324 删数

  • \(\color{gold}\texttt{想出 50\% 以上}\)

主要是之前做过其弱化版 AGC17C,所以一上来就有想法。

My AGC17C solution

首先观察到的是,这个题和 AGC17C 唯一的区别就是多了全局 \(\pm 1\) 的操作,所以很自然的会去想到维护一个 \(\Delta\) 去描述这个东西。

然后 update 操作就变成了 delete 掉 \(a_p\) 再 insert 进去 \(x+\Delta\),然后最后就是查询 \(n-\text{sum of }(1+\Delta,n+\Delta)\) 的值。

看起来很对,但是有一种特殊情况:

如图,我们的合法区间边界 \([1+\Delta,n+\Delta]\) 向左挪了一点(黑->蓝),然后红线(对应一条线段 \((x-cnt_x+1)\text{-}(x)\))的端点到了边框之外,这时候显然整个红线我们都要 change 掉(因为不满足 \(a_i=n\) 了),但是事实上根据我们上面的做法还是会将其统计进去。

所以我们上面讲了一堆是个假做法。

考虑如何处理,一个比较自然的想法是,每次边框左移时,就把红线 delete 掉;右移时再把红线 insert 进去。

那么这个相对于要支持下面的一个数据结构:

  • 区间修,不会出现负数,查询一个区间内有多少个 \(0\)。

考虑到如果一个区间内出现了零,则其必然时整个区间的最小值(因为值非负),所以我们维护一个区间的最小值和最小值出现个数即可,这个是简单的。

然后就做完了,复杂度 \(\Theta((n+q)\log{n})\)。

标签:选题,板刷,sum,texttt,AGC17C,color,2019,Delta,区间
From: https://www.cnblogs.com/lsj2009/p/17961683

相关文章

  • [GXYCTF2019]BabyUpload
    [GXYCTF2019]BabyUpload打开靶场看到个上传文件的选项,应该是上传文件漏洞上传个一句话木马文件尝试<?phpeval($_POST['cmd']);?>提示不能带有php的后缀改成jpg后缀,提示“上传类型也太露骨了吧!”修改了Content-Type为image/jpeg还是不行换了一种一句话木马GIF89a<sc......
  • [极客大挑战 2019]Secret File 1
    [极客大挑战2019]SecretFile1审题看到题目应该是一道简单的按照要求找flag的题目知识点跟着题目走解题一,查看源码找到网站进入点开发现【注意它说没看清吗】二,使用BP抓包试试发现新出现了/action.php抓到后放到Repeater中响应得到一个新的网址secr3t.php打......
  • [GXYCTF2019]Ping Ping Ping 1
    [GXYCTF2019]PingPingPing1审题由标题和内容,我们可以想到Linux的命令执行。并且由内容/?ip=,看出用GET注入ip变量来读取flag知识点Linux的命令执行,空格的绕过知识点详解在Linux中,竖线符号"|"和分号符号";"具有不同的作用。竖线符号"|"(管道符号):在Linux......
  • 2016 2019 李世石 人机大战 谷歌人工智能AlphaGo 韩国人工智能"韩豆"
    2016年3月,谷歌围棋人工智能机器人“阿尔法狗”与韩国棋手李世石进行较量,“阿尔法狗”获得比赛胜利,最终双方总比分定格在4:1。首场人机大战结束后,“阿尔法狗”之父、德米斯·哈萨比斯表示,人工智能的下一步目标是让计算机自己学棋。也就是说,下个版本的“阿尔法狗”将从零开始,不接受......
  • BJOI 2019 解题报告
    P5319[BJOI2019]奥术神杖数学题。搞掉几何平均数的方法是左右取对数,然后变成一个经典的\(0/1\)分数规划问题。解决方法是二分答案后AC自动机+DP。P5322[BJOI2019]排兵布阵简单题。随便DP即可,五分钟之内没想出这道题的赶快去加训。P5320[BJOI2019]勘破神机科技......
  • ciscn_2019_es_2
    ciscn_2019_es_2栈迁移read()存在溢出,但是只有0x30个位置不能拿到shell,所以考虑栈迁移通过泄露参数s在栈上的位置,将payload写入栈上迁移栈到参数s的位置,运行写入的payload拿到shellleaved=>movesp,ebppopebp#清除栈帧,初始化到执行前的样子ret=>popeipj......
  • ciscn_2019_s_3
    ciscn_2019_s_3ret2csu在64位程序中可以通过栈溢出控制__lib_csu_init中的参数来控制rdx,rsi,edi寄存器64位函数传入的参数依次存在寄存器rdi,rsi,rdx(顺序从左到右),返回值存在rax中syscall函数会根据rax的值来调用函数,例如当rax==0x3B时,运行execute栈地址泄露......
  • ciscn_2019_n_5
    ciscn_2019_n_5ret2shellcodelibc泄露程序没有开启NX保护,并且是RWX权限可以运行段上代码预期解:往name中写入shellcode,再利用get转跳到相应的.bss段上运行shellcode非预期解:通过get泄露puts()地址,泄露libc地址,劫持程序流得到shell.注意这里64位($rdi)和32位程序传......
  • ciscn_2019_ne_5
    ciscn_2019_ne_532位ROP劫持程序逻辑/bin/sh的替代方案sh栈上覆盖ROPgadgets查找字符串GetFlag函数1.GetFlag函数中把先前AddLog中加入的src变量赋给了dest,这里存在溢出2.Print函数中有system函数,通过plt_system利用3.通过ROPgadgets得到sh字符串构造pay......
  • Docker安装sqlserver-2019(已做持久化)
    Docker安装sqlserver-2019一.新建挂载目录并赋权mkdirsqlservercdsqlservermkdir-p/data/mssql#给目录赋予写的权限,不然在容器启动的时候,文件无法挂载chmod-R777./data/mssql二.准备docker-compose文件#在预先创建的sqlserver目录下vidocker-compose.yml#写入......