CF469E

\(n\) 个需要表示的数,请使用最少的 \(2^k\) 或 \(-2^k\) 表示出所有需要表示的数。输出方案。

\(n\le 10^5,|a_i|\le 10^5\)。

首先每个数肯定都只会被选一次,因为两个 \(1\) 没有一个 \(1\) 一个 \(2\) 优。

然后发现 \(1\) 和 \(-1\) 不会同时选,不如选 \(1\) 和 \(-2\) 或者 \(2\) 和 \(-1\)。

考虑缩小问题规模。如果所有数都是偶数,直接全部除以 \(2\)。否则一定要在 \(1\) 和 \(-1\) 中选一个。直接搜索。

如果每层都把数去重,第 \(i\) 层数的个数不会超过 \(\frac{\max(a_i)}{2^i}\)。时间复杂度 \(O((n+\max(a_i))\log \max(a_i))\)。

hihocoder 29D

给出一个正整数序列 \(a\),每次可以选择把一个数 \(+1\) 或者 \(-1\)。问最少要多少次才能把这个序列变成不上升序列。

\(n\le 5\times 10^5\)。

我们假设求的是不下降序列。

设 \(f(x)\) 表示最后一个数 \(\le x\) 的答案。由于每次加的代价都是线性的,他显然是一条每段斜率都是正数的折线。

在最右边加入一个 \(A\) 时,将 \(f(x)\) 加上 \(|x-A|\),再和 \(f(x-1)\) 取个 \(\min\)。

当两条折线相加时,把拐点取个并就行了。

求 \(\min\) 显然就是把折线最右边斜率 \(\ge 1\) 的都删掉。

具体做法就是每次插入两个拐点,把 \(x\) 最大的拐点删掉。

最后用 \(f(0)=\sum a_i\) 还原出纵坐标,就能求答案了。

CS Academy 32 G

考虑所有大小为 \(k\) 的正整数可重集,\(\{a_i\}\),其中 \(\sum a_i=n\),求所有 \(\sum a_i^m\) 的和。

\(n,m,k\le 4096\)

设 \(f_{i,j}\) 表示大小为 \(i\),和为 \(j\) 的总和。转移,由于要保证有序,所以要么是放一个 \(1\),要么是所有数 \(+1\)。

可以用组合数转移,复杂度 \(O(n^4)\)。

可以用斯特林数转移,复杂度 \(O(n^3)\)。

考虑 \(i^m\) 对答案的贡献,就是 \(\sum\limits_{j\ge 1}(至少 j 个 i 的方案数)\)。后面可以用类似上面的 DP 搞。

复杂度 \(O(n^2)\)。

CF470E

传说讲过?

就是那个什么鬼对角化。

THUPC 2017 I

给定 \(a_1\) 到 \(a_n\),求 \(f_1\) 到 \(f_n\)。其中 \(f_k\) 表示所有数 \(k\) 次方和。

\(n,k\le 2\times 10^5\)。

考虑 \(\sum(1+a_ix+a_i^2x^2+a_i^3x^3+\dots)\),这个就是答案的生成函数。

也就是 \(\sum\frac{1}{1-a_ix}\)。

分治 FFT 合并,没了。

复杂度两个 \(\log\)。(不知道能不能过?)

牛顿恒等式:对于一个首一多项式 \(F(x)=\sum\limits_{i=0}^nC_{n-i}x^i\),其中 \(C_0=1\),设 \(P_i\) 表示它的 \(n\) 个根的 \(i\) 次方和。对于所有正整数 \(d\),有等式 \(\sum\limits_{i=0}^{d-1}C_iP_{d-i}+C_dd=0\)。

知道 \(C\) 求 \(P\),可以多项式求逆,\(O(n\log n)\)。

知道 \(P\) 求 \(C\),可以多项式 exp,\(O(n\log n)\)。

对于这题,构造一个多项式 \(\prod(x-a_i)\)。\(a_i\) 就是这个多项式的根。带个牛顿恒等式两个 \(\log\)。(会不会被上面那吊打啊……)

某集训队互测题

\(n\) 个点 \(m\) 条带权无向边,权值是 \(0\) 到 \(16\)。问多少种方案选择一些边(不选重边),使得图联通,且边权和模 \(17\) 正好为 \(x\)。对每个 \(0\le x\le 16\) 都求答案。

\(n\le 17,m\le 10^5\)。

其实就是个循环卷积,且 \(998244353-1\) 是 \(17\) 的倍数,所以就要先 DFT,最后 IDFT 回去。

考虑总数减掉不连通的方案数。随便选的方案直接背包就行了。后面的枚举 \(1\) 所在的连通块。复杂度 \(O(3^n\times 17)\)。

设 \(f_S\) 表示 \(S\) 中随便选的方案数,\(g_S\) 表示 \(S\) 联通的方案数。

那么有 \(f=e^g,g=\ln f\)。乘法是子集卷积。

求 \(\ln\),脑补一下,莫比乌斯变换后,像对普通多项式暴力 \(\ln\) 一样做,然后反演回去就行了。

\(O(2^nn^2\times 17)\)。

SRM 702

\(n\) 个数 \(a_i\),定义一个区间是 \(k\) 快乐的当且仅当对于区间内每个数都能找到区间内另一个数和它差不超过 \(k\)。给出 \(m\) 求最小的一个 \(k\) 使得存在一个长度 \(\ge m\) 的 \(k\) 快乐区间。

\(n,m\le 10^5\)

二分。用一个数据结构搞出每个数左右第一个和它差不超过 \(k\) 且距离不小于 \(m\) 的位置 \(l_i,r_i\)。

考虑分治,问 \([L,R]\) 里面有没有子区间满足条件。

如果区间中存在一个数 \(i\) 使得 \(l_i<L,r_i>R\),那么这个数就没用了。分治 \([L,i-1]\) 和 \([i+1,R]\)。

否则一定有。

找 \(i\),从一边扫复杂度是错的,但是从两边同时扫就能保证复杂度了。

SRM 713

\(n\) 种物品,单个重量 \(w_i\),价值 \(v_i\),每种物品都有无限个。有 \(q\) 个询问:在所有拼出重量恰好为 \(m\) 的方案中,价值最大的是多少,达到最大价值的方案有多少种。注意的是 \((A,A,B)\) 和 \((A,B,A)\) 视为两种不同方案。

\(n,q,w_i\le 100,v_i,m\le 10^9\)。

注意到重量不超过 \(100\),那么矩阵优化一下转移就好了。

朴素是 \(O(qn^3\log m)\)。

如果我们二进制拆分,每次都保证是向量乘矩阵,复杂度是 \(O(n^3\log m+qn^2\log m)\)。

VK Cup 2017 Round 3 F

给定 \(A,N,p\),要对于所有 \(u\),求从 \(1\) 到 \(\lfloor\frac{A}{2^u}\rfloor\) 选出 \(n\) 个数,\(1\le n\le N\) 且 \(n\) 是奇数,且要满足最大数是奇数,的方案数。求和。模 \(p\)。

\(A\le 10^9,N\le 30000,10^4\le p\le 10^5+129\)。

枚举最大的数,

咕了。

SRM 715

……………………

什么鬼题面,不写了。

考虑 DP,\(f[i][x][j][y][l]\) 表示第一棵树的 \([i,i+l-1]\) 目前到根的遍历方式是 \(x\),第二棵树的 \([j,j+l-1]\) 目前到根的遍历方式是 \(y\) 可不可行。

转移就按题意模拟。

\(O(n^3)\)。

Codechef SNCKEL17

\(n\) 点 \(m\) 边无向图,每条边有编号。

\(q\) 次操作,每次交换两条边的编号,然后回答:按边从小到大加入,加到整张图连通时编号是多少。

\(n,m,q\le 10^5\)

这应该……动态维护最小生成树?

离线下来线段树分治 + LCT 就行了。

还有神奇分治,但是没听懂。

THUPC2017D

\(n\) 点 \(m\) 边无向简单图。每个点度数 \(\le 7\)。给点四染色,要求每个点最多有一个邻居和它颜色相同。输出方案或者无解。

\(n\le 25000,m\le 10^5\)。

先随便搞一个初始解,然后调整。

找一个萎掉的点,把它换成一种合法的颜色。

用队列模拟。

由于每次调整都能把两端颜色相同的边减少,所以复杂度是 \(O(m)\)。

ZROI 暑期高端峰会 A班 Day5 杂题选讲的更多相关文章

  1. ZROI 暑期高端峰会 A班 Day5 计算几何

    内积(点积) 很普及组,不讲了. \[(a,b)^2\le(a,a)(b,b)\] 外积(叉积) 也很普及组,不讲了. 旋转 对于矩阵 \(\begin{bmatrix}\cos\theta\\\si ...

  2. ZROI 暑期高端峰会 A班 Day2 线性代数

    高斯消元 很普及组,不讲了 当主元没有逆的时候可以辗转相除. 如果也没有带余数除法--没救了 逆矩阵 我们定义矩阵 \(A\) 的逆矩阵为 \(A^{-1}\),满足 \(AA^{-1}=A^{-1} ...

  3. ZROI 暑期高端峰会 A班 Day3 图论

    最短路 NOI2019 D2T1 弹跳 KD 树 线段树套set -> 线段树套并查集? POI2014/2015 ??? \(n\) 个点 \(m\) 条边 DAG.求删掉每个点后 \(1\) ...

  4. ZROI 暑期高端峰会 A班 Day4 生成函数

    一般生成函数 很普及组,不讲了 生成函数是一种形式幂级数,也就是我们只关心系数,不关心未知数具体的值. 比如 \(\sum\limits_{i\ge 0}x^i=\frac{1}{1-x}\).虽然只 ...

  5. ZROI 暑期高端峰会 A班 Day4 树上数据结构

    FBI Warning:本文含有大量人类的本质之一. 你经历过绝望吗? [ZJOI2007]捉迷藏 询问树上最远黑点对. 动态边分治可以比点分治少一个 \(\log\). bzoj3730 咕了. [ ...

  6. ZROI 暑期高端峰会 A班 Day1 组合计数

    AGC036F Square Constriants 一定有 \(l_i<p_i\le r_i\). 考虑朴素容斥,枚举每个数是 \(\le l_i\) 还是 \(\le r_i\).对于 \( ...

  7. ZROI 暑期高端峰会 A班 Day1 序列数据结构

    FBI Warning:本文包含大量人类的本质之一 CF643G 维护一个序列,可以区间赋值,求区间中出现超过 \(p\%\) 的数. 允许输出不对的数,允许重复输出,但是所有对的数都一定要输出.而且 ...

  8. ZROI 暑期高端峰会 A班 Day3 字符串

    FBI Warning:本文含有大量人类的本质之一 后缀树 反正后缀树就是反串的后缀自动机的 Parent 树,就不管了. 然而 SAM 也忘了 好的假装自己会吧--dls 后缀自动机 大概记得,不管 ...

  9. ZROI 暑期高端峰会 A班 Day6 离线问题

    FBI Warning:本文含有大量人类本质之一. 动态联通问题 允许离线. 模板,不讲了. 归并排序 %@)(#&%)++%($@)%!#(&%)(&@))) 主定理 U^( ...

随机推荐

  1. vue+element 给表格添加数据,页面不实时刷新的问题

    由于页面加载时,使用了keep-alive,keep-alive具有数据缓存作用,当在添加页面添加成功时,返回主页面没有立即更新.数据有缓存. 解决办法如下: 将获取数据列表的方法放到activate ...

  2. Vue.js 源码分析(十四) 基础篇 组件 自定义事件详解

    我们在开发组件时有时需要和父组件沟通,此时可以用自定义事件来实现 组件的事件分为自定义事件和原生事件,前者用于子组件给父组件发送消息的,后者用于在组件的根元素上直接监听一个原生事件,区别就是绑定原生事 ...

  3. pytorch tutorial 2

    这里使用pytorch进行一个简单的二分类模型 导入所有我们需要的库 import torch import matplotlib.pyplot as plt import torch.nn.func ...

  4. Web应急:网站被批量挂黑页

    作为一个网站管理员,你采用开源CMS做网站,比如dedecms,但是有一天,你忽然发现不知何时,网站的友情链接模块被挂大量垃圾链接,网站出现了很多不该有的目录,里面全是博彩相关的网页.而且,攻击者在挂 ...

  5. 【UOJ#33】【UR #2】树上GCD(长链剖分,分块)

    [UOJ#33][UR #2]树上GCD(长链剖分,分块) 题面 UOJ 题解 首先不求恰好,改为求\(i\)的倍数的个数,最后容斥一下就可以解决了. 那么我们考虑枚举一个\(LCA\)位置,在其两棵 ...

  6. Mysql系列(十二)—— 索引下推优化

    索引条件下推(ICP)是对MySQL使用索引从表中检索行的情况的优化.如果没有ICP,存储引擎会遍历索引以查找基表中的行,并将它们返回给MySQL服务器,该服务器会评估WHERE行的条件.启用ICP后 ...

  7. 【LeetCode】145. Binary Tree Postorder Traversal

    Difficulty: Hard  More:[目录]LeetCode Java实现 Description https://leetcode.com/problems/binary-tree-pos ...

  8. 安卓访问https错误,访问http可以,可能是nginx ssl证书配置有问题

    开发中遇到react-native生成的android访问UAT和开发环境的http api都可以,但是访问生产环境的https就报错,还有就是第三方webhook调用你https网站的api也可能会 ...

  9. 如何提高sql查询性能到达优化程序的目的

    1.关于SQL查询效率,100w数据 SQL查询效率 step by step -- setp 1.-- 建表create table t_userinfo(userid int identity(1 ...

  10. Entity Framework 学习系列(5) - EF 相关查询

    目录 写在前面 一.使用Stopwatch 查询执行效率 二.简单查询 1.Linq写法: 2.Lambda表达式写法: 三.条件查询 1.Linq 写法 2.lambda 写法 四.聚合函数 1.L ...