zoukankan      html  css  js  c++  java
  • D. Minimum Diameter Tree 思维+猜结论

    D. Minimum Diameter Tree 思维+猜结论

    题意

    给出一颗树 和一个值v 把该值任意分配到任意边上 使得(sumlimits_{i,j}p_{ij}=v)
    使得 这颗树任意两个点的简单路的最大值最小

    思路

    根据样例我们可以很好得蒙出 只要平均分在度数位1的点所连的边上面就可以了
    树猜结论无非是度数 边关系之类的

    #include<bits/stdc++.h>
    #define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++)
    #define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr)) 
    #define F first 
    #define S second
    #define pii pair<int ,int >
    #define mkp make_pair
    #define pb push_back
    #define arr(zzz) array<ll,zzz>
    using namespace std;
    typedef long long ll;
    const int maxn=3e5+5;
    int n,m,y;
    int a[maxn];
    int indgree[maxn];
    int main(){
    	int n,s;
    	scanf("%d%d",&n,&s);
    	int x,y;
    	for(int i=1;i<n;i++){
    		scanf("%d%d",&x,&y);
    		indgree[x]++;
    		indgree[y]++;
    	}
    	int ans=0;
    	for(int i=1;i<=n;i++){
    		if(indgree[i]==1){
    			ans++;
    		}
    	}
    	printf("%.18f
    ",2.0*s/ans);
    	return 0;
    }
    
  • 相关阅读:
    mysql 版本查看
    js 中文乱码
    浏览器内核
    Squid 代理服务器
    minicygwin
    firefox 插件开发
    ocx c++
    NetBeans
    android 虚拟机
    ExpandableListView
  • 原文地址:https://www.cnblogs.com/ttttttttrx/p/10800079.html
Copyright © 2011-2022 走看看