PKUSC2019 改题记录

我真的是个sb。。。

警告:不一定是对的。。。


D1T1

有一个国家由\(n\)个村庄组成,每个村庄有一个人。对每个\(i\in[1,n-1],\)第\(i\)个村庄到第\(i+1\)个村庄有一条边。村民的移动方式是选择两个相邻的村庄,交换这两个村庄里的人。每年人们都想出去旅游,每年结束时第\(i\)个村庄里的人想去第\(p_i\)个村庄,保证\(p\)是一个排列。

政府会在一些路上收取过路费。在每年的开始,会有一条路上加入哨卡。在一次移动中,如果移动涉及到的路上有哨卡,或者移动涉及到的两个人在这一年经过过哨卡,就要支付1过路费。村民们想最小化每年需要支付的过路费之和。当一年结束,村民都到达目标点之后,会瞬间回到原来的村庄。

\(n\leq 10^6\)。


答案是经过了哨卡的逆序对之和。

那么从后往前线段树合并一下就行了。


D1T2

有\(2n\)个同学在\(n\)个球桌上打比赛,一共有\(m+1\)轮。第一轮比赛方案已经确定好,在一轮时每一桌双方会进行一场比赛。同学的编号代表他的实力,一场比赛时,编号小的同学有\(\frac 13\)的概率获胜。第\(i(i>1)\)轮时:

第\(1\)桌由上一轮第\(1\)桌和第\(2\)桌的败者组成;
第\(j(j\in[2,n-1])\)桌由上一轮第\(j-1\)桌的胜者和第\(j+1\)桌的败者组成;
第\(n\)桌由上一轮第\(n-1\)桌和第\(n\)桌的胜者组成。

对于所有的\(i,j\)求第\(m+1\)轮\(i\)同学在第\(j\)个桌子比赛的概率。

\(n\leq 9,m\leq 20\)。


当然可以直接状压,但是会T。

对每个数\(i\)将编号\(\leq i\)设为\(0\),\(>i\)设为\(1\),这样状压就行了,总的状态数是\(3^n\)的。

一次转移的复杂度是\(\sum_{i=0}^{3^n-1}2^{\sum_{j=0}^{n-1}[i[j]=0]}\)的,\(i\)是个三进制数,\(i[j]\)是\(i\)在第\(j\)位的值。


D1T3

有\(n\)个数,第\(i\)个数是\(a_i\)。

有\(q\)个询问,第\(i\)个询问形如\(x,y\),表示询问是否存在一个\(k\)使得序列所有数都异或\(k\)后,第\(x\)个数排名为\(y\)。

\(n\leq 50000,q\leq 1000000,a_i<2^{60}\)。


对每个询问,从踹树上走到\(a_x\),走一步时,如果要从\(p\)走到\(ch_{p,0}\),那么可以选择将排名增加\(sum_{ch_{p,1}}\)。就是一个bitset优化背包。这样是\(O(nq\log a/w)\)的。

显然相同的\(x\)可以一起处理,那么复杂度降为\(O(n^2\log a/w)\)。

在踹树上搜索边搜边维护bitset,如果这个点只有一个儿子就不用转移这个背包。多余一个儿子的点数显然\(O(n)\),复杂度成功优化到\(O(n^2/w)\)。


D2T1

有一棵\(n\)个点的树,要给这棵树染色,有\(m\)种颜色。相邻两个点颜色不能相同,还有\(k\)个限制,每个限制形如\(x,y\),表示第\(x\)个点不能染颜色\(y\)。求染色方案数。

\(n\leq 200000,m\leq 10^9,k\leq 100000\)。


显然的dp就不说了。

显然一个子树里,除了在这个子树中有被限制过的颜色外,dp值都相同。

那么只用记有限制过的颜色的dp值和其他的dp值,用线段树记,转移在线段树合并时进行。我现场的操作需要用到区间乘矩阵所以卡常了1h想不到常数更优秀的办法了。


D2T2

有一棵\(n\)个点的树,你要构造一个\(m\)维空间以及\(n\)个点\((x_{i,1},x_{i,2},\cdots,x_{i,m})\),使得对任意的\(i,j\),满足\(i,j\)在树上的距离等于在空间里的曼哈顿距离。

如果有多种方案,你需要在\(m\)最小的前提下输出任意一个。

\(n\leq 100\)。


有一种想法,就是把树分成若干条边不交的链,然后每条链开一维,然后这一维的方法就是这条链按顺序标号,其他点这一维的值是离得最近的这条链上的点的标号。

发现可以优化,假如有一棵树是这样的:

然后你分了链1-2-3-4,链2-5,链3-6。这个2-5和3-6链是可以拼起来的。拼成新的一维,这一维可以看作是一条链,但是和其他链重复的边的两边标号相等。比如2-3边,这一维的标号就相等。这条新的链可看做5-(2,3)-6。

这样的可行方案是:(1,2),(2,2),(3,2),(4,2),(2,1),(3,3)。

两条链拼成新的链很蠢,实际上就是选若干条链,可重复地覆盖这棵树,然后每条链开一维。

那么是这个题。https://loj.ac/problem/2371

注意:方案对的但我不保证m一定最小。但是有考场切了的说我这个和他一样,那就是最小的吧。。。

UPD:有一个下界是叶子节点除以2向上取整,好像可以达到,那就是最小的吧。。


D2T3

定义弦线图表示线图是弦图的图。

有一棵树,你要加入任意条无向边,求新图是弦线图的方案数。

\(n\leq 200000\)。


首先是仙仙图的充要条件是没有\(\geq 4\)个点的环。

那么新加的边只能连距离为2的点,而且不能相交(脑补一下)新加的这条边会覆盖这两个点之间的树边,每条树边只能被覆盖一次。

这就是一个沙雕dp了。设\(f[i][0/1]\)表示\(i\)这个点子树中的方案数,\(i\)到父亲的边没选/选了。

那么只需要看到儿子的边还没选的那些,而且方案数之和这个有关。

设\(g[i][0/1]\)表示一个点有\(i\)个儿子的边可以选的方案数,这个点到父亲的边没选/选了。

那么\(g[i][0]=g[i-1][0]+g[i-2][0](i-1)\),\(g[i][1]=g[i-1][1]+g[i-2][1]\cdot(i-1)+g[i-1][0]\)。

有\(i\)个儿子可以选的所有方案的\(f\)之和可以分治ntt。

就做完了。

PKUSC2019 改题记录的更多相关文章

  1. 纪中2018暑假培训day5提高b组改题记录

    因为今天省选组也做a组,以为今天a组会很难,就做了做b组.t1和t3强行暴力,好在有t2保底.t1和正解就差一点,然而考试时死活想不起来...... 今天改题可以少改一道了!ovo 救救孩子吧!t1T ...

  2. 纪中2018暑假培训day3提高a组改题记录(混有部分b组)

    day3 模拟赛,看了看a组题,发现是博弈论,非常开心(因为好玩),于是做的a组.结果差点爆零,死命纠结t1的sg函数,但其实只是一个dp,不用扯到sg函数的那种. t1: Description 被 ...

  3. 纪中2018暑假培训day7提高b组改题记录

    由于今天太颓了,所以没有解释 t1: Description 码零鼠是一只很喜欢mx数学的神犇,上面那个不是ta本人的样子.这天,ta在研究一个神奇的数列,这个数列是这样的:a0 = 1an = ai ...

  4. 纪中2018暑假培训day1提高b组改题记录

    收到意见,认为每天的程序和随笔放在一起写的博客太长了,于是分开整理 day1 模拟赛,看了看提高a组t1的样例就不太想写,于是转而写b组 t1: Description 给定一个n个点m条边的有向图, ...

  5. 【Richard 的刷(水)题记录】

    大概想了想,还是有个记录比较好. 9/24 网络流一日游: 最大流:bzoj1711[Usaco2007 Open]Dining 拆点 BZOJ 3993 Sdoi2015 星际战争 二分 P.S.这 ...

  6. ZJOI2019一轮停课刷题记录

    Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. ...

  7. NOIp2018停课刷题记录

    Preface 老叶说了高中停课但是初中不停的消息后我就为争取民主献出一份力量 其实就是和老师申请了下让我们HW的三个人听课结果真停了 那么还是珍惜这次机会好好提升下自己吧不然就\(AFO\)了 Li ...

  8. 刷题记录:[LCTF]bestphp's revenge

    目录 刷题记录:[LCTF]bestphp's revenge 一.知识点 1.SoapClient触发反序列化导致ssrf 2.serialize_hander处理session方式不同导致sess ...

  9. 刷题记录:[0CTF 2016]piapiapia

    目录 刷题记录:[0CTF 2016]piapiapia 一.涉及知识点 1.数组绕过正则及相关 2.改变序列化字符串长度导致反序列化漏洞 二.解题方法 刷题记录:[0CTF 2016]piapiap ...

随机推荐

  1. go语言学习笔记---读取文件io/ioutil 包

    io/ioutil 包几个函数方法 名称  作用 备注 ReadAll 读取数据,返回读到的字节 slice 1 ReadDir 读取一个目录,返回目录入口数组 []os.FileInfo, 2 Re ...

  2. 易百教程人工智能python修正-人工智能数据准备-标记数据

    我们已经知道,某种格式的数据对于机器学习算法是必需的. 另一个重要的要求是,在将数据作为机器学习算法的输入发送之前,必须正确标记数据. 例如,如果所说的分类,那么数据上会有很多标记. 这些标记以文字, ...

  3. 不能在本机启动SQL Server服务错误代码126(要在协议里面禁用所有别的VIA,是怎么回事?)

    在启动数据库sql服务的时候提示[Windows 不能在 本地计算机 启动 SQL Server . 有关更多信息,查阅系统事件日志.如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定 ...

  4. JavaScript_01-script

    编译和解释 var a = 0; console.log(a); var b = "abc"; 编译: 一次性把代码转换成 CPU 可以看懂的语言,一行一行执行: 解释:一行一行解 ...

  5. 设置 SQL*Plus 的运行环境

    SQL*Plus 的运行环境是用来输入.执行 SQL*Plus 命令和显示返回结果的场所,设置合适的 SQL*Plus 运行环境,可以使 SQL*Plus 按照用户的要求运行和执行各种操作.set 命 ...

  6. SAP云平台里的三叉戟应用

    大家第一次看到SAP MTA这个词组,会联想到什么? Jerry第一次看到的时候,联想到的是那一个个足坛著名的三叉戟攻击组合. 海皇波塞冬(Poseidon),奥林匹斯十二神中地位仅次于宙斯的大神,海 ...

  7. springboot启动后执行一段代码的方式

    文章转载自: https://www.cnblogs.com/zuidongfeng/p/9926471.html https://blog.csdn.net/zknxx/article/detail ...

  8. Spring @Transactional注解不起作用解决办法及原理分析

    Transactional失效场景介绍 第一种 Transactional注解标注方法修饰符为非public时,@Transactional注解将会不起作用.例如以下代码. 定义一个错误的@Trans ...

  9. ECharts 散点图+百度地图(案例转载)

    转载来源:https://efe.baidu.com/blog/echarts-map-tutorial-2/ ECharts 实现地图散点图(下)  小红  2016-06-13  ECharts, ...

  10. 交易开拓者旗舰版(TB旗舰版)软件升级中如何迁移用户数据

    方法一: 1.导出工作区,桌面和系统设置.操作:文件->导入和导出 2.导出公式.操作:tb公式->公式导入导出. 3.拷贝工作室文件.目录在:user\tb用户名\Workroom 4. ...