usaco Controlling Companies
生活随笔
收集整理的這篇文章主要介紹了
usaco Controlling Companies
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Controlling Companies?控制公司
有些公司是其他公司的部分擁有者,因?yàn)樗麄儷@得了其他公司發(fā)行的股票的一部分.例如,福特公司
擁有馬自達(dá)公司 12%的股票.據(jù)說,如果至少滿足了以下條件之一,公司 A 就可以控制公司 B 了:
公司 A = 公司 B.
公司 A 擁有大于 50%的公司 B 的股票.
公司A控制K(K >= 1)個(gè)公司,記為C1, ..., CK,每個(gè)公司Ci擁有xi%的公司B的股票,并且x1+ ....
+ xK > 50%.
你將被給予一系列的三對(duì)數(shù)(i,j,p),表明公司 i 享有公司 j 的 p%的股票.計(jì)算所有的數(shù)對(duì)(h,s),
表明公司 h 控制公司 s.至多有 100 個(gè)公司.
寫一個(gè)程序讀入三對(duì)數(shù)(i,j,p),i,j和p是都在范圍(1..100)的正整數(shù),并且找出所有的數(shù)對(duì)(h,s),
使得公司 h 控制公司 s.
PROGRAM NAME: concom
INPUT FORMAT
第一行: N,表明接下來三對(duì)數(shù)的數(shù)量.
第二行到第 N+1 行: 每行三個(gè)整數(shù)作為一個(gè)三對(duì)數(shù)(i,j,p),如上文所述.
SAMPLE INPUT (file concom.in)
3
1 2 80
2 3 80
3 1 20
OUTPUT FORMAT
輸出零個(gè)或更多個(gè)的控制其他公司的公司.每行包括兩個(gè)整數(shù)表明序號(hào)為第一個(gè)整數(shù)的公司控制了
序號(hào)為第二個(gè)整數(shù)的公司.將輸出的每行以第一個(gè)數(shù)字升序排列(并且第二個(gè)數(shù)字也升序排列來避
免并列).請(qǐng)不要輸出控制自己的公司.
SAMPLE OUTPUT (file concom.out)
1 2
1 3
有些公司是其他公司的部分擁有者,因?yàn)樗麄儷@得了其他公司發(fā)行的股票的一部分.例如,福特公司
擁有馬自達(dá)公司 12%的股票.據(jù)說,如果至少滿足了以下條件之一,公司 A 就可以控制公司 B 了:
公司 A = 公司 B.
公司 A 擁有大于 50%的公司 B 的股票.
公司A控制K(K >= 1)個(gè)公司,記為C1, ..., CK,每個(gè)公司Ci擁有xi%的公司B的股票,并且x1+ ....
+ xK > 50%.
你將被給予一系列的三對(duì)數(shù)(i,j,p),表明公司 i 享有公司 j 的 p%的股票.計(jì)算所有的數(shù)對(duì)(h,s),
表明公司 h 控制公司 s.至多有 100 個(gè)公司.
寫一個(gè)程序讀入三對(duì)數(shù)(i,j,p),i,j和p是都在范圍(1..100)的正整數(shù),并且找出所有的數(shù)對(duì)(h,s),
使得公司 h 控制公司 s.
PROGRAM NAME: concom
INPUT FORMAT
第一行: N,表明接下來三對(duì)數(shù)的數(shù)量.
第二行到第 N+1 行: 每行三個(gè)整數(shù)作為一個(gè)三對(duì)數(shù)(i,j,p),如上文所述.
SAMPLE INPUT (file concom.in)
3
1 2 80
2 3 80
3 1 20
OUTPUT FORMAT
輸出零個(gè)或更多個(gè)的控制其他公司的公司.每行包括兩個(gè)整數(shù)表明序號(hào)為第一個(gè)整數(shù)的公司控制了
序號(hào)為第二個(gè)整數(shù)的公司.將輸出的每行以第一個(gè)數(shù)字升序排列(并且第二個(gè)數(shù)字也升序排列來避
免并列).請(qǐng)不要輸出控制自己的公司.
SAMPLE OUTPUT (file concom.out)
1 2
1 3
2 3
看得懂題解但自己寫不出來思路不夠清晰
/*
ID:jinbo wu
LANG:C++
TASK:concom
*/
#include<bits/stdc++.h>
using namespace std;
int a[105][105];
int b[105][105];
int n,maxn;
void dfs(int i,int j)
{for(int k=1;k<=maxn;k++){if(k!=i&&b[i][k]<=50){b[i][k]+=a[j][k];if(b[i][k]>50)dfs(i,k);}}}
int main()
{freopen("concom.in","r",stdin);freopen("concom.out","w",stdout);cin>>n;int x,y,z;for(int i=0;i<n;i++){cin>>x>>y>>z;a[x][y]=z;maxn=max(maxn,max(x,y));}
memcpy(b,a,sizeof(a));
for(int i=1;i<=maxn;i++)
{for(int j=1;j<=maxn;j++){if(i!=j&&a[i][j]>50)dfs(i,j);}
}
for(int i=1;i<=maxn;i++)
for(int j=1;j<=maxn;j++)
{if(i!=j&&b[i][j]>50)cout<<i<<" "<<j<<endl;
}
}
總結(jié)
以上是生活随笔為你收集整理的usaco Controlling Companies的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: usaco Money system
- 下一篇: 好听的女孩名字智