题意:

t组输入,每一组一个n,然后后面是n个树的值(我们放到数组v里面),你需要从[1,n]这个区间内挑选出来两个数i,j,你需要保证i<=j,之后你要求一下v[i]+v[i+1]+...+v[j],然后把这个和除于j-i+1(也就是求平均值),最后答案要求的是这个平均值的期望,我们可以算出来有多少对(i,j),我们设有sum对,然后让每一个平均值乘于1/sum,把这个都加到一起就可以了

题解:

sum的求法就是n*(n-1)/2

然后

我们可以枚举区间大小,从1枚举到n,上图是区间长度为1

蓝线中间的是,区间长度为1的时候区间内的数,如果区间长度为2的时候,那么蓝线中间的就是

1234

2345

蓝线上下两侧的就是把它们都补全之后的模样,我们只需要用v的前缀和数组w,让w[n]乘于一个数然后减去上下两侧的就可以

总之就是找规律

代码:

#include<stack>
#include<queue>
#include<map>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define fi first
#define se second
using namespace std;
typedef long long ll;
const int maxn=2e5+10;
const int mod=1e9+7;
ll v[maxn],p[maxn],p2[maxn],p_pre[maxn],p_suf[maxn];
ll ksc(ll a, ll b)
{
ll ans = 0;
while( b > 0 )
{
if( b&1 ) ans = (ans + a) % mod;
a = ( a + a ) % mod;
b >>= 1;
}
return ans;
}
ll ppow(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b&1) ans=(ans*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return ans;
}
//void init()
//{
// ll ans = 0;
// for (ll i = 1; i <= 6000001; i++)
// {
// ll x = ((i * i) % mod);
// ans = (ans + (ppow(x, mod - 2) % mod));
// dp[i] = (ans * 3) % mod;
// }
//}
int main()
{ ll t;
scanf("%lld",&t);
while(t--)
{
memset(v,0,sizeof(v));
memset(p,0,sizeof(p));
memset(p2,0,sizeof(p2));
memset(p_pre,0,sizeof(p_pre));
memset(p_suf,0,sizeof(p_suf));
ll n,result=0,sum;
scanf("%lld",&n);
sum=(n*(n+1))/2;
sum%=mod;
for(ll i=1; i<=n; ++i)
{
scanf("%d",&v[i]);
p[i]=(p[i-1]+v[i])%mod;
}
p2[n]=v[n];
for(ll i=n-1; i>=1; --i)
{
p2[i]=(p2[i+1]+v[i])%mod; }
for(ll i=1; i<=n; ++i)
{
p_pre[i]=(p[i]+p_pre[i-1])%mod;
}
p_suf[n+1]=0;
p_suf[n]=p2[n];
for(ll i=n-1; i>=1; --i)
{
p_suf[i]=(p2[i]+p_suf[i+1])%mod;
}
for(ll i=1; i<=n; ++i)
{
result = (result + (((((i*p[n])%mod)-p_pre[i - 1]-p_suf[n-i+2]+mod) % mod) * ppow(i, mod - 2)%mod))%mod;
}
printf("%lld\n",((result%mod)*ppow(sum,mod-2))%mod);
}
return 0;
}

hdu 6827 Road To The 3rd Building的更多相关文章

  1. hdu 5861 Road 两棵线段树

    传送门:hdu 5861 Road 题意: 水平线上n个村子间有 n-1 条路. 每条路开放一天的价格为 Wi 有 m 天的操作,每天需要用到村子 Ai~Bi 间的道路 每条路只能开放或关闭一次. ( ...

  2. HDU 5861 Road (线段树)

    Road 题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5861 Description There are n villages alo ...

  3. HDU 5861 Road 线段树区间更新单点查询

    题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5861 Road Time Limit: 12000/6000 MS (Java/Othe ...

  4. HDU 5861 Road(线段树 区间修改 单点查询)

    Road Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  5. HDU 5669 Road(线段树建树)(分层图最短路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5669 [分析]线段树建树+分层图最短路 #include <cstdio> #includ ...

  6. HDU 3917 Road constructions(最小割---最大权闭合)

    题目地址:HDU 3917 这题简直神题意... 题目本身就非常难看懂不说..即使看懂了.也对这题意的逻辑感到无语...无论了.. 就依照那题意上说的做吧... 题意:给你n个城市,m个公司.若干条可 ...

  7. 2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树:区间覆盖+单点最大小)

    HDU 5861 题意 在n个村庄之间存在n-1段路,令某段路开放一天需要交纳wi的费用,但是每段路只能开放一次,一旦关闭将不再开放.现在给你接下来m天内的计划,在第i天,需要对村庄ai到村庄bi的道 ...

  8. HDU 5033 (单调栈维护凸包) Building

    题意: 一个人在x轴上,他的左右两侧都有高楼,给出楼的横坐标Xi和高度Hi还有人的位置pos,求人所能看到的天空的最大角度. 分析: 将建筑物和人的位置从左到右排序,对于每个位置利用栈求一次人左边建筑 ...

  9. hdu 3917 Road constructions 最大权闭合子图

    样例说明: n(城市数目)   m(工程队数目) 每个工程队上交的税收 val[i] k(k个工程) xi   yi  ci  costi , 工程队ci承包由xi到yi,政府的补贴为costi 注意 ...

随机推荐

  1. 【C++】《C++ Primer 》第十六章

    第十六章 模板与泛型编程 面向对象编程和泛型编程都能处理在编写程序时不知道类型的情况. OOP能处理类型在程序允许之前都未知的情况. 泛型编程在编译时就可以获知类型. 一.定义模板 模板:模板是泛型编 ...

  2. 比较Power BI和Tableau,好比用奔驰对比奥迪

    经常会有人问Power BI和Tableau的区别,好吧,为了非IT专业的能看懂,咱们就用车,奔驰和奥迪来对比一下.因为他们确实有太多相似之处. 所以Power BI VS Tableau,就相当于国 ...

  3. rm: cannot remove `/tmp/localhost-mysql_cacti_stats.txt': Operation not permitted

    [root@DBslave tmp]# chown zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt

  4. 【Java】Java关键字、含义

    Java关键字 来自 Java 核心技术卷I 基础知识(原书第10 版)/( 美)凯S 霍斯特曼(Cay S . Horstmann )著: 周立新等译一北京:机械工业出版社, 2016 . 8 Ja ...

  5. utraedit不小心把打开文件列表弄得不显示的处理办法

    视图->视图/列表->打开文件标签

  6. 【Linux】配置ssh留下的一些思考和大坑解决办法

    今天传包突然有问题,结果发现是ssh出现了问题,密钥也在里面,都是正常的,但是还有什么问题呢? 后来总结下需要注意点: 1.最开始你要检查.ssh/  这个文件夹的权限,看下权限是否为700或者为75 ...

  7. 阿里面试常问的redis数据结构,建议收藏

    关于Redis redis是一个开源的使用C语言编写的一个kv存储系统,是一个速度非常快的非关系远程内存数据库.它支持包括String.List.Set.Zset.hash五种数据结构.除此之外,通过 ...

  8. ELK (elasticsearch+kibana+logstash+elasticsearch-head) 华为云下载地址

    https://mirrors.huaweicloud.com/elasticsearch https://mirrors.huaweicloud.com/kibana https://mirrors ...

  9. 服务端 TCP 连接的 TIME_WAIT 过多问题的分析与解决

    https://mp.weixin.qq.com/s/VRQ_12tzy3gRYD091cI7Ew

  10. mysqldump 内存消耗

    MySQL :: MySQL 8.0 Reference Manual :: 4.5.4 mysqldump - A Database Backup Program https://dev.mysql ...