首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
「SHOI2014」概率充电器
】的更多相关文章
Loj #2192. 「SHOI2014」概率充电器
Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率充电器,您生 活不可或缺的必需品!能充上电吗?现在就试试看吧!」 SHOI 概率充电器由 \(n-1\) 条导线连通了 \(n\) 个充电元件.进行充电时,每条导线是否可以导电以 概率决定,每一个充电元件自身是否直接进行充电也由概率决定.随后电能可以从直接充电的元件经…
「SHOI2014」概率充电器
题面 n <= 500000 0<= p,qi <= 100 题解 这是道概率树形DP题,但是很难推怎么用加法原理和乘法原理正向求每个点被充电的概率,所以我们求每个点不被充电的概率. 我们发现求不被充电的概率很好求. dp[x][0] 表示x点不被x的子树(包括它自己)充电的概率,dp[x][1] 表示x点不被x的祖先充电的概率. 我们发现,这里面有除法,所以要判断是否为零,我们会发现,如果为零的话,那么dp[x][1]*dp[x][0]就肯定等于零,所以dp[x][1]可以取任意值…
「SHOI2014」三叉神经树 解题报告
「SHOI2014」三叉神经树 膜拜神仙思路 我们想做一个类似于动态dp的东西,首先得确保我们的运算有一个交换律,这样我们可以把一长串的运算转换成一块一块的放到矩阵上之类的东西,然后拿数据结构维护. 但是考虑这个题,它最下面的那个运算的输入端只有两种可能,于是我们只需要讨论一下初始输入就完事了. 具体的,\(LCT\)每条实链维护一个\(yuu[i][0/1]\)表示实链底端的点输入为\(0/1\)后链头输出什么. 注意,这个链头指的是\(splay\)中那个点\(i\)的子树代表的那条链,也就…
[LOJ 2190] 「SHOI2014」信号增幅仪
[LOJ 2190] 「SHOI2014」信号增幅仪 链接 链接 题解 坐标系直到 \(x\) 轴与椭圆长轴平行 点的坐标变换用旋转公式就可以了 因为是椭圆,所以所有点横坐标除以 \(p\) 然后最小圆覆盖 代码 #include<bits/stdc++.h> #define N 50005 using namespace std; int n,deg,p;double r; const double pi=acos(-1); struct P{ double x,y; P operator…
「SHOI2014」三叉神经树
「SHOI2014」三叉神经树 给你一颗由\(n\)个非叶子结点和\(2n+1\)个叶子结点构成的完全三叉树,每个叶子结点有一个输出:\(0\)或\(1\),每个非叶子结点的输出为自己的叶子结点中较多的那一种状态. 有\(q\)次修改操作,每次修改一个叶子结点的输出,求每次修改后根结点的输出. \(n\leq 5\times 10^5,q\leq 5\times 10^5\). 不难发现每个节点有两种可能的情况: 1.三个儿子输出均为\(0/1\). 2.两个儿子输出为\(0/1\),剩…
【LOJ】#2187. 「SHOI2014」三叉神经树
题解 可以发现每次修改的是这个点往上一条连续的链,如果我要把1改成0,需要满足这一段往上的一部分都有两个1 如果我要把0改成1,需要满足这一段往上的部分有两个0 对于每个点记录1的个数,发现我们只会把一棵树的2全部改成1或者把1全部改成2,这样加标记的时候可以同时维护是否全1或者是否全2,用lct维护,修改的时候access一遍,直接在平衡树上二分即可 代码 #include <bits/stdc++.h> #define fi first #define se second #define…
LOJ#2190. 「SHOI2014」信号增幅仪(最小圆覆盖)
题面 传送门 题解 我连椭圆是个啥都不知道导致这么简单一道题我一点思路都没有-- 我们把坐标系旋转一下,让半长轴成为新的\(x\)轴,也就是说所有点都绕原点逆时针旋转\(360-a\)度,然后再把所有点的\(x\)坐标变为原来的\({1\over p}\),跑一个最小圆覆盖就行了 //minamoto #include<bits/stdc++.h> #define R register #define inline __inline__ __attribute__((always_inline…
【BZOJ】3566: [SHOI2014]概率充电器
[算法]树型DP+期望DP [题意]一棵树上每个点均有直接充电概率qi%,每条边有导电概率pi%,问期望有多少结点处于充电状态? [题解]引用自:[BZOJ3566][SHOI2014]概率充电器 树形DP 概率DP by 空灰冰魂 最大的难点在于计算每个点充电期望时,两个节点各自的期望都会影响对方的期望. 所以考虑转化对象,改为求每个节点充不上电的期望,充不上电就不用考虑两者的相互影响. fi表示结点i由子结点和自身充不上电的概率 gi表示结点i由父结点充不上电的概率 第一次DFS: hi表示…
BZOJ 3566: [SHOI2014]概率充电器( 树形dp )
通过一次dfs求出dp(x)表示节点x考虑了x和x的子树都没成功充电的概率, dp(x) = (1-p[x])π(1 - (1-dp[son])*P(edge(x, son)).然后再dfs一次考虑节点x子树以外对节点x的贡献, 通过x的father算一算就可以了.O(N) ----------------------------------------------------------------------------------- #include<cstdio> #include&l…
BZOJ 3566: [SHOI2014]概率充电器 [树形DP 概率]
3566: [SHOI2014]概率充电器 题意:一棵树,每个点\(q[i]\)的概率直接充电,每条边\(p[i]\)的概率导电,电可以沿边传递使其他点间接充电.求进入充电状态的点期望个数 糖教题解传送门 每个充电的点贡献1,就是求每个点充电的概率的和 考虑树形DP ,分别求子树内的影响和父亲的影响 \(g[i]\)表示i被子树i里的点充电的概率,\(f[i]\)表示i被充电的概率 因为被子树充电时子树里的点不可能被i充电, \[g[i] = q_i \bigcup g_v : (i,v) \i…