「专题训练」游走(BZOJ-3143)】的更多相关文章

题意与分析 定义走到每条边的期望为\(e_i\),一开始的想法是给定一个\(\large\sum_{i=1}^n e_i a_i\),求一个a的排列使得这个和最小.问题在于这样等于没对题目作分析,而且题目的难度没有被转化降低.于是(在高人指点下)我们想到,如果先求出\(e_i\),然后按照从小到大的顺序贪心的编号,问题就直接转化成求走到每个边的期望. 边的期望是一个新操作,但是其实不难:定义走到点的期望是\(f_i\),考虑一条边\((u, v)\),对于这条边而言,只有从u和从v才能走到这条边…
游走(2s 128MB)walk [问题描述] [输入格式] [输出格式] [样例输入] 3 3 2 3 1 2 1 3 [样例输出] 3.333 [样例说明] 题解: 主要算法:贪心:高斯消元: 题意是给一个简单无向连通图,给每条边赋上权值,使期望值最小 贪心让被走到概率大的边的权值小,就可得到最小的期望值 设每个点被走到的概率为p, 出度为d 那么p[i] = Σ p[j] / d[j] (i,j 之间有连边) (从 j 出发选到 i 与 j 连边的概率为 1 / d[j]) 移项得 Σ p…
题目链接 戳我 \(Solution\) 首先申明几个变量: f[x]:到点x的概率, vis[x]:x点的度 dp[x][y]:(x,y)这条边的概率 number[x][y]:x这条边的编号 下面的式子保证存在一条(x,y)的边 我们可以知道总分的期望为: \[\sum dp[x][y]*number[x][y]\] 即:所有边的期望成这条边的编号的和 那么\(dp\)数组怎么算呢? \[ dp[x][y]=\frac{f[x]}{vis[x]}+\frac{f[y]}{vis[y]}\]…
题意与分析(Codeforces-431C) 题意是这样的:给出K-Tree--一个无限增长的树,它的每个结点都恰有\(K\)个孩子,每个节点到它\(K\)个孩子的\(K\)条边的权重各为\(1,2,...,K\),问现有多少条路径,使从根节点出发到某个结点所经过的边权重之和恰为n,且经过的边至少有一条权重不小于\(d\). 我们来考虑一下阶段:一层一层的走下去--这个是显然的.而状态是什么?影响我们答案(路径条数)的只有一个,权重的和,它是由我们底下的若干个孩子所走的权重和的情况的和构成的.从…
题目 在一个城市里有\(n\)个地点和\(k\)条道路,道路是无环的(也就是说一定可以二分染色--回路长度为偶数0),现在伞兵需要去n个地点视察,只能沿着路的方向走,问最少需要多少伞兵. 分析 这是什么问题?找出最少的边,访问所有的点--二分图的的最小路径覆盖. 那么对于一个最大匹配,它能覆盖(2*最大匹配)个点,剩下的点都需要单独一条边覆盖,从而设匹配数为\(k\),覆盖数为\(p\),有\[n-2*k+k=p\],也就是\(n-k=p\). 代码 #include <cstring> #i…
题意 在一个工厂,有两台机器\(A, B\)生产产品.\(A\)机器有\(n\)种工作模式(模式\(0\),模式\(1\)--模式\(n-1\)).\(B\)机器有\(m\)种工作模式(模式\(0\),模式\(1\)--模式\(m-1\)).现要加工k个产品,每个产品可以由两台机器特定的模式生产,如产品0,可以由A机器在3号模式或B机器4号模式生产.两台机器初始模式都在模式0,但是,这两台机器不是很先进,如果需要切换模式,只能由人手工切换模式,手工切换可以切换到任意模式.求加工完k个产品需要切换…
题意与分析 题意大致是这样的:给定一个\(n\times s\)的矩阵,每次可以随机的在这个矩阵内给一个格子染色(染过色的仍然可能被选中),问每一行和每一列都有格子被染色的次数的期望. 这题如果从概率(从正方向推)就会白给,不信你自己试试:而定义反方向的推导(\(e_{i,j}\)意为从i行j列已有染色格子到最后全被染色的次数的期望)就会非常简单:分四种情况讨论即可. 代码 #include <bits/stdc++.h> using namespace std; double e[1005]…
题意与分析 题意:给出\(n\)个字符串,可以反转任意串,反转每个串都有其对应的花费\(c_i\).经过操作后是否能满足字符串\(\forall i \in [1,n] \text{且} i \in R_+, str[i]\ge str[i-1]\),若能输出最小花费,否则输出-1. 分析:经过各种字符串dp血虐,应该会有个直觉:\(dp[i]\)表示前\(i\)个串的最小花费.但是好像不太够:没有保存反转.因此,在dp中,如果状态不够,那就加维度保存状态.这里就是:我们定义\(dp[i][0]…
题意(Codeforces-455A) 给你\(n\)个数,你每次可以选择删除去一个数\(x\)获得\(x\)分,但是所有为\(x+1\)和\(x-1\)的数都得删去.问最大获得分数. 分析 这是一条经典dp.阶段是很自然的:我从左往右依次选择到每种数(先预处理在桶内),然后两个决策:拿,还是不拿(拿一定拿光).拿,那么下一步就不能选择\(x+1\)了,直接选择\(x+2\):不拿,我可以选择\(x+1\).两种情况取最大. 于是有状态转移方程:\(dp[x]=max(dp[x-1], dp[x…
「HNOI2013」游走 题目描述 一个无向连通图,顶点从 \(1\) 编号到 \(N\) ,边从 \(1\) 编号到 \(M\) .小 \(Z\) 在该图上进行随机游走,初始时小 \(Z\) 在 \(1\) 号顶点,每一步小 \(Z\) 以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数.当小 \(Z\) 到达 \(N\) 号顶点时游走结束,总分为所有获得的分数之和. 现在,请你对这 \(M\) 条边进行编号,使得小 \(Z\) 获得的总分的期望值最小.…