hdu 4503 湫湫系列故事——植树节
生活随笔
收集整理的這篇文章主要介紹了
hdu 4503 湫湫系列故事——植树节
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
湫湫系列故事——植樹(shù)節(jié)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Time Limit: 1000/500 MS (Java/Others)????Memory Limit: 65535/32768 K (Java/Others)Problem Description 今天是一年一度的植樹(shù)節(jié),騰訊幼兒園要求每個(gè)老師在班里選出幾個(gè)小朋友一起去野外種植小樹(shù)苗,根據(jù)學(xué)校的整體安排,湫湫老師的班里要選出3個(gè)小朋友。??已知湫湫的班里共有n個(gè)孩子,每個(gè)孩子有Bi個(gè)朋友(i從1到n),且朋友關(guān)系是相互的,如果a小朋友和b小朋友是朋友,那么b小朋友和a小朋友也一定是好朋友。為了選擇的公平性,湫湫老師會(huì)隨機(jī)抽取3個(gè)小朋友出來(lái)(每個(gè)人被抽到的概率相同),但是她很希望這3個(gè)小朋友之間的關(guān)系完全相同,湫湫老師想請(qǐng)你幫她算算抽到的3個(gè)小朋友正好關(guān)系相同的概率是多少?
PS. 關(guān)系相同就是指要么3個(gè)人互相是好朋友,要么3個(gè)人互相都不是好朋友。
Input 輸入數(shù)據(jù)第一行是一個(gè)整數(shù)T(1<=T<=1000),表示輸入數(shù)據(jù)的組數(shù);每組數(shù)據(jù)的第一行是一正整數(shù)n表示孩子的總數(shù)(2<n<=1000),第二行有n個(gè)數(shù)Bi (i從1到n),分別代表每個(gè)小朋友的朋友的個(gè)數(shù)。
Output 對(duì)于每組數(shù)據(jù),請(qǐng)輸出抽到的3個(gè)小朋友關(guān)系相同的概率,結(jié)果保留3位小數(shù)。
Sample Input 1 5 3 3 3 3 4
Sample Output 0.400 這個(gè)問(wèn)題直接求不太好求,所以我們可以求它的反面,即求3人關(guān)系不一樣的情況,然后用總數(shù)減去不一樣的就是一樣的。不一樣的情況就是:有兩個(gè)人是朋友,但和第三個(gè)人不是朋友,所以對(duì)于第i個(gè)人,可以從他的朋友中選出一個(gè),再?gòu)牟皇撬呐笥阎羞x出一個(gè),然后加上他自己,最后求和除以2就是不一樣的數(shù)量(因?yàn)槊總€(gè)人都算了2次)。 #include<stdio.h> int main() {int a, t, n, i;scanf("%d",&t);while(t--){scanf("%d",&n);int num = 0;for(i = 0; i < n; i++){scanf("%d",&a);num += a * (n - 1 - a);}num /= 2;int sum = n * (n-1) * (n-2) / 6;printf("%.3lf\n",(sum - num)*1.0 / sum);}return 0; }
總結(jié)
以上是生活随笔為你收集整理的hdu 4503 湫湫系列故事——植树节的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Redis——史上最强【集群】入门实践教
- 下一篇: bnuoj 1068 比赛安排