51Nod 1366 貧富差距

2021-08-13 23:04:38 字數 1111 閱讀 8326

乙個國家有n個公民,標記為0,1,2,...,n-1,每個公民有乙個存款額。已知每個公民有一些朋友,同時國家有一條規定朋友間的存款額之差不能大於d。也就是說,a和b是朋友的話,a有x元的存款,b有y元,那麼|x-y|<=d。給定d值與n個人的朋友關係,求這個國家最富有的人和最貧窮的人的存款相差最大的可能值是多少?即求貧富差距的最大值的下界。若這個值為無窮大,輸出-1.

input

多組測試資料,第一行乙個整數t,表示測試資料數量,1<=t<=5

每組測試資料有相同的結構構成。

每組資料的第一行兩個整數n,d,表示人數與朋友間存款差的最大值,其中2<=n<=50,0<=d<=1000.

接下來有乙個n*n的陣列a,若a[i][j]='y'表示i與j兩個人是朋友,否則a[i][j]='n'表示不是朋友。其中a[i][i]='n',且保證

a[i][j]=a[j][i].

output

每組資料一行輸出,即這個國家的貧富差距最大值的下界,如果這個值為無窮大輸出-1.
input示例

3

3 10

nynyny

nyn2 1

nnnn

6 1000

nnynnn

nnynnn

yynynn

nnynyy

nnnynn

nnnynn

output示例

20

-13000

floyd演算法求無向圖中任意兩點間的最短路問題,首先要判斷是否為連通圖,否則輸出-1,其次,對於任意兩點i和j,最大差值為i和j的最短距離*d。只需要找出所有的i和j的最大差值中的最大值即可。

#include#include#include#include#includeusing namespace std;

const int inf=0x3f3f3f3f;

int t,n,c;

int d[110][110];

int main()

if(f)printf("-1\n");

else printf("%d\n",max*c);

}return 0;

}

中國沒有貧富差距,大家都是窮人

你是窮人還是富人?下面是剛頒布的 中國貧富標準線 看看我們生活在哪個層次?超級大富豪 年收入在5000萬以上 大富豪 年收入在1000 5000萬 富豪 年收入在300 1000萬之間 富人 年收入在100 300萬之間 高產者 年收入在30 100萬之間 中產者 年收入在15 30萬之間 低產者 ...

中國沒有貧富差距,大家都是窮人

你是窮人還是富人?下面是剛頒布的 中國貧富標準線 看看我們生活在哪個層次?超級大富豪 年收入在5000萬以上 大富豪 年收入在1000 5000萬 富豪 年收入在300 1000萬之間 富人 年收入在100 300萬之間 高產者 年收入在30 100萬之間 中產者 年收入在15 30萬之間 低產者 ...

縮小貧富差距和增加人口的唯一辦法

中 國 現 狀 由於人口慣性的作用,儘管每對夫婦生育的子女數已經很少,但由於育齡夫婦的數量依然龐大,未來30多年時間裡,人口總量仍將增長到15億左右才能靜止下來。根據聯合國的人口 結果,到2040年前後,印度人口數量將超過中國,中國將不再是世界上人口最多的國家,但中國仍將長期是世界上老年人口最多的國...