首页 > 其他分享 >历年省选记录

历年省选记录

时间:2023-03-17 18:44:27浏览次数:48  
标签:pr 历年 14 记录 省选 质数 45 联考

23/3/6

小模拟,eezz。

23/3/7

谔谔

考虑一条链的第一问,计算钦定这条链上所有点权都 \(\in [l,l+K]\) 且最小值 \(=l\) 的方案数。

显然可以先容斥转化为 $\ \ $ 所有点权都 \(\in [l,l+K]\)的方案数 $\ \ $ 减去 $\ \ $ 所有点权都 \(\in [l+1,l+K]\)的方案数。

设 \(f(l,r)\) 表示所有点权都 \(\in [l,l+r]\)的方案数,那么对于这条链,答案就是 \(\sum_lf(l,l+K)-f(l+1,l+K)=\sum_lf(l,l+K)-\sum_lf(l+1,l+K)\)。

现在考虑求 \(\sum_lf(l,l+K)\)。

首先,对于一个点 \([l_i,r_i]\),它能取的数的个数为 \(| [l_i,r_i] \cap [l,l+K]|\)

当 \([l,l+K]\) 右移一位变为 \([l+1,l+K+1]\) 时,一个点能取的数个数只会有 +1,不变或者 -1 三种状态。

于是移动这个区间的时候,每个点状态都不变的值域段有 \(O(n)\) 段。

每一段中一个 \(l\) 的贡献就是 $\prod(a_i \pm l) $,是一个关于 \(l\) 的多项式。

于是一段连续值域就相当于一个多项式的区间的值的和,转化为多项式前缀和,进行一个拉格朗日值的插。

那对于第二问,就是把 \(a_i \pm l\) 变成 \(a_i+xl+yl^2\),变成一个二次的多项式,再插值复杂度仍是 \(O(n)\)。

Bonus:其实不用真的把多项式求出来,可以直接dp出一个点值。

BBounus:可恶的卡常。

end。

23/3/11

自己只能想到 \(O(m^2)\) 的费用流了,一写还出现了负环/ng,而且写挂了。。

寄寄寄


考虑性质 C:

直接把每个消息之间连有向边,有边 \((u,v)\) 表示消息 \(u\) 放在消息 \(v\)上面能产生贡献。

如果是 DAG 的话就万事大吉了,直接跑最小路径覆盖就行。

但是寄了,环一大堆。

但是由于性质 C,如果成环了则必定有:

  • 环里没有学术信息

  • 环里全是 loushang 或全是 louxia

以上两条性质显然。

由于题目中反复强调的重要性质,我们可以不断地断环成链。具体方法如下:

假设有一个环 \(A_1 \to B_1 \to C_1 \to A_1\)(字母表示发出者),且 \(A\) 的学术消息是 \(a\),当前接在 \(a\) 两侧的是 \(x \to a \to y\)(\(x\),\(y\)均为一条链或者没有)。

那么我们就可以把环接到链上,形成 (楼上形的环)\(x \to A_1 \to B_1 \to C_1 \to a \to y\) 或 (楼下形的环)\(x \to a \to B_1 \to C_1 \to A_1 \to y\),这两种方案显然合法且总贡献不变。

上面那个最小路径覆盖使用二分图做的,但是这样边数爆炸。

考虑优化建图,对人建出入两个虚点。u v louxia 的话 \(v\) 的出点连向这个消息的入点;u v loushang 的话这个消息的出点连向 \(v\) 的入点。

然后用残量网络先找出方案,接着用双向链表维护断环成链的过程,就好了。

然后是没有性质 C 的情况:

这个时候会出现 a b loushangb a louxia。这个时候把这俩接起来一定不劣。于是可以合并成一个 \(a\) 进 \(b\) 出的学术消息。

写起来比较恶心,而且我又被卡常了/cf

来自题解的卡常技巧:把所有边类型反一反,输出倒序。

这说明了加边顺序对 Dinic 的极大影响(


原来我10天才能补完 Day1/cf


23/3/16

先来自己思路。

首先数都不超过 \(2000\),所以 \(n \leq 10^6\) 显然是假的,直接同一个数合并。

然后考虑把每个数映射到一个和它质因子集合有关的东西上。

因为 \(s_i \leq 2000\), 所以每个数最有一个质因子 \(\geq \sqrt{2000} ≈ 45\),而 \(45\) 以下的质数只有 \(14\) 个,因此我们完全可以把每个数写成一个 \(14\) 位的二进制数加一个数(那个 \(\ge 45\) 的数)。

把用上述表示方法表示出来后相等的数搞成一个等价类,那么我们就可以用 \(num[pr][bit]\) 来表示那个 \(14\) 位的二进制数等于 \(bit\) 且那个大于 \(45\) 的质数是 \(pr\) 的数的个数。

接下来是询问。如果询问质数都 \(\leq 45\),那么可以直接 \(dp\) 预处理所有的答案,\(O(2^{14} \times 2000)\)(因为最多只有2000个位置有值)。

如果有大于 \(45\) 的质数,那么每个这样的质数都要有至少一个数来满足,而一个数最多只会被一个这样的质数整除。

于是我们先预处理出 \(a[pr][B]\) 表示在 \(num[pr][*]\) 中选几个,使得这些数的 \(bit\) 或起来等于 \(B\) 的方案数。应该还是 \(O(2^{14} \times 2000)\),理由同上。

然后就是喜闻乐见的FWT了。枚举 \(num[pr]\) 中选完数以后前 \(14\) 个质数的状态,算出方案数后配合上文的 \(dp\) 转化为质数都 \(\leq 45\) 的情况。而这个方案数就是每个 \(a[pr]\) 用 or 卷起来。

这下可以在外面处理完 \(a\) 以后直接 \(O(300*14*2^{14})\)(45以上大概300?个质数)FWT,然后在询问内 \(O(c_i*2^{14})\) 点乘,最后 \(O(m*2^{14}*14)\) 逆变换回原数列,完全可以。

好了好了,这下除了FWT都会了/cf/cf


Todo:

标签:pr,历年,14,记录,省选,质数,45,联考
From: https://www.cnblogs.com/jimmywang/p/17227841.html

相关文章

  • 省选武汉联测 6
    开局开T3,开出正解之后不想写,直接摆了。于是整场变成了口胡场。两个小时T3,两个小时T1。那我要是真写T3了我肯定车不出T1。赛后看看题解,发现T1和正解对上了,T3也没......
  • Nginx 配置记录
     #呼吸慢病患者端server{ listen80; server_namepatient.yuemiaotech.com; location/{ rootD:/Website/Wicrecloud/chronic/patient; ......
  • 联合省选2022
    预处理器(1)按照题目内容模拟即可,时间复杂度为\(O(n^{2}L)\)填树(2)当确定修改路径的端点后,假设区间构成序列\(\{[l_{m},r_{m}]\}\)​,则答案即\[\sum_{x}\prod_{i=1}^......
  • 省选联考 2021 A卷 图函数
    这个东西大概是可以转化成对于一个图,我们要支持加边,加边之后询问点对\((u,v)\)的对数,其中要求\(u<v\)并且\(u,v\)可以仅通过编号\(\geu\)的点双向到达。显然等价......
  • Mapper格式记录
    Mapper格式文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapper   PUBLIC"-//mybatis.org//DTDMapper3.0//EN"   "http://mybatis.org/dtd/......
  • vue转uniapp踩坑记录
    1、subpackage下的组件其他包不能import2、tarbar下的路由页面mounted方法只在小程序初始化的时候调用一次,下次再进入时调用onshow方法3、使用表单组件设置必填项时,必须......
  • 记录一次重置数据库root用户的过程
    服务器的mysql突然连接不上去了,密码也忘记了。只能重新设置密码了1、使用如下指令打开mysql数据库配置文件(具体的文件路径以实际情况为准)vim/etc/my.cnf在虚拟机中直接......
  • 记录抓包工具whistle的使用
    whistle主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应, 他更实用的操作是转发请求,替换本地文件, 安装(mac系统需要加sudo才能进行全局安装)sudonpminsta......
  • 3月16日记录
    计划写中期报告学习项目,并修改学习技术,什么技术不懂?很简单,照着写,改修改形势与政策执行09点34分 很郁闷,开始了15点14分 高了一个多小时的刑事政策15点14分......
  • 记录--一种更现代的深浅拷贝方法
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助你是否知道,JavaScript中有一种原生的方法来做对象的深拷贝?本文我们要介绍的是 structuredClone 函数,它......