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. SQL-----数据库三种删除方式详解

    第一种  使用delete  语句 特点: delete 属于数据库操纵语言DML,表示删除表中的数据, 删除过程是每次从表中删除一行,并把该行删除操作作为事务记录在日志中保存 可以配合事件(tran ...

  2. HashMap 源码分析 基于jdk1.8分析

    HashMap 源码分析  基于jdk1.8分析 1:数据结构: transient Node<K,V>[] table;  //这里维护了一个 Node的数组结构: 下面看看Node的数 ...

  3. C# 1.0 新特性之异步委托(AP、APM)

    Ø  前言 C# 异步委托也是属于异步编程中的一种,可以称为 Asynchronous Programming(异步编程)或者 Asynchronous Programming Model(异步编程模 ...

  4. Redis Persistent Replication Sentinel Cluster的一些理解

    Redis Persistent Replication Sentinel Cluster的一些理解 我喜欢把工作中接触到的各种数据库叫做存储系统,笼统地说:Redis.Mysql.Kafka.Ela ...

  5. Android Studio中的非项目文件及项目目录下的全局搜索

    一.背景 项目开发中,AS(Android Studio)经常会用到通过关键字在项目空间下搜索对应结果.最经常用到的Find in Path.例如打开Find in Path后,可以选中Scope t ...

  6. Centos7利用rsync实现文件同步

    0x01 测试环境 CentOS 7.4 Rsync服务端:192.168.204.130 CentOS 7.4 Rsync客户端:192.168.204.168 0x02 rsync同步方式 第一种 ...

  7. fancybit个人简介

    程序员一枚 熟悉C C++ C# js lua等多种常见开发语言 熟悉Unity游戏开发 node.js pomelo和C# scut 网游后端框架 做过.net和php网站后端 二次元文化爱好者 有 ...

  8. 完美转发(perfect forwarding)、universal reference、引用折叠(collasping)

    首先要分清: C++里的值只有两种值:左值.右值.—— 其本质应该是内存中存储的值/instance分两种:一种是持久的,一种是“短暂的” 也只有两种引用: 左值引用.右值引用. ——引用,就是这个内 ...

  9. lift提升图

    Lift图衡量的是,与不利用模型相比,模型的预测能力“变好”了多少,lift(提升指数)越大,模型的运行效果越好. TP:划一个阈值后的正样本. P:总体的正样本. 在模型评估中,我们常用到增益/提升 ...

  10. Java面试必问通信框架NIO,原理详解

    NIO 流与块 通道与缓冲区 缓冲区状态变量 文件 NIO 实例 选择器 套接字 NIO 实例 内存映射文件 NIO与IO对比 Path Files NIO 新的输入/输出 (NIO) 库是在 JDK ...