首页 > 其他分享 >BJOI 2019 解题报告

BJOI 2019 解题报告

时间:2023-12-31 22:00:27浏览次数:41  
标签:BJOI2019 这个 sum BJOI sqrt 查询 解题 2019

P5319 [BJOI2019] 奥术神杖

数学题。搞掉几何平均数的方法是左右取对数,然后变成一个经典的 \(0/1\) 分数规划问题。解决方法是二分答案后 AC 自动机 + DP。

P5322 [BJOI2019] 排兵布阵

简单题。随便 DP 即可,五分钟之内没想出这道题的赶快去加训。

P5320 [BJOI2019] 勘破神机

科技题。此题涉及到的知识点较多,请谨慎选择做不做这个题。

首先肯定要组合数转下降幂,否则组合数很难处理掉。既然都转下降幂了,就直接搬出大杀器第一类斯特林数,转为求 \(\frac{1}{k!}\sum\sum\operatorname{Stiring}(k, j)f_i^j\)。对于 \(2, 3\) 分别求出 \(f\) 的通项公式,似乎就可以做了。

事实上,第二问确实这样做就直接结束了,但是第一问有个麻烦的地方是 \(\sqrt{5}\) 在 \(\bmod 9982444353\) 意义下不存在,那我们只好对这个进行扩域,可以设 \(i^2=5\),最后这一项的系数必为 \(0\);或者根据 rqy 大佬所说,\(\sqrt{x}\) 不存在的话 \(\sqrt{-x}\) 必然存在,也可以做。

P5324 [BJOI2019] 删数

ds 题。有一个明显的结论,但不知道怎么说比较形式化;按照第一篇题解的说法,就是开桶以后向左推倒,未被覆盖的位置个数。

那么这个就可以线段树维护了。操作二相当于整体平移。

P5323 [BJOI2019] 光线

物理题。简单推个式子就能做了。小粉兔很强,采用了 \(O(n)\) 的优秀做法,技压群雄。

P5321 [BJOI2019] 送别

有趣题。这个题目描述正是走迷宫的时候的一个惯用方法,就是沿着一边走,而这么走肯定是沿着一个环走的,所以我们考虑怎么维护好多个环。

注意这里要内外分开维护。内外不一定是一起的。

观察它的操作。加边会连接两个环或把一个环断成两个,断边会销毁两个本来连接在一起的环产生一个新环,反之亦然。而查询相当于在环上查询相对位置的差。这告诉我们我们要有一个支持快速分裂,快速合并,快速单点查询的数据结构——你想到了什么?是平衡树。

剩下的问题就是一些细枝末节了,然后这个题理论上就做完了。但是仔细一想,这个题有一大堆很恶心的细节问题,可能是这个题评黑的原因。有时间写了他。

标签:BJOI2019,这个,sum,BJOI,sqrt,查询,解题,2019
From: https://www.cnblogs.com/Piggy424008/p/17938100/bjoi2019-report

相关文章

  • 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#写入......
  • 2019 考研English英语二
    参考范文DearProf.Smith,It’smypleasuretoplanthedebateoncitytraffic,andIamwritingmainlytoputforwardadviceonthetopicofthisdebateandintroducemypreliminaryarrangementsconcerned.Tobeginwith,thedebatecanbeconduc......
  • Windows Server 2019-Powershell之客户端加域
    将本地计算机添加到域或工作组,可通过Add-Computer命令操作,具体信息如下:语法:Add-Computer[-DomainName][-ComputerName<String[]>][-Confirm]-Credential[-Force][-LocalCredential][-NewName][-OUPath][-Options{AccountCreate|Win9XUpgrade|UnsecuredJoi......
  • P5333 [JSOI2019] 神经网络
    题面传送门本来以为\(m\)这么小是\(m\sumk_i\logk\)的NTT的,写完发现一点不用(首先我们发现,这样的图上面的一个哈密顿回路可以表示成原森林若干条链,每个点都在其中一条链上,且相邻两条链不在同一棵树上。先跑一个DP把\(f_{i,j}\)表示用\(j\)条链覆盖\(i\)的方案数......
  • [SNOI2019] 网络 题解
    [SNOI2019]网络题解最喜欢这道题。简要题意给一颗\(n\)个节点的树和一个参数\(d\),定义两个节点\(x,y\)之间的距离为\(x\)到\(y\)的简单路径上的边数。定义一个树上连通块的权值为连通块中任意两点的距离之和。定义一个树上连通块的直径为连通块中任意两点距离的最......
  • VS2019,无法启动程序xxx.exe,系统找不到指定的文件,重新生成解决方案报错
     调试程序报错如图一、尝试重新生成解决方案二、如果生成解决方案也报错,重新安装.netSDK本人所用为VS2019,.net5,到官网下载.net5的SDK重新安装后,恢复正常,重新生成成功,启动调试成功。.net各版本下载地址:https://dotnet.microsoft.com/en-us/download/dotnet.net5下载地址:h......