USACO 2.3 Controlling Companies (concom)
2014-02-24 13:40
411 查看
//Main Idea: //brute force; //shares[i][j] is the initial shares company i own for company j; //fianl_shares[i][j] is the shares company i own for j after calculate; //used[i][j] == 1 denote i control j to avoid repeated computation; /* ID: haolink1 PROG: concom LANG: C++ */ //#include <iostream> #include <fstream> using namespace std; const int com = 100; short shares[com][com],final_shares[com][com]; bool used[com][com]; int main(){ ifstream fin("concom.in"); int num = 0; fin >> num; int com_1 = 0; int com_2 = 0; for(int i = 0; i < num ; i++){ fin >> com_1 >> com_2; fin >> shares[com_1-1][com_2-1]; final_shares[com_1-1][com_2-1] = shares[com_1-1][com_2-1]; } bool flag = 1; while(flag){ flag = 0; for(int i = 0; i < com; i++){ for(int j = 0; j < com; j++){ if(used[i][j] == 0 && final_shares[i][j] > 50 && i != j){ //used[i][j] = used[j][i] = 1; used[i][j] = 1; flag = 1; for(int k = 0; k < com; k++){ if(k != i && k != j)// now company i got company k's share that j own; final_shares[i][k] += shares[j][k]; } } } } } flag = 1; ofstream fout("concom.out"); for(int i = 0; i < com; i++){ for(int j = 0; j < com; j++){ if(final_shares[i][j] > 50 && i != j){ fout<< i+1 <<" "<< j+1 << endl; flag = 0; } } } if(flag) fout << 0 << endl; return 0; }
相关文章推荐
- usaco-2.3-concom-pass
- USACO 2.3 concom
- usaco 2.3 concom...
- USACO-Section 2.3 Zero Sum(枚举)
- USACO2.3基础的算法题
- [usaco]2.3 Zero Sum
- usaco 2.3 money
- USACO 2.3 货币系统(背包/生成函数)
- USACO 2.3 Zero Sum
- USACO-Section 2.3 Money Systems(DP)
- USACO 2.3 Longest Prefix 题解
- USACO2.3 五道题目
- USACO 2.3 The Longest Prefix
- USACO-Section2.3 Controlling Companies【深度优先搜索】
- USACO2.3.5 Controlling Companies (concom)
- USACO 2.3 Money Systems(DP)
- usaco 2.3 nocows
- USACO 2.3 Zero Sum
- USACO-Section 2.3 Controlling Companies(模拟)
- usaco 2.3.5concom