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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

斗地主(深搜+贪心+剪枝)

發布時間:2024/4/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 斗地主(深搜+贪心+剪枝) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

斗地主

題目鏈接http://www.lydsy.com/JudgeOnline/problem.php?id=4325

solution

由于牌數不是很多,n<=23,一開始想到用狀態壓縮的方法標記每一個狀態,然后寬搜。這似乎可行,但是要找四帶二,常數非常大,代碼量也很變態,根本拿不了什么分。除此之外,沒有別的辦法來完成標記,所以寬搜不可行。那就只能深搜剪枝了。
將每種點數的牌有幾張作為參數,這是很容易想到了,然后出牌的順序顯然是不會影響結果的。在那么多的牌型中順子比較特別,只有順子是與點數大小有關的,而且一個順子的牌張數是很多的,是一種比較理想的出牌方式,所以先dfs考慮順子怎么出。對于剩下的牌,就不出順子了。因為要次數最少,一個貪心思想非常明顯——每次出的牌盡可能的多。所以先考慮四帶二對,然后四帶二張,四代一對,三帶二,三帶一……最后是炸彈,三張牌,對子(火箭),單牌。由于順序不影響結果,所以這個貪心沒有問題。在這樣的搜索方法下,再加上最優性剪枝,就可以ac了

#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstdlib> #include<cstring> using namespace std; int T,n,a[20],ans; int work(int *x){int y[10],num=0;memset(y,0,sizeof(y));for(int i=0;i<=13;i++)y[x[i]]++;while(y[4]>=1&&y[2]>=2){num++;y[4]--;y[2]-=2;}while(y[4]>=1&&y[1]>=2){num++;y[4]--;y[1]-=2;}while(y[4]>=1&&y[2]>=1){num++;y[4]--;y[2]--;}while(y[3]>=1&&y[2]>=1){num++;y[3]--;y[2]--;}while(y[3]>=1&&y[1]>=1){num++;y[3]--;y[1]--;}return num+y[1]+y[2]+y[3]+y[4]; } void dfs(int *x,int step){int yu=work(x);ans=min(ans,step+yu);if(step>=ans)return;int y[20];memset(y,0,sizeof(y));for(int i=0;i<=13;i++)y[i]=x[i];for(int i=2;i<=13;i++){int j=i;while(x[j]>=3)j++;while(j-i>=2){for(int k=i;k<j;k++)y[k]-=3;dfs(y,step+1);for(int k=i;k<j;k++)y[k]+=3;j--;}}for(int i=2;i<=13;i++){int j=i;while(x[j]>=2)j++;while(j-i>=3){for(int k=i;k<j;k++)y[k]-=2;dfs(y,step+1);for(int k=i;k<j;k++)y[k]+=2;j--;}}for(int i=2;i<=13;i++){int j=i;while(x[j]>=1)j++;while(j-i>=5){for(int k=i;k<j;k++)y[k]--;dfs(y,step+1);for(int k=i;k<j;k++)y[k]++;j--;}} } int main(){scanf("%d%d",&T,&n);while(T--){memset(a,0,sizeof(a));for(int i=1;i<=n;i++){int x,y;scanf("%d%d",&x,&y);if(x==1) x=13;else if(x)x--;a[x]++;}ans=1000000000;dfs(a,0);printf("%d\n",ans);}return 0; }

?

轉載于:https://www.cnblogs.com/RetardedZY/p/7469878.html

總結

以上是生活随笔為你收集整理的斗地主(深搜+贪心+剪枝)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 午夜美女福利 | 无码精品视频一区二区三区 | 日韩精品第二页 | 国外成人性视频免费 | 国产一级在线免费观看 | 国产精品久久久久毛片软件 | 丰满少妇高潮久久三区 | 日韩欧美亚洲一区 | 91av看片 | 日日夜夜狠狠干 | 他趴在我两腿中间添得好爽在线看 | 国产精品第9页 | 成人免费激情视频 | 国产色图片 | 爱情岛论坛成人av | 午夜a视频 | 樱桃av | 水多多在线 | 97精品视频在线观看 | 欲色视频 | 999精品在线观看 | 精品人妻一区二区三区免费看 | 国产精品国产精品国产专区不卡 | 青青草成人在线 | 怎么可能高潮了就结束漫画 | 激情91视频| 深夜激情网站 | 免费黄色小视频在线观看 | 美国av一区二区 | 五月天色婷婷综合 | 久久88| 美女扒开尿口让男人捅爽 | 天天天天色 | 精品无人区无码乱码毛片国产 | 亚洲男女啪啪 | 国产欧美日韩专区 | 永久免费看mv网站入口亚洲 | 亚洲av第一成肉网 | 干干天天 | 国产一区二区免费在线 | 国产白丝在线观看 | 日本成人一区二区三区 | jizz毛片| 91精品国产乱码久久久张津瑜 | 无码国产精品久久一区免费 | 黄色午夜影院 | 久久久久中文字幕亚洲精品 | 欧美另类视频在线 | 亚洲一区中文字幕在线观看 | 你懂的91 | 亚洲精品自拍 | 色综合视频在线观看 | 精品亚洲中文字幕 | 久久99久久99精品中文字幕 | 老司机福利av | 91麻豆精品国产理伦片在线观看 | 国产亚洲精久久久久久无码77777 | 国产夫妻精品 | 婷婷精品一区二区三区 | 91精品久久久久久久久久久 | 欧美三级一级片 | 国产精品第一国产精品 | www.一区二区三区四区 | 51成人做爰www免费看网站 | 国产激情91 | 天天色天天射综合网 | 日韩视频在线免费观看 | 亚洲看看 | 视频一区国产精品 | 国产在线传媒 | 亚洲美女综合网 | 日本国产高清 | 日韩高清一区二区 | 91在线看视频 | 啊v视频在线观看 | 精品日本一区二区 | 99青青草 | 国产三级一区二区 | 日本中文在线播放 | 九九久久免费视频 | 国产精品女人精品久久久天天 | 偷看洗澡一二三区美女 | 很黄很污的视频 | 超碰狠狠操 | 久久视频在线播放 | 欧美日韩高清一区二区 国产亚洲免费看 | 强行无套内谢大学生初次 | 中文字幕第6页 | 国产色网址 | 91天天| 又黄又爽的免费视频 | av在线不卡网 | 开心激情五月婷婷 | 先锋av在线资源 | 少妇久久久 | 无码视频在线观看 | 国产中年熟女高潮大集合 | 欧美操大逼 | 污网站免费在线 |