zoukankan      html  css  js  c++  java
  • 洛谷P1268 树的重量


    因为所有的节点都是叶节点,因此每个叶节点都是从已有的节点中分出来的

    而每个节点都可以从 1 ~ j (j < i ) 中分出 (当然类似于floyd三层循环枚举也可以)

    设i为要插入的节点 , j为dis[1][j] 中最小的那个(j<i)

    minn = min ( (dis[1][i]+dis[j][i] - dis[1][j])/2 ) ;
    

    floyd的话是

    for ( int i = 3;i <= n; ++i ) {
                int minn = 999999999 ;
                for ( int j = 1; j <= i - 1; ++j )
                  for ( int k = 1; k <= j - 1; ++k ) {
                     minn = min ( minn, ( dis[j][i] + dis[k][i] - dis[j][k] ) / 2 );
               }
               ans += minn;
          }
    

    其中i为要插入的节点,j为枚举的起点1,k位枚举的起点2,jk就是要分的线段

    code

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <algorithm>
    #define maxn 100
    using namespace std ;
    int n , a[maxn][maxn] , ans , minn ;
    int main () {
    	while(cin >> n ) {
    		if(n == 0) return  0 ;
     		ans = 0 ;
    		for(int i = 1 ; i < n ; i ++) {
    			for(int j = i + 1 ; j  <= n ; j ++) {
    				cin >> a[i][j] ;
    			}
    		}
    		ans = a[1][2] ;
    		for(int i = 3 ; i <= n ; i ++) {
    			int minn = 999999 ;
    			for(int j = 2 ; j < i ; j ++) {
    				minn = min(minn,(a[1][i]+a[j][i]-a[1][j])/2) ;
    			}
    			ans += minn ;
    		}
    		cout << ans << endl ;
    	}
    	return 0 ;
    }
    
  • 相关阅读:
    nsurlSession
    IOS 锁
    常见问题
    xcode编译太慢
    ios之keychain
    iOS多线程系列(四)----GCD之Dispatch Queues
    iOS多线程系列(三)----NSOperationQueue
    iOS多线程系列(二)------NSOperation
    iOS多线程系列(一)------NSThread
    kvm虚拟机最佳实践系列3-kvm克隆和静态迁移
  • 原文地址:https://www.cnblogs.com/lyt020321/p/11348204.html
Copyright © 2011-2022 走看看