联合省选2025 tj

d1 t2

实际上只需要把\(x\)能到的点集\(S_x\)和\(Sa_{[l,r]}\)交起来得到\(S\),再找到最大的\(v\)满足\(S\)和\(Sb_{[v,n]}\)的交不空即可

可以分块+手写\(bitset\)维护

复杂度\(O(\frac{NQ}w+Q\sqrt N)\)

d1 t3

遗憾\(\times1\)

考虑树/森林的部分分

显然对于每棵树,可以用该联通块内点值最小的那个点作为根,且给它放到序列的第一位

考虑后面怎么做,发现此时根\(rt\)的所有子树对应在序列上都是一段连续的区间,也即可以递归下去,以儿子\(x\)对应的子树为例,但是注意到有连边\((rt,x)\),也就以为着,在\(x\)子树对应的区间\([l,r]\)中,设\(x\)在位置\(p\),那么要满足,\(x\)的子树,要么是在\([l,p)\)中的连续区间,要么是\((p,r]\)中的连续区间

那么树就解决了,森林的话,考虑俩序列 AB,要么是 AB的形式,要么是 ABA,即把 B整个的插入到 A中间

注意到如果我们求出了所有联通块的序列,然后也可以这样合并

现在考虑联通块咋整,发现联通块其实就是树上加了点环嘛,考虑咋处理这个环

大概画一个环 1,2,3,4,...,n,1,定义环边为我们这个环最外面那圈边(\((i,i\%n+1)\)),其余称做横叉边

显然我们必须得是把他们放成 1,2,3,...,n,任意一个数开头都行,总之要沿着环边绕一圈,否则一定会有边相交的

那么可以发现,所有的横叉边也不能相交,否则一定无解,而题目是保证有解的

那么问题就解决了,只需要对环特殊处理(即必须是按顺序放入序列),剩下的操作和树的操作差不多

这个找到环的过程就对啥各种\(scc\)乱搞就可以得到了啊

复杂度\(O(NlogN)\),瓶颈在排序

d2 t2

先考虑\(C\)性质,此时就是只要有一个点能走到其它所有点即可

若钦定就是\(1\)节点,那么可以设\(dp[S]\)表示\(1\)节点能通过只走\(S\)集合中的数就走到\(S\)集合中所有数的概率,\(1\in S\),转移有\(dp[S]=1-\sum_{T\subset S}dp[T]\times 2^{-edge(T,S-T)}\)

其中\(edge(A,B)\)表示集合\(A,B\)间的边数

现在考虑如果钦定的是集合\(P\)内的点都要到达所有点,怎么办,首先集合\(P\)得是一个强联通的联通块,这个可以类似这种\(dp\)的得到概率,考虑\(dp\)过程中的限制,就是要满足\(P\subset S\)

那么直接\(dp\)复杂度太高,考虑连边\(T\rightarrow S\),满足\(T\subset S\),边权为\(-2^{-edge(T,S_T)}\)

那么\(P\)对应的\(dp\)值就是所有\(P\subset S\)的\(S\)走到全集\(U\)的所有路径的权值和,一条路径的权值定义为所有边的乘积

复杂度\(O(3^N)\)

考虑没有\(C\)性质

首先有一个重要的性质,发现一个随机的图\(G'\)合法,当且仅当\(\forall v\),只取出权值\(\leq v\)的边后,\(G'\)的弱联通块和\(G\)的弱联通块都相同,且\(G'\)的每个弱联通块中都要有一个点能到达该弱联通块的所有点

考虑从\(v\rightarrow v+1\)的过程,实际上就是在合并所有弱联通块的\(P\)

枚举\(v\),现在取边权\(\leq v-1\)的所有边后的图,考虑加上权值为\(v\)的边后的影响

设\(f[S]\)表示\(S\)中的点恰为它们所处弱联通块的\(P\)的概率,且它们在加入\(v\)后存在\(S\)中某些点能到达\(S\)中所有点,\(g[S]\)表示\(S\)中的点都在同一弱联通块中且\(S\)就是该联通块的\(P\)的概率

转移过程类似\(C\)性质的

因为每次只需要重新计算会发生改变的部分,所以复杂度\(O(3^N)\)

d2 t3

遗憾\(\times2\)

考虑把原序列循环个\(m\)次,且每次把所有元素都\(-1\)

那么最终得到的序列就等同于,找到一个序列\(0<p_1<p_2<...<p_k\),满足\(p_1+n=p_k\),且\(a_{p_i}>a_{p_{i-1}+1\sim p_i-1}\),若\(p_i<n\)则\(p_{i+1}=p_i+1\)

然后如果你想得到复杂度大点的做法就是没想到循环多次,后面解法差不多,就是很多优雅的优化做不到了,为啥我知道,因为我考场就还没来得及上这个优化

然后你得到的就是\(a_{p_2\sim p_k}\),这里可以发现\(p_k=n\)得不到啊,这个反正暴力处理一下就好了嘛,然后还有第一轮就有数被杀了的那些特殊情况,总之好弄的啊

然后发现有很多\(\{p_i\}\)其实本质相同,就是满足\(\forall i\leq k\),\(p_i=p'_i+ne\),其中\(e\)对于一对\(\{p_i\}\)和\(\{p'_i\}\)是一个固定的非零整数

我们称之为等价类

对于同一等价类的,显然可以放到那个\(p_1\)最小的上面去处理,然后这个\(\{p_i\}\)对答案的贡献就是\(\min a_{p_i}\),且此时满足\(p_1\in[1,n]\)

显然可以\(dp\)了

如果把\(\min\)值放进\(dp\)位里复杂度太高了,于是考虑固定\(u\)满足\(u\in\{p_i\}\)且\(u\)是满足\(a_u=\min\)且最小的点,那么就是说,\(<u\)的只能选\(>a_u\)的,大于\(u\)的可以选\(\geq a_u\)的

\(dp\)转移显然两侧独立,且其中一侧的转移有单调性

复杂度\(O(N^2)\)

联合省选2025 tj的更多相关文章

  1. 【NOI2019十二省联合省选】部分题简要题解

    Day 1 T1 异或粽子 题意:给出一个长为n的序列,选择K个不完全重合的区间使得每个区间的异或值的总和最大. 题解:先做一个前缀异或和,对于每一个右端点我们记录三元组(l,r,x)表示在左端点在\ ...

  2. JSOI(联合省选)2021 划水记

    流水账. Day 0 18:10 去本部拿准考证,结果发现已经没有人了./ruo 敲了几份板子,很早就去睡觉了. Day 1 7:30 到 NFLS 拿到准考证,几乎没有人来.于是做起了政治作业. 然 ...

  3. 多条件查询(php+mysql) 租房子例子

    <body> <?php //多条件 $tiaojian2= " 2=2 "; $attr2 = ""; //判断区域 if(!empty($ ...

  4. 九省联考 2018 Day 1 复现

    前言 今年省选还有 15 天.每天针对性刷题学知识点有点枯燥,想到真题还没刷,就对着 pdf 做了一遍. A. 一双木棋 去年省选得了 25,应该是 \(n=2,m=2\) 的贪心和 \(m=1\) ...

  5. sb 错误

    数组开小.很容易 \(2 \times 10^5\) 或 \(10^6\) 就开成 \(10^5\),或者各种变量的数据范围混用,\(m \leq 5\times 10^5\),结果只开到了 \(n\ ...

  6. 背水一战——CSP2021/NOIP2021 游记

    洛谷 version 转载本文章的其他链接: 1(S00021 提供) 2(Ew_Cors 提供) \[\texttt{2021.9.10} \] 终于开坑了. 笑死,初赛根本还没开始复习,反正初赛也 ...

  7. LGP6667题解

    既然看到了这道"板子",那还是来写一下题解吧... 如果有机会希望能推一下 载谈binominial sum 的做法. \[\sum_{k=0}^nf(k)\binom n kx^ ...

  8. [CF1515F] Phoenix and Earthquake(图论推导,构造)

    题面 在紧张又忙碌地准备联合省选时,发生了大地震,把原本要参赛的 n n n 个城市之间的全部 m m m 条道路震垮了,使得原本互相都能到达的这 n n n 个城市无法交通了.现在,需要紧急恢复 n ...

  9. 【Note】倍增

    真的不会.QAQ 目录 简介 大家都见过的应用:倍增求 \(\text{LCA}\) 倍增求 \(\text{LCA}\) ,但是动态加点,但是不会 \(lct\) 例题:[ZJOI2012]灾难(D ...

  10. 题解 nflsoj550 【六校联合训练 省选 #9】序列

    题目链接 以下把值域(题面里的\(lim\))记做\(m\). 考虑求\(k\)的答案.考虑每个位置对答案的贡献,枚举位置\(i\),再枚举\(a[i]\)的值\(x\).设: \[ F(k)=\su ...

随机推荐

  1. SpringSecurity5(10-动态权限管理)

    授权流程 SpringSecurity 的授权流程如下: 拦截请求,已认证用户访问受保护的 web 资源将被 SecurityFilterChain 中的 FilterSecurityIntercep ...

  2. Linux脚本-自动ping网址列表

    背景 公司某一项业务需要管理多种类硬件,有一些硬件的管理功能没有实现前台展示,检测和硬件之间的网络连接状况需要通过ping每个ip地址来单独实现.在需要大规模调试网络的时候,每个硬件单独ping就显得 ...

  3. 包和抽象类介绍--java进阶day02

    1.package包 导包第二点需要注意 a包和b包都存有Student类,c包存有测试类,我们在c中创建Student对象,系统会询问你要哪个包的Student类,并自动帮你导包 . 在导完a包的学 ...

  4. exim4

    exim4 一台 debian 机器日常执行 apt update 后发现需要更新如下软件包, 之前没见过, 特此记录下. root@idebian:~# apt list --upgradable ...

  5. sqlite的firedac显示设置

  6. 比较LLM的function calling,Agent 和MCP

    比较 对比维度 ​MCP(Model Context Protocol)​ ​Function Calling ​Agent(智能体)​ ​定义 由 Anthropic 推出的开放协议,标准化 LLM ...

  7. 基于FREERTOS的BOOTLOADER跳转APP调试笔记

    使用场景:BootLoader基于Freertos,APP是裸机 程序. BootLoader设置方法 void iap_app_load(uint32_t appxaddr) { uint32_t ...

  8. Asp.net mvc基础(三)View的查找

    1.指定转到的视图 View("指定的视图名称"); 优先于寻找Action方法名称可以创建的视图的文件夹,如果没有,就去View文件夹下的Shared文件夹寻找指定的视图名称. ...

  9. fidder抓包微信小程序的方法

    想获取小程序的请求和返回数据,要么通过抓包工具抓包,要么使用小程序调试工具直接查看 总结下怎样使用fidder抓包 第一步,各种配置,把下面一系列图片里该勾的都勾上,够好了重启fidder 第二步,打 ...

  10. Go 切片的扩容规则是怎么样的

    切片是动态数组,容量是根据元素动态增加的. 本来想看看源码怎么写的,发现切片追加元素的方法是内置的,看起来还挺麻烦 源码位于 builtin.go 中: // The append built-in ...