題目描述 description
有些公司是其他公司的部分擁有者,因為他們獲得了其他公司發行的**的一部分。例如,福特公司擁有馬自達公司12%的**。據說,如果至少滿足了以下三個條件之一,公司a就可以控制公司b了:
公司a = 公司b。
公司a擁有大於50%的公司b的**。
公司a控制k(k >= 1)個公司,記為c1, ..., ck,每個公司ci擁有xi%的公司b的**,並且x1+ .... + xk > 50%。
給你乙個表,每行包括三個數(i,j,p);表明公司i享有公司j的p%的**。計算所有的數對(h,s),表明公司h控制公司s。至多有100個公司。
寫乙個程式讀入n組數(i,j,p),i,j和p是都在範圍(1..100)的正整數,並且找出所有的數對(h,s),使得公司h控制公司s。
輸入描述 input description
第一行: n,表明接下來三個數的數量,即(i,j,p)的數量。
第二行到第n+1行: 每行三個整數作為乙個三對數(i,j,p),表示i公司擁有j公司 p%的股份。
輸出描述 output description
輸出零個或更多個的控制其他公司的公司。每行包括兩個整數a、b,表示a公司控制了b公司。將輸出的數對以公升序排列。
請不要輸出控制自己的公司(應該是不輸出自己,互相控制的公司還是要輸出的)。
樣例輸入 sample input
3樣例輸出 sample output1 2 80
2 3 80
3 1 20
1 21 32 3
/*view code一道稍有難度的模擬題,難點在於如何多次處理公司之間的關係,剛開始用dfs寫了一遍,但他不能處理類似於環的情況,即a可以控制b,b也可以控制a,然後又寫了一遍bfs,可過。
*/#include
#include
#define m 110
using
namespace
std;
int a[m][m],q1[m*m],q2[m*m],head,tail,n,m;
intmain()
}while(head<=tail)}}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(a[i][j]>50
) printf(
"%d %d\n
",i,j);
return0;
}
P1475 控制公司
這是一道比較易懂的dfs 遞迴 題 雖然我一開始只得了22分 22分 如下 include include using namespace std int a 105 105 int x,y,z,n intsum intmain for int i 1 i sum i for int j 1 j s...
傳染病控制(codevs 1091)
題目描述 description 問題背景 近來,一種新的傳染病肆虐全球。蓬萊國也發現了零星感染者,為防止該病在蓬萊國 大範圍流行,該國 決定不惜一切代價控制傳染病的蔓延。不幸的是,由於人們尚未完 全認識這種傳染病,難以準確判別病毒攜帶者,更沒有研製出疫苗以保護易感人群。於是,蓬萊國的疾病控制中心決...
諮詢公司應注意成本控制
上個月看到 21世紀經濟報道 的一則文章 神州數碼轉型it服務遇挫財報難產風波或將重演 當時本來想正式寫點東西,但由於忙工作中的一些雜事情,所以耽誤了。心裡總覺得欠著點什麼,今天抽點時間簡單說兩句。諮詢公司的利潤主要 於兩方面,軟硬體分銷和專案 諮詢 開發和公升級等 利潤的大小主要由簽單的數量和規模...