hdu 6053(To my boyfriend)
-----------题目链接-------------
题目描述:
给定一个矩阵,定义\(f(A)\) 为矩阵中不同元素的个数。现在要求\(f(A)\)的期望。
解法:
首先来暴力的,复杂度大约:\(O(n^{4})\)。枚举原矩阵中每一个数字的贡献数,
LL submatix(int x,int y)
{
LL res=1ll*x*(x+1)*y*(y+1)/4;
return res;
}
LL find(int x,int y)
{
LL res;
int L=1,R;
int val=maze[x][y];
R=y;
for(int i=y+1;i<=m;i++)
{
if(maze[x][i]==val) break;
R=i;
}
res=1ll*x*y*(R-y+1);
for(int i=x+1;i<=n;i++)
{
int l,r;
if(maze[i][y]==val) break;
for(int j=y;j>=max(1,L) ;j--)
{
if(maze[i][j]==val) break;
l=j;
}
for(int j=y;j<=min(m,R);j++)
{
if(maze[i][j]==val) break;
r=j;
}
res+=1ll*x*(y-l+1)*(r-y+1);
L=max(L,l),R=min(R,r);
}
return res;
}
double get()
{
LL sum=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
sum+=find(i,j);
}
}
return (double)sum;
}
int main()
{
int ncase;
scanf("%d",&ncase);
while(ncase--)
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
scanf("%d",&maze[i][j]);
}
printf("%.9lf\n",get()/submatix(n,m));
}
return 0;
}
hdu 6053(To my boyfriend)的更多相关文章
- HDU 6053 TrickGCD 莫比乌斯函数/容斥/筛法
题意:给出n个数$a[i]$,每个数可以变成不大于它的数,现问所有数的gcd大于1的方案数.其中$(n,a[i]<=1e5)$ 思路:鉴于a[i]不大,可以想到枚举gcd的值.考虑一个$gcd( ...
- 2017 多校2 hdu 6053 TrickGCD
2017 多校2 hdu 6053 TrickGCD 题目: You are given an array \(A\) , and Zhu wants to know there are how ma ...
- HDU 6052 - To my boyfriend | 2017 Multi-University Training Contest 2
说实话不是很懂按题解怎么写,思路来源于 http://blog.csdn.net/calabash_boy/article/details/76272704?yyue=a21bo.50862.2018 ...
- HDU 6053 - TrickGCD | 2017 Multi-University Training Contest 2
/* HDU 6053 - TrickGCD [ 莫比乌斯函数,筛法分块 ] | 2017 Multi-University Training Contest 2 题意: 给出数列 A[N],问满足: ...
- HDU 6053 TrickGCD(莫比乌斯反演)
http://acm.hdu.edu.cn/showproblem.php?pid=6053 题意:给出一个A数组,B数组满足Bi<=Ai. 现在要使得这个B数组的GCD值>=2,求共有多 ...
- HDU 6053 TrickGCD(分块)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6053 [题目大意] 给出一个数列每个位置可以取到的最大值, 问这个可以构造多少个数列,使得他们的最 ...
- hdu 6053 trick gcd 容斥
http://acm.hdu.edu.cn/showproblem.php?pid=6053 题意:给定一个数组,我们定义一个新的数组b满足bi<ai 求满足gcd(b1,b2....bn)&g ...
- HDU 6052 To my boyfriend(概率 贡献)
To my boyfriend Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- HDU 6052 To my boyfriend(悬线法)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6052 [题目大意] 给出一个数字矩阵,求子矩阵期望数字种数 [题解] 我们统计[x,y]为其所表示 ...
随机推荐
- Intent 传递对象
方法: 可以让这个要传递的对象所属类实现Serializable或者Parcelable接口, 然后利用onCreate函数中的Bundle参数作为载体,传递这个对象. 例如: <span st ...
- cocos2d-x step by step(2) 鼠标事件,键盘事件,等等事件
各种小控件加载进去了,那么问题来了,这些东西如何接受事件呢? good job,let us find the answer 首先我们去看文档,官方尼玛有好多文档,而且大,全,详细,感觉还是不错的 h ...
- php 的$_POST 和$_REQUEST的区别
发现$_POST 没数据,而$_REQUEST 有数据 ----------------------------------------- https://stackoverflow.com/ques ...
- [Python-tools]defaultdict的使用场景
Python标准库中collections对集合类型的数据结构进行了非常多拓展操作.这些操作在我们使用集合的时候会带来非常多的便利.多看看非常有优点. defaultdict是当中一个方法,就是给字典 ...
- hdu 1548
A strange lift Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- JobConf
/** * A map/reduce job configuration. * 翻译:一个map/reduce作业配置 * <p><code>JobConf</code ...
- Tachyon源代码结构分析(二)
公布人:南京大学PASA大数据实验室顾荣 前言 在上一篇<Tachyon源代码结构分析(一)>中,我们介绍了Tachyon的四大模块(Client模块.Master模块.Worker模块以 ...
- 查看Laravel版本号的三种方法
1:最简单的用命令行实现 php artisan --version 2:查看文件 vendor\laravel\framework\src\Illuminate\Foundation\Applica ...
- 李洪强iOS开发之 - 项目架构
李洪强iOS开发之 - 项目架构 01 - 在Appdelegate中设置跟控制器 //导入头文件
- vue 路由组件不重新加载
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...