HDU 5704
題意:n個人參加一個游戲,每個人選擇0-100范圍的數。m為選擇的所有數的平均數*2/3,選擇的數<=m且距離m最近的人獲勝,若同時有多人滿足條件則隨機抽取勝者。如果一個人選的數,比m小,且相距m最為接近,那么其便在所有選數相同的人中等概率中獎。已知n-1個人的數,輸出一個你選擇的最大的數和最大勝率。
思路:設我選擇的數為x,n-1個數的總和為sum,應滿足x<=(sum+x)/n*2/3 ,即 x<=2sum/(3n-2)。
?
#include<cstdio> #include<iostream> #include<cstring> using namespace std; int num[110]; int main() {int n,t,x;double sum,temp;scanf("%d",&t);while(t--) {memset(num,0,sizeof num);scanf("%d",&n);sum=0;for(int i=0;i<n-1;i++) {scanf("%d",&x);num[x]++;sum+=x;}int res=2.0*sum/(3.0*n-2);double pro=1.0/(num[res]+1);printf("%d %.2f\n",res,pro);}return 0; }?
轉載于:https://www.cnblogs.com/LinesYao/p/5743009.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: 3-2:HTTP协议之URI(URL)和
- 下一篇: 拜占庭将军问题深入探讨