首页 > TAG信息列表 > Cnoi2020

P6835 [Cnoi2020]线形生物

期望的线性性质:\(\displaystyle\sum E_{x->y}=E_{x->x+1}+E_{x+1->x+2}+...+E_{y-1->y}=\sum_{i=x}^{y-1}E_{i->i+1}\) 设 \(d_i=i\) 的返祖边条数。\(E_i\) 为 \(i\) 的返祖边集。 \(E_{x->x+1}=\dfrac{1}{d_x+1}+\dfrac{1}{d_x+1}\displaystyle\sum_{(x,y)\in

P6833 [Cnoi2020]雷雨

枚举三条路径重合点,跑dij。预处理出三个点到每个点的最短路。因为事无向边,所以就事每个点到这三个点的最短路。 \(O(nm\log (nm))\) 另外,我的点拆边光荣的挂掉了。 不过可以方格dij。 #include<bits/stdc++.h> using namespace std; #define int long long int cnt=0,ans=0x3f3f3f

题解 T121450 [Cnoi2020]明天后的幻想乡

题目传送门 更不好的阅读体验 题意 求 \(\{1,2,3, \cdots ,n\}\) 中长度 $l \geq 3 $ 的等比子序列个数,\(n \leq 10^{12}\) 。 分析 首先一个数列如果是等比数列,显然它的首末项都比较有限。 具体分析,设一个不能再扩展(即极长)的等比数列有 \(m+1\) 项 \(a_0,a_1, \cdots ,a_m\) ,公比

洛谷 P6835 [Cnoi2020]线形生物 数学期望+递推

链接 根据期望定义得出相邻两点步数的期望,利用前缀和,期望的线性性 质进行优化即可,式子就不写了(不会用latex)注意,所得的 期望因取模,可能变成负值,加个模数即可(卡了我10分钟) #include<cstring> #include<string> #include<cstdio> #define ll long long #define mod 998244353 usi

P6834 [Cnoi2020]梦原 树状数组 期望DP

P6834 [Cnoi2020]梦原 题目链接 ​ 树状数组优化期望DP。 ​ 我们可以发现,当\(k= 1\)时,这道题就和积木大赛一样,有一个非常有用的结论:对于每个点,只要把\(max(0, a[i] - a[i - 1])\)累加起来就是最终答案。假设前一个比后一个高,那么前一个为0时后一个一定早就为0了;假设后一个比前一

【题解】 [Cnoi2020]线形生物 期望dp

Legend 给定 \(1\to 2 \to \cdots \to n \to n+1\) 的边和 \(m\) 条往回走的有向边,长度都是 \(1\)。站在一个点时等概率选择一条出边,求 \(1\to n+1\) 期望长度。 \(1 \le n ,m \le 10^6\)。 Editorial 考虑一个套路:设 \(f_{i}\) 表示从 \(i\to i+1\) 行走距离的期望,答案就是 \(\su

【题解】p6160 [Cnoi2020]向量

原题传送门 序 啊又是勤奋学习的一天...... 这种mo题目能做出来纯靠感觉。 样例分析 样例输入给了组3、4、5的勾股数,而输出正好是三向量加和为0时的答案。 嗯我好像感觉到了什么...... 于是用余弦定理计算三个角出内积,再特判一下两边之和小于等于第三边: #include<bits/stdc++.h>