刷了一下,写一下。

T1.

天天爱射击

可以这样想。

我们二分一下每一块木板在什么时刻被击碎。

然后直接用主席树维护的话是\(O(nlog^2n)\)的。

会\(T\),而且是一分不给那种。。。

那么换个想法,既然都用主席树了,还二分啥。

可以直接主席树上查区间排名。

似乎也可以整体二分。

复杂度\(O(nlogn)\)

T2.

机场

很神仙的一个网络流。

首先离散时间点。

然后先假设飞机都停到\(B\)区了。

那么一架飞机是否在\(A\)处停,有两种选择。

一种停一种不停。

分别建边,然后费用设为两种情况的代价即可。

这样某些流在某些事件溜出去,然后再混进来,这个过程中出去就相当于是在\(A\)停了一停。

求最小费用最大流即可。

费用就是答案。

T3

体育成绩统计

按题意模拟。

T4

玩游戏

我们发现我们只需要\(check\)出两人得分是否是个数\(n\)的等差数列求和。

如果不是判无解。

否则我们尽量用大的数给第一个人决策。

可以发现因为最小的数是1,所以无论如何都会存在解。

T5

小\(L\)的计算题

和清华集训2017生成树计数一样。

是那道题的套路之一。

T6

绿绿与串串

是一个类似马拉车+\(dp\)的东西。

一个点的回文如果右端点到\(n\)那么合法。

如果一个点的右端点合法并且左端点到\(1\)那么也合法。

代码特别妙。

T7

好图计数

一个比较厉害的\(dp\)。

我们发现联通的好图和不连通的好图是一一对应的。

设\(i\)个点的好图个数\(f_i\),\(i\)个点联通的好图个数是\(g_i\)。

那么当\(i>1\)的时候\(f_i=2g_i\)

设\(f_0=1\)。

设\(\{f\}\)的生成函数为\(F(x)\)。

那么\(F(x)=\sum\limits_{i=0}^{+\infty}f_ix^i\)。

然后考虑求\(F(x)\)。

因为一个好图的每一个连通块自然都是好图。

那么我可以用\(f\)和\(g\)来求出\(f\)。

考虑每一个连通块的大小和这种大小的连通块在图中存在的个数以及这种大小连通块的种类数。

那么有:

\[F(x)=\prod\limits_{i=1}^{+\infty}\left(\sum\limits_{j=0}^{+\infty}x^{ij}\right)^{g_i}
\]

那么用一下形式幂级数求和,然后开始倒腾式子。

\[\begin{aligned}
F(x)&=\prod\limits_{i=1}^{+\infty}\left(\frac{1}{1-x^i}\right)^{g_i}\\
ln(F(x))&=\sum\limits_{i=1}^{+\infty}g_iln\left(\frac{1}{1-x^i}\right)\\
\frac{F'(x)}{F(x)}&=\sum\limits_{i=1}^{+\infty}\frac{g_iix^{i-1}}{1-x^i}\\
F'(x)&=F(x)\sum\limits_{i=1}^{+\infty}g_iix^{i-1}\sum\limits_{j=0}^{+\infty}x^{ij-1}\\
[x^n]F'(x)&=(n+1)f_{n+1}\\
&=\sum\limits_{k=0}^{n}f_k\left([x^{n-k}]\left(\sum\limits_{i=1}^{+\infty}g_iix^{i-1}\sum\limits_{j=0}^{+\infty}x^{ij-1}\right)\right)\\
&=\sum\limits_{k=0}^{n}f_k\sum\limits_{i|(n-k+1)}g_ii\\
\end{aligned}\]

设\(s_i=\sum\limits_{j|i}g_jj\)

然后求出\(f\)之后就可以顺手求出一个\(g\)来。

可以做一个\(O(n^2)\)的递推卡常过去。

或者就干脆做一个\(nlog^2n\)的分治\(NTT\)就行了。

T8

找树

似乎是远古杂题了。

事实上我们要求的就是每一种权值的方案数是否为0.

怎么做?

首先我们发现不能拆位来做。

就很恶心。

否则可以直接做矩阵树定理来求这个东西。

我们其实仍然可以拆位来做。

用\(exFWT\)来把每一位拆成点值。

然后直接用边缘矩阵树定理处理这个桶,求出每一个位置应当有的权值。

这相当于对所有的点值做一个树形乘法。

正好符合点值对位相乘的性质。

得到的新桶我们在\(exFWT\)回来就得到了最终的方案数数组。

\(exFWT\)的用法是在每一位可以用不同的位运算来计算。

只需要在不同的位用不同的\(FWT\)计算方法就可以。

正确性显然。

「刷题」THUPC泛做的更多相关文章

  1. 「刷题」Triple

    正解是普通型母函数+FFT. 才学了多项式,做了一道比较好的题了. 首先有三个斧子被偷了. 我们考虑构造一种普通型母函数. 就是说一种多项式吧,我的理解. 系数是方案,下标,也就是所谓的元指数代表的是 ...

  2. 「刷题」xor

    说实话这道题没有A掉,不过所有的思路都是我自己想的,我觉得这个思路真的很棒很棒很棒的. 首先这个题的题面描述告诉我这种运算有封闭性,满足结合律和交换率,那么其实这个东西是个群运算了,而且这个群有单位元 ...

  3. 「刷题」JZPKIL

    这道反演题,真牛逼. 以下用$B$代表伯努利数,$l*g=f$代表狄利克雷卷积,先推式子. 对于给出的$n,x,y$求一百组数据的$ans$ $\begin{array}{rcl} ans & ...

  4. 「刷题」GERALD07加强版

    是LCT了. 首先我们不知道联通块怎么数. 然后颓标签知道了是LCT. 那么考虑一下怎么LCT搞. 有一个很普遍的思路大家也应该都知道,就是如何求一个区间中某种颜色的个数. 这个可以很简单的用主席树来 ...

  5. 「刷题」可怜与STS

    又是一道假期望,我们发现一共有$ C_{2n}^m $种情况. 而$ \frac{(2n)!}{m!(2n-m)!}=C_{2n}^m $ 其实结果就是各个情况总伤害. 1.10分算法,爆搜10分. ...

  6. 「刷题」Color 群论

    这道题乍一看挺水的,直接$ Ploya $就可以了,可是再看看数据范围:n<=1e9 那就是有1e9种置换,这不歇比了. 于是考虑式子的优化. 首先证明,转i次的置换的每个循环结大小是 $ gc ...

  7. 「刷题」卡特兰数&prufer序列

    1.网格 转换模型,翻折容斥出解. 2.有趣的数列 抽象一下模型,把奇数项当作横坐标,偶数项当作纵坐标,就是从n*n矩阵左下角走到右上角并且每一步x<=y的方案数,发现是卡特兰数,关于gcd,可 ...

  8. 「PKUWC2018/PKUSC2018」试题选做

    「PKUWC2018/PKUSC2018」试题选做 最近还没想好报THUSC还是PKUSC,THU发我的三类约(再来一瓶)不知道要不要用,甚至不知道营还办不办,协议还有没有用.所以这些事情就暂时先不管 ...

  9. 「刷题笔记」AC自动机

    自动AC机 Keywords Research 板子题,同luoguP3808,不过是多测. 然后多测不清空,\(MLE\)两行泪. 板子放一下 #include<bits/stdc++.h&g ...

随机推荐

  1. MySQL实战45讲(16--20)-笔记

    目录 16 | "order by"是怎么工作的? 全字段排序 rowid 排序 17 | 如何正确地显示随机消息? 内存临时表 磁盘临时表 随机排序方法 18 | 为什么这些SQ ...

  2. WPF 第三方资源

    1.XCeed 开发的Extended WPF Toolkit http://wpftoolkit.codeplex.com/ http://www.csdn123.com/html/blogs/20 ...

  3. 496. 下一个更大元素 I

    496. 下一个更大元素 I 给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. ...

  4. C++ windows 函数讲解(二)鼠标坐标

    获得鼠标坐标: #include<bits/stdc++.h> #include<windows.h> using namespace std; int main() { PO ...

  5. SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x90\xA3\xF0\x9F...' for column

    在做微信公众号保存用户数据时出现这种错误,一直不知道是哪里的原因,后来发现那个用户昵称带着一只兔子表情,由于数据库编码限制不能保存数据,所有需要先编码, 用PHP的函数就是base64_encode, ...

  6. dubbo微服务架构

    架构 节点角色说明 调用关系说明 服务容器负责启动,加载,运行服务提供者. 服务提供者在启动时,向注册中心注册自己提供的服务. 服务消费者在启动时,向注册中心订阅自己所需的服务. 注册中心返回服务提供 ...

  7. Navicat连接数据库成功,新建查询时提示错误“Cannot create file ……”

    Navicat连接数据库成功,新建查询时提示错误"Cannot create file --" 原因:编辑连接{高级}<设置位置>被修改,该oci.dll不正确 解决方 ...

  8. 深入理解Python切片

    Python序列的切片很基础同时也很重要,最近看到一个[::-1]的表达,不明所以,查了一些资料并实际操作,对Python切片有了更深刻的认识,以下结合例子详细说明.先看下切片的基本语法,一般认为切片 ...

  9. CF1251F-Red-White Fence【NTT】

    前言 刚开始看错题推了半天的生成函数 正题 题目链接:https://www.luogu.com.cn/problem/CF1251F 题目大意 $n$个白色木板,$k$个红色木板,给出这些木板的高度 ...

  10. P1791-[国家集训队]人员雇佣【最大权闭合图】

    正题 题目链接:https://www.luogu.com.cn/problem/P1791 题目大意 有\(n\)个人,雇佣第\(i\)个需要\(A_i\)的费用,对于\(E_{i,j}\)表示如果 ...