日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU 4870 Rating 高斯消元法

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 4870 Rating 高斯消元法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=4870

題意:用兩個賬號去參加一種比賽,初始狀態下兩個賬號都是零分,每次比賽都用分數低的賬號去比賽。有P的概率取勝,相應賬號分數上漲50分,否則相應賬號分數下降100分,問當有一個賬號分數達到1000分時參加比賽次數的數學期望是多少。

思路:比賽期間以為是一道推公式的題,推了半天沒什么收獲。

賽后想了想。看了解題報告以后。知道了這樣的每一個分數相應狀態受到兩個狀態以上推得而且不是從后向前推得情況能夠用高斯消元來解。狀態0~狀態209分別代表者分數為(0,0),(50,0)...(950,950)到有一個賬號的分數為1000的數學期望。E(X,Y)=p(E(x1,y1)+1)+(1-p)(E(x2,y2)+1),(x1,y1)代表著這次比賽取勝之后兩個賬號的分數,(x2,y2)代表著這次比賽失敗之后兩個賬號的分數。

狀態中不用計入狀態(1000,?)是由于除了(1000,950)外其它狀態不會出現。而(1000,950)狀態僅僅與狀態(950,950)有關,而且(950,950)不會從(1000,950)得到,210個狀態中沒有狀態是與(1000,?

)狀態相關,所以不須要處理。

代碼:

#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <map> #include <cstdlib> #include <queue> #include <stack> #include <vector> #include <ctype.h> #include <algorithm> #include <string> #include <set> #define PI acos(-1.0) #define maxn 210 #define INF 0x7fffffff #define eps 1e-8 #define MOD 1000000009 typedef long long LL; typedef unsigned long long ULL; using namespace std; double a[220][220],b[220]; int all[25]; double gauss_elimination(int n) {int i,j,k,row;double maxp,t;for(k=0; k<n; k++){for(maxp=0,i=k; i<n; i++)if (fabs(a[i][k])>eps){maxp=a[row=i][k];break;}if(fabs(maxp)<eps) return 0;if(row!=k){for(j=k; j<n; j++)swap(a[k][j],a[row][j]);swap(b[k],b[row]);}for (int j = 0; j < n; j++){if (k == j) continue;if (fabs(a[j][k]) > eps){double x = a[j][k] / a[k][k];for (int i = k; i < n; i++){a[j][i] -= a[k][i] * x;}b[j] -=b[k]*x;}}}return 1; } int init() {all[0]=0;for(int i=1; i<=21; i++){all[i]=all[i-1]+i;}return 0; } int main() {double p;init();while(~scanf("%lf",&p)){memset(a,0,sizeof(a));memset(b,0,sizeof(b));for(int i=0; i<20; i++){for(int j=0; j<=i; j++){a[all[i]+j][all[i]+j]+=1;b[all[i]+j]+=1;a[all[i]+j][all[i]+max(j-2,0)]+=(p-1);if(j+1<=i)a[all[i]+j][all[i]+j+1]+=(-p);else{if(i==19&&j==19)continue;else a[all[i]+j][all[j+1]+i]+=(-p);}}}gauss_elimination(210);printf("%.6lf\n",b[0]/a[0][0]);}return 0; }

轉載于:https://www.cnblogs.com/gcczhongduan/p/5059758.html

總結

以上是生活随笔為你收集整理的HDU 4870 Rating 高斯消元法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。