zoukankan      html  css  js  c++  java
  • HDU 4647 Another Graph Game

    题意:给定n个节点和m条连线,每个节点和每条连线都有一定的权值,如果有一个人取得了一条连线的两个节点,则他获得这条连线的权值,问按照最优策略,两个人的差是多少

    解题思路:把桥的权值分到两个节点上去,对答案没有影响

    解题代码:

     1 #include <string.h>
     2 #include <stdlib.h>
     3 #include <stdio.h>
     4 const int maxn = 111111;
     5 long long  a[maxn];
     6 int  cmp(const void *a , const void * b)
     7 {
     8    if( *(long long  *)a > *(long long *)b)
     9     return -1 ;
    10    if(*(long long *)a == *(long long *)b )
    11        return 0 ; 
    12    if(*(long long *)a < *(long long *)b)
    13        return 1; 
    14 }
    15 int main()
    16 {
    17   int n , m ;
    18   //freopen("1005.in","r",stdin);
    19 
    20   while(scanf("%d %d",&n,&m) != EOF)
    21   {
    22      memset(a,0,sizeof(a));
    23      for(int i = 1;i <= n;i ++){
    24         scanf("%I64d",&a[i]);
    25         a[i] = a[i]* 2;
    26      }
    27      int t1,t2;
    28      long long t3;
    29      for(int i = 1;i <= m;i ++)
    30      {
    31        scanf("%d %d %I64d",&t1,&t2,&t3);
    32        a[t1] += t3;
    33        a[t2] += t3;
    34      }
    35 
    36      qsort(a+1,n,sizeof(long long ),cmp);
    37      long long sum = 0 ;
    38      int p = 0 ;
    39      for(int i = 1;i <= n; )
    40      {
    41        sum += (a[i] - a[i+1]);
    42        i = i + 2;
    43 
    44      }
    45      printf("%I64d
    ",sum/2);
    46   }
    47   return 0 ;
    48 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    业务需求、用户需求和功能需求
    乐观锁的两种实现方式
    数据字典
    freemarker(ftl)标签用法
    commons-lang常用方法
    前端与后端分离
    jar包导入本地maven库的操作
    本地打jar包到本地的Maven出库
    MyEclipse中好用的快捷键汇总整理
    简单的反编译class文件并重新编译的方法
  • 原文地址:https://www.cnblogs.com/zyue/p/3242226.html
Copyright © 2011-2022 走看看