zoukankan      html  css  js  c++  java
  • cdoj1580 简单图论问题

    地址:http://acm.uestc.edu.cn/#/problem/show/1580

    题目:

    简单图论问题

    Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
     

    给出一个无向图,该图由nn个点和mm条边组成,每个点和每条边都有一个权值.
    对于该图的任意一个子图,我们定义A是该子图的点权和,B是该子图的边权和,C=A/b=AB是该子图的powerpower值,如果B=0,则C=0。现在,你需要找出该图中具有最大powerpower值的连通导出子图.
    其中,图GG的导出子图GG′满足::
    GG′的点集是GG的点集的子集.
    对于GG中的任意一条边,如果该边的两个端点都属于GG′,那么该边一定属于GG′.

    Input

    第一行输入两个整数n,m(1n500,0mn(n1)2)n,m(1≤n≤500,0≤m≤n∗(n−1)2),分别表示图的点数和边数.
    第二行nn个整数,第ii个数表示标号为ii的点的权值.
    接下来mm行,每行三个整数u,v,w(1u,vn,uv,1w106)u,v,w(1≤u,v≤n,u≠v,1≤w≤106),表示标号为uu的点和标号为vv的点之间有一条权值为ww的边,保证没有重边和自环.

    Output

    输出具有最大powerpower值的连通的导出子图的powerpower值,保留两位小数

    Sample input and output

    Sample InputSample Output
    3 3
    3 2 1
    1 2 5
    1 3 4
    2 3 4
    1.00

    Source

    每周一题 Div2
      
     思路:仔细思考下会发现只选一条边是最优的,所以选最大权值的边即可。
     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 #define MP make_pair
     6 #define PB push_back
     7 typedef long long LL;
     8 typedef pair<int,int> PII;
     9 const double eps=1e-8;
    10 const double pi=acos(-1.0);
    11 const int K=1e6+7;
    12 const int mod=1e9+7;
    13 
    14 int n,m,v[K];
    15 double ans;
    16 int main(void)
    17 {
    18     scanf("%d%d",&n,&m);
    19     for(int i=1;i<=n;i++)
    20         scanf("%d",v+i);
    21     for(int i=1,x,y,w;i<=m;i++)
    22     {
    23         scanf("%d%d%d",&x,&y,&w);
    24         if(w)
    25             ans=max(ans,(v[x]+v[y])*1.0/w);
    26     }
    27     printf("%.2f
    ",ans);
    28     return 0;
    29 }

     

     

  • 相关阅读:
    DOS命令大全 1 attrib,delete等 外部 内部 命令都有
    css图像映射
    简单的css样式控制分页效果
    (转)AjaxPro实现机制探讨——Ajax是如何调用服务器端C#方法?
    学习笔记ADO.Net方面
    一个挺好用的数据库操作类
    .net开发人员应该知道(二)
    js与C#之间相互调用的一些方法
    JS 事件大全
    .net开发人员应该知道(一)
  • 原文地址:https://www.cnblogs.com/weeping/p/6869837.html
Copyright © 2011-2022 走看看