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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[hiho1159] Poker

發布時間:2025/6/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [hiho1159] Poker 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

題意:給你一副撲克中的幾張牌,要你將這些牌進行排列,并且相鄰的牌數字不能相同

?

題解:

dp(組合數)

dp[i][j]表示放到第i種數字,有j個數字相同且相鄰的方案數

1、對于同一種數字,可以將其劃分為k組,有C(cnt[i]-1,k-1)種分法

2、考慮將這k組中的l組放到數字相同的中間,其余放置任意位置,則分別有:

C(j,l)和C(tot+1-j,k-l)種放法(tot表示前面有多少張牌)

那么就可已轉移了

設x為放完后的同花色相鄰,則x=j+a[i]-k-l

dp[i][x]+=C(j,l) * C(tot+1-j,k-l)* C(cnt[i]-1,k-1) * dp[i-1][j]

?

/*Poker組合dp */ #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<cmath> #define ull unsigned long long using namespace std;int num[310],cnt[15]; ull c[55][55],dp[15][55],fac[10]; char alph[15]={"0A23456789TJQK"};int gi() {int x=0,o=1; char ch=getchar();while(ch!='-' && (ch<'0' || ch>'9')) ch=getchar();if(ch=='-') o=-1,ch=getchar();while(ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar();return o*x; }void pre() {c[0][0]=1;for(int i=1; i<=52; i++) {c[i][0]=c[i][i]=1;for(int j=1; j<i; j++) {c[i][j]=c[i-1][j-1]+c[i-1][j];}}for(int i=1; i<=13; i++) num[alph[i]]=i;fac[0]=1;for(int i=1; i<=4; i++) fac[i]=fac[i-1]*i; }int main() {pre();int T=gi(),tot,n,t=0;while(T--) {n=gi(),tot=0;memset(cnt,0,sizeof(cnt));for(int i=1; i<=n; i++) {char s[3];scanf("%s", s);cnt[num[s[0]]]++;}memset(dp,0,sizeof(dp));dp[0][0]=1;for(int i=1; i<=13; i++) {if(cnt[i]==0) {for(int j=0; j<=max(0,tot-1); j++)dp[i][j]=dp[i-1][j];continue;}for(int j=0; j<=max(0,tot-1); j++) for(int k=1; k<=cnt[i]; k++) for(int l=0; l<=k; l++) if(j+cnt[i]-k-l>=0)dp[i][j+cnt[i]-k-l]+=dp[i-1][j]*c[cnt[i]-1][k-1]*c[j][l]*c[tot+1-j][k-l];tot+=cnt[i];}ull ans=dp[13][0];for(int i=1; i<=13; i++) {ans=ans*fac[cnt[i]];}printf("Case #%d: %llu\n", ++t,ans);} }

?

轉載于:https://www.cnblogs.com/HLXZZ/p/7593768.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的[hiho1159] Poker的全部內容,希望文章能夠幫你解決所遇到的問題。

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