codeforces New Year Santa Network
来源:互联网 发布:win7系统更新失败知乎 编辑:程序博客网 时间:2024/06/16 10:31
题目意思,给你一棵树,然后给你N-1条双向边,现在有3个圣诞老人会选树3个点作为放礼物的仓库。用dis(u,v)表示u->v的距离 ,假设建立3个仓库分别为X,Y,Z,那么会花费
dis(X,Y)+dis(X,Z)+dis(Y,Z)的钱,圣诞老人很懒,他们随机的选择3个点,现在需要定义这个花费的期望值,然后由于城市每年都有会修一条路,新的路会变短,现在有个Q个查询
每次修改一条边的路径(一定是变短),问你这个花费期望值是多少,N和Q都是 10^5
#include<iostream>#include<algorithm>#include<stdio.h>#include<string.h>#include<vector>#include<map>using namespace std;#define NN 100010#define LL long longint m1[NN],m2[NN],L[NN];vector<int>edge[NN];map< pair<int,int> ,int>mp;int dp[NN],n;LL num[NN];double sum;int fun(int u,int v){ if(u>v) swap(u,v); return mp[make_pair(u,v)];}int dfs(int u,int fa){ dp[u]=1; int ss=edge[u].size(); for(int i=0;i<ss;i++) { int v=edge[u][i]; if(v==fa) continue; dp[u]+=dfs(v,u); } if(u!=fa) { int id=fun(u,fa); LL tmp=dp[u]; LL tmp1=(LL)n-(LL)dp[u]; num[id]=tmp*tmp1; } return dp[u];}int main(){ while(scanf("%d",&n)!=EOF) { mp.clear(); for(int i=0;i<=n;i++) { edge[i].clear(); } for(int i=1;i<n;i++) { scanf("%d %d %d",&m1[i],&m2[i],&L[i]); if(m1[i]>m2[i]) swap(m1[i],m2[i]); mp[ make_pair(m1[i],m2[i]) ]=i; edge[m1[i]].push_back(m2[i]); edge[m2[i]].push_back(m1[i]); } dfs(1,1); sum=0.0; for(int i=1;i<n;i++) { double t1=double(num[i]); double t2=double(L[i]); sum=sum+t1*t2; } double tt=double(n); tt=tt*(tt-1.0); int q; scanf("%d",&q); while(q--) { int id,len; scanf("%d %d",&id,&len); sum=sum-L[id]*num[id]*1.0+len*num[id]*1.0; L[id]=len; printf("%lf\n",sum*6.0/tt); } } return 0;}
0 0
- codeforces New Year Santa Network
- codeforces 500D New Year Santa Network
- 【DP】 codeforces 500D New Year Santa Network
- New Year Santa Network - CodeForces 500 D 树形dp
- CodeForces 500D - New Year Santa Network(DFS)
- CodeForces 500 D. New Year Santa Network(树形DP)
- codeforces 500D New Year Santa Network (树结构, 组合, 概率(注意精度))
- codeforces 500D - New Year Santa Network (树形DP+组合数学)
- 【Goodbye2014】Codeforces 500D New Year Santa Network【套路思维题】
- Good Bye 2014 D--- New Year Santa Network
- CF~Good Bye 2014 D. New Year Santa Network
- Good Bye 2014 D. New Year Santa Network
- Good Bye 2014 D. New Year Santa Network 树形dp
- 【codeforces】New Year Transportation
- New Year Snowmen CodeForces
- New Year Tree CodeForces
- New Year Tree CodeForces
- Codeforces New Year Candles
- 底子薄之12.01
- Deep Learning(深度学习) 学习笔记(一)
- 深入理解Android(03)——深入理解init初始化函数
- xcode6创建的百度地图项目启动后输出日志”manager start failed!“的解决方案
- 浅析404页面存在的意义和设计技巧
- codeforces New Year Santa Network
- xml_schema
- (转载)linux命令之三十一diff 命令
- 从机器学习谈起
- 百度吴恩达:图像和音视频搜索是人工智能新方向
- 【BZOJ】【P2073】【POI2004】【PRZ】【题解】【状压DP+枚举子集】
- 遗传算法简介
- Deep Learning(深度学习) 学习笔记(二)
- php yii框架web项目连接数据库以及crud操作