Comet OJ - Contest #2 简要题解
Comet OJ - Contest #2 简要题解
A
模拟,复杂度是对数级的。
code
B
易知\(p\in[l,r]\),且最终的利润关于\(p\)的表达式为\(\frac{(p-l)(\frac{L+R}{2}-p)}{r-l}\),二次函数求最值即可。
code
C
枚举独立集点数即可。\(\sum_{i=0}^n\binom nip^{\binom i2}\)。
code
D
树上的任意一个满足\(|S|\ge2\)的点集\(S\)均有一个唯一的中心,即直径的中点(可能是一个点也可能是一条边),因此可以在该点集的中心处计算该点集的贡献。
枚举中心\(i\),枚举直径长度\(j\),要求在\(i\)点至少两棵不同子树里选与\(i\)距离恰好为\(j\)的点,距离小于\(j\)的点任选。复杂度\(O(n^2)\)。
code
E
原图是一片环套树森林。首先考虑把森林缩掉,对于一个叶子节点\(v\)与其父亲\(u\),可以令\(p_u\gets p_u+(1-p_u)p_vs_v\),并删除点\(v\)。如此操作后图中就只剩下若干个环了。
对于环上的任意一点计算答案,可以先把这个点的出边断掉,再视作一条链暴力计算,复杂度\(O(n^2)\)。考虑当前一个人以\(x\)的概率醒来的时候,后一个人醒来的概率可以表示成\(ax+b\)的形式,其中\(a,b\)均为只与当前这个人有关的常量。不难发现这种运算满足结合率,因此对环维护前后缀,每次\(O(1)\)合并答案即可,复杂度\(O(n)\)。
比赛的时候无脑上了棵线段树,做法上没有本质区别。code
F
orz suika
先求出\(F(x)=\prod_{i=1}^n(p_ix+1-p_i)\),然后对于每个\(i\),计算\(\frac{F(x)}{p_ix+1-p_i}\)与\(a_i\)数组点乘的结果。
为了方便处理,我们令\(w_i=\frac{1-p_i}{p_i}\)(题目保证\(p_i\in(0,1]\)),于是\(F(x)=\prod_{i=1}^np_i(x+w_i)\)。由于\(\prod_{i=1}^np_i\)是常数,故下文中均将其忽略。
不难发现问题大致是个退背包的模型,即先往背包里加入\(n\)个物品,然后每次删去一个。
假设当前求的是第\(k\)个物品的答案,考虑设\[F(x)=\prod_{i=1}^n(x+w_i)=\sum_{i=0}^nf_ix^i\\G(x)=\prod_{i=1,i\neq k}^n(x+w_i)=\sum_{i=0}^{n-1}g_ix^i\]
那么就有递推式
\[g_i=f_{i+1}-g_{i+1}w_k(0\le i<n,g_n=0)\]
将这个递推式暴力展开
\[g_i=\sum_{j=0}^{n-1-i}(-w_k)^jf_{i+j+1}\]
于是我们要求的东西就变成了
\[ans_k=\sum_{i=0}^{n-1}a_ig_i=\sum_{i=0}^{n-1}a_i\sum_{j=0}^{n-1-i}(-w_k)^jf_{i+j+1}\\=\sum_{j=0}^{n-1}(-w_k)^j\sum_{i=0}^{n-1-j}a_if_{i+j+1}\]
令\(coef_j=\sum_{i=0}^{n-1-j}a_if_{i+j+1}\),则\(ans_k=\sum_{j=0}^{n-1}coef_j(-w_k)^j\),多项式多点求值即可。求\(coef_j\)的过程只需要一个卷积,因此总复杂度\(O(n\log^2n)\)。
code
Comet OJ - Contest #2 简要题解的更多相关文章
- Comet OJ - Contest #2简要题解
Comet OJ - Contest #2简要题解 前言: 我没有小裙子,我太菜了. A 因自过去而至的残响起舞 https://www.cometoj.com/contest/37/problem/ ...
- Comet OJ - Contest #5 简要题解
好久没更博了,还是象征性地更一次. 依然延续了简要题解的风格. 题目链接 https://cometoj.com/contest/46 题解 A. 迫真字符串 记 \(s_i\) 表示数字 \(i\) ...
- Comet OJ Contest #13 简要题解
C2 首先用并查集维护\(1\)的连通块,然后用另外一个并查集维护第\(i\)行中,第\(j\)列之后的第一个\(0\)的位置,就是如果当前位置是\(1\)那么它的父亲是它右边的格子,否则是它自己. ...
- 【题解】Comet OJ Round 70 简要题解
[题解]Comet OJ Round 70 简要题解 A 将放在地上的书按照从小到大排序后,问题的本质就变成了合并两个序列使得字典序最小.可以直接模拟归并排序.直接用循环和std::merge实现这个 ...
- Comet OJ - Contest #11 题解&赛后总结
Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最 ...
- Comet OJ - Contest #5
Comet OJ - Contest #5 总有一天,我会拿掉给\(dyj\)的小裙子的. A 显然 \(ans = min(cnt_1/3,cnt_4/2,cnt5)\) B 我们可以感性理解一下, ...
- Comet OJ - Contest #4--前缀和
原题:Comet OJ - Contest #4-B https://www.cometoj.com/contest/39/problem/B?problem_id=1577传送门 一开始就想着暴力打 ...
- Comet OJ - Contest #8
Comet OJ - Contest #8 传送门 A.杀手皇后 签到. Code #include <bits/stdc++.h> using namespace std; typede ...
- Comet OJ - Contest #13-C2
Comet OJ - Contest #13-C2 C2-佛御石之钵 -不碎的意志-」(困难版) 又是一道并查集.最近做过的并查集的题貌似蛮多的. 思路 首先考虑,每次处理矩形只考虑从0变成1的点.这 ...
随机推荐
- [BZOJ1588]营业额统计
Problem 每次给你一个数,找出前面的数与这个数的差的绝对值的最小值 Solution Splay Notice 找不到前驱和后继时,会出错. Code #include<cmath> ...
- 5.7 C++函数调用操作符重载
参考:http://www.weixueyuan.net/view/6385.html 总结: 需要以类成员函数的形式对函数调用操作符“()”进行重载. 只有常成员函数才能处理常对象,故我们依然在类中 ...
- 第三节 java 函数的封装方法 以及 访问封装内容
从我们的选择排序和冒泡排序里我们可以看到有很多相同的代码, 我们 可以把这些相同的代码提取出来封装为方法:比如我们的判 断交换和遍历输出: 抽取1: public static void PanDua ...
- Problem B: 重载函数:max
Description 编写两个名为max的函数,它们是重载函数 ,用于求两个整数或实数的最大值.它们的原型分别是: int max(int a,int b); double max(double a ...
- IasS,CasS,PasS,SasS的区别
IasS: (Infrastructure-as-a-Service(基础设施即服务)) 租用的是硬件,服务器,物理机等 CasS: (container as a Service) 容器服务 租用的 ...
- <Spark><Advanced Programming>
Introduction 介绍两种共享变量的方式: accumulators:聚集信息 broadcast variables:高效地分布large values 介绍对高setup costs任务的 ...
- <context:annotation-config/>和<mvc:annotation-driven/>及解决No mapping found for HTTP request with URI [/role/getRole] in DispatcherServlet with name 'springmvc-config'
1:什么时候使用<context:annotation-config> 当你使用@Autowired,@Required,@Resource,@PostConstruct,@PreDest ...
- python里面如何拷贝一个对象,deecopy和copy的区别
copy仅拷贝对象的本身,而不拷贝对象引用的其它对象. deecopy除拷贝对象本身,而拷贝对象引用的其它对象.
- 2019-04-03-day025-异常与日志
内容回顾 考试 6个小时 120分 (100+20) 15:00-18:00 笔试 60分 19:00-22:00 上机考试 40分 + 20分 60分及格不算附加题 简答题 读程序 简单编程 编程题 ...
- C# Notepad++ 环境配置
第一种方法,使用NppExec插件 1.下载安装插件 NppExec https://nchc.dl.sourceforge.net/project/npp-plugins/NppExec/NppEx ...