zoukankan      html  css  js  c++  java
  • POJ2531--子网流量问题

    #include <iostream>
    using namespace std;
    
    #define SIZE 20
    int data[SIZE + 1][SIZE + 1];
    
    int subnet[2][SIZE];
    
    int maxTraffic = 0;
    
    int getTraffic(int node, int netNumber, int size){
        int ret = 0;
        for(int i = 0; i < size; i++){
            if(subnet[netNumber][i]){
                ret += data[node][i];
            }
        }
        return ret;
    }
    
    void getMax(int curStep, int targetStep,int curTraffic, int startPos, int size){
        if(curStep == targetStep) return;
        
        for(int i = startPos; i < size; i++){
            subnet[0][i] = 0;
            subnet[1][i] = 1;
    
            int trfficWithSubnet1 = getTraffic(i, 1, size);
            int trfficWithSubnet0 = getTraffic(i, 0, size);
    
            int tmp = curTraffic;
            curTraffic = curTraffic - trfficWithSubnet1 + trfficWithSubnet0;
            if(curTraffic > maxTraffic) maxTraffic = curTraffic;
    
            getMax(curStep + 1, targetStep, curTraffic, i + 1, size);
    
            subnet[0][i] = 1;
            subnet[1][i] = 0;
            curTraffic = tmp;
        }
    
    }
    
    int main(){
        //freopen("input.txt", "r", stdin);
        int N;
        cin >> N;
    
        for(int i = 0; i < N; i++){
            for(int j = 0; j < N; j++){
                cin >> data[i][j];
            }
        }
    
        for(int i = 0; i < N; i++){
            subnet[0][i] = 1;
            subnet[1][i] = 0;
        }
        maxTraffic = 0;
        getMax(0, N/2, 0, 0, N);
        cout << maxTraffic << endl;
    
    }
    大多数想法要么平庸,要么更糟糕,这很大程度上因为绝妙的想法难得一见,而且他们还要在我们身边这个充斥了各种恶俗的所谓常识的环境中孕育生长。
  • 相关阅读:
    串学习笔记
    C深度剖析学习笔记
    记英语单词ag
    树学习笔记
    如何做好项目总结
    易学队第二次团队会议
    易学队第四次团队会议
    易学队第五次团队会议
    易学队第一次团队会议
    易学队第三次团队会议
  • 原文地址:https://www.cnblogs.com/linux0537/p/6144959.html
Copyright © 2011-2022 走看看