cf912D
题意简述:往n*m的网格中放k条鱼,一个网格最多放一条鱼,然后用一个r*r的网随机去捞鱼,问怎么怎么放鱼能使得捞鱼的期望最大,输出这个期望
题解:肯定优先往中间放,这里k不大,因此有别的简单方法,否则推公式各种情况烦死人,我们对于每一行来说将中间的数加进去,然后用set来维护k次就好了
#include<bits/stdc++.h>
#define forn(i, n) for (int i = 0 ; i < int(n) ; i++)
#define fore(i, s, t) for (int i = s ; i < (int)t ; i++)
#define fi first
#define se second
#define all(x) x.begin(),x.end()
#define pf2(x,y) printf("%d %d\n",x,y)
#define pf(x) printf("%d\n",x)
#define each(x) for(auto it:x) cout<<it<<endl;
#define pii pair<int,int>
using namespace std;
typedef long long ll;
const int maxn=2e5+5;
const int maxm=2e5+5;
const int inf=1e9;
int n,m,r,k;
struct cell{
int x,y,d;
ll val;
cell(int x,int y,int d):x(x),y(y),d(d){
val=(min(m+1,y+r)-max(y,r))*1ll*(min(n+1,x+r)-max(x,r));
}
bool operator<(const cell& rhs)const {
return val>rhs.val;
}
};
multiset<cell> ms;
double calc(){
for (int i = 1; i <= n; i++) {
int j = m / 2;
ms.insert({ i, j, 0 });
ms.insert({ i, j + 1, 1 });
}
ll total = 0;
for(int i=0;i<k;i++){
auto it = *ms.begin();
total += it.val;
ms.erase(ms.begin());
if (it.d == 1 && it.y < m)
ms.insert({ it.x, it.y + 1, 1 });
else if (it.d == 0 && it.y > 1)
ms.insert({ it.x, it.y - 1, 0 });
}
return (double)total / ((n - r + 1) * 1LL * (m - r + 1));
}
int main(){
cin>>n>>m>>r>>k;
if(n>m) swap(n,m);
if(m==1) {
printf("%.10f\n",1.0);
}
else {
printf("%.10f\n",calc());
}
}
cf912D的更多相关文章
- CF912D Fishes 期望 + 贪心
有趣的水题 由期望的线性性质,全局期望 = 每个格子的期望之和 由于权值一样,我们优先选概率大的点就好了 用一些数据结构来维护就好了 复杂度$O(k \log n)$ #include <set ...
- CF912D Fishes 期望
题意翻译 Description 有一个长为nnn ,宽为mmm 的鱼缸,还有一个边长为rrr 的正方形渔网.你可以往鱼缸里放kkk 条鱼,问用渔网随机在浴缸里捞鱼的最大期望是多少.不懂什么是期望的自 ...
- [CF912D]Fishes - 求数学期望,乱搞
D. Fishes time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...
- CF912D Fishes
题目链接:http://codeforces.com/contest/912/problem/D 题目大意: 在一个\(n \times m\)的网格中放鱼(每个网格只能放一条鱼),用一个\(r \t ...
- cf期望概率专题
cf1009E:求到第i段期望和的比较困难,但是单独求每段的期望是比较容易的,所以单独对每段求和,然后累计总和 E[i]=1/2*a1+1/4*a2+...+1/2^(i-1)*ai-1+1/2^(i ...
随机推荐
- IIS发布网站常见MIME扩展类型添加
# This file maps Internet media types to unique file extension(s). # Although created for httpd, thi ...
- SpringBoot系列专栏
学会使用SpringBoot能够极大地提升Spring应用的开发效率,可以说是目前开发应用Java必需掌握的工具之一,而且SpringBoot也是微服务应用的基础,只有学会了SpringBoot,你才 ...
- Rabbitmq | ConnectionException:Connection refused: connect
案例 今天完成了Rabbitmq的搭建,调用本地mq服务器是可以的,但是在本地调用远程mq发现出现了connectionException异常,使用的是默认端口5672,具体情况如下图 解决方案 修改 ...
- 微服务之docker(二)
一.SpringCloud/SpringBoot整合docker 使用docker的maven组建构建springboot应用(官方文档:https://spring.io/guides/gs/spr ...
- 1759: 学生信息插入(武汉科技大学结构体oj)(已AC)
#include<stdio.h>struct student { long no; char name[9]; int score;} t;void input(struct stude ...
- qt客户端程序使用svg图片资源的几种方法
直接使用svg格式文件资源的情况 1. 直接在UI控件属性面板中选择部分支持icon图标的控件的icon来源,这样图标可以显示 2.给toolbutton添加样式 qproperty-icon: ur ...
- [Python]获取win平台文件的详细信息
import win32api def getFileProperties(fname): """ 读取给定文件的所有属性, 返回一个字典. ""&q ...
- Codeforces_733_C
http://codeforces.com/problemset/problem/733/C 从后往前一个个b对应一组组a. #include<iostream> #include< ...
- 开发中常见的common.js--1
common.js 1.基于代码重用的目的,方便在页面中调用: 2.跟普通的js包含文件并没有其他不一样,主要是一些js经常用到的函数,或者字符串.数组方法的简单扩展: 3.封装的兼容性的方法.[po ...
- k8s系列---EFK日志系统
文章拷于:http://blog.itpub.net/28916011/viewspace-2216748/ 用于自己备份记录错误 一个完整的k8s集群,应该包含如下六大部分:kube-dns.i ...