CodeForces 912d fishes(优先队列+期望)】的更多相关文章

While Grisha was celebrating New Year with Ded Moroz, Misha gifted Sasha a small rectangular pond of size n × m, divided into cells of size 1 × 1, inhabited by tiny evil fishes (no more than one fish per cell, otherwise they'll strife!). The gift bun…
题目链接 Fishes 题意  在一个$n*m$的矩阵中,随机选择一个$r * r$的区域覆盖. 一开始我们可以在这个$n*m$的矩阵中选择$k$个点标记为$1$. 我们要选择一个最佳的标记策略,使得覆盖这个$r * r$的区域之后,被覆盖的$1$的个数的期望值最大. 求这个期望值. $1 <= n, m <= 10^{5}, 1 <= k <= min(n*m, 10^{5})$ 太笨了,比赛的时候并没有做出这道题 否则大概可以好好上一波分了? 结果只是勉强回到紫名 首先我们要推…
传送门:http://codeforces.com/contest/912/problem/D 本题是一个概率问题——求数学期望. 在一个n×m的方格中,有k个“*”.每个格子里可能有0~1个“*”.现有一个r×r的网,将网随机投入方格中,求解:网内“*”个数的数学期望的最大值. 首先考虑所求的数学期望: 枚举所有的投网方式,则对于方格的任意格子(x,y),均可以定义其被网覆盖的次数cnt(x,y). 若第i个“*”的位置为(xi,yi),则此网覆盖第i个“*”的次数为cnt(xi,yi),则所…
题意 : 给出一个 N * M 的网格,然后给你 K 条鱼给你放置,现有规格为 r * r 的渔网,问你如果渔网随意放置去捕捞小鱼的情况下,捕到的最大期望值是多少? 分析 :  有一个很直观的想法就是如果将鱼放在越靠近中间的位置,其被捕捞的可能性越大 事实也的确如此,鱼的位置越靠近边缘则能覆盖到它的渔网安放位置就越少 那么这就有了一个贪心的算法 将第一条鱼放在最中间的位置算出被捕捉的概率 被捕捉的概率 = 能覆盖到当前小鱼位置的渔网个数 / 整个网格的全部安放渔网的方法数 然后从中间这个点开始向…
题目链接:http://codeforces.com/problemset/problem/446/B #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e3+3; int matrix[N][N]; ll row[N],col[N]; ll dpr[N*N],dpc[N*N]; priority_queue <ll> q; int main() { ll n,m,k,p;…
题目链接 题目意思很简单nm的矩阵里, 选若干个ab的小矩阵, 定义每个矩阵的值为这个矩阵里的所有数的和-最小值*数的个数. 选小矩阵时, 优先选值最小的,然后次小的.. 知道不能选位置. 输出所有矩阵的左上角那个数的坐标以及这个矩阵的值. 思路很简单, 将所有矩阵的值加到一个优先队列里面, 然后一个一个的删除. 直到矩阵空. 不好做的是求一个矩阵中的最小值. 我先是用二维线段树, tle. 然后用二维st表, mle.... 然后看cf上的代码 ,用一个multiset来搞. 具体看代码..…
You are given an array a consisting of n positive integers. You pick two integer numbers l and r from 1 to n, inclusive (numbers are picked randomly, equiprobably and independently). If l > r, then you swap values of l and r. You have to calculate th…
Helen works in Metropolis airport. She is responsible for creating a departure schedule. There are n flights that must depart today, the i-th of them is planned to depart at the i-th minute of the day. Metropolis airport is the main transport hub of…
题目链接 可能这儿的会更易懂一些(表示不想再多写了). 令\(f[i][j]\)表示从\((i,j)\)到达最后一行的期望步数.那么有\(f[n][j]=0\). 若\(m=1\),答案是\(2(n-x)\). 否则,显然有\[f[i][1]=\frac13(f[i+1][1]+f[i][1]+f[i][2])+1\\f[i][j]=\frac14(f[i+1][j]+f[i][j]+f[i][j-1]+f[i][j+1])+1,\ 1<j<m\\f[i][m]=\frac13(f[i+1][…
题目传送门 题意:在n*m的网格上,有一个机器人从(x,y)出发,每次等概率的向右.向左.向下走一步或者留在原地,在最左边时不能向右走,最右边时不能像左走.问走到最后一行的期望. 思路:显然倒着算期望. 我们考虑既不是最后一行,也不靠边的一般方格,设$f[i][j]$为(i,j)这个格子的期望步数,显然有 $f[i][j]=\frac{1}{4}*(f[i][j-1]+f[i][j+1]+f[i+1][j]+f[i][j])+1$ 移项有:$f[i][j]=\frac{1}{3}(f[i][j-…