[LOJ2422]【NOIP2015】斗地主
大名鼎鼎的NOIP2015D1T3
题意:
由于一些众所周知的原因,没有完整题面……
给你一副斗地主的手牌(牌数<=23),问最少要几次能出完;
包含双王,没有癞子,连对要三连对以上,可以直接出三张同点数的牌(三对),可以出连着的三对,也可以三带一,三带二,但不能出飞机,可以四张带一对或两张单牌。
题解:
神题啊……orz……虽然写起来并不麻烦,但是当年这个神之题面真是雷倒了无数选手……
提前来做的原因是今天xfz出了一道毒瘤题(密码:yxqak)……是这题的弱化版(其实是道水题啦),本蒟蒻看到题面就吓傻了不敢打,改完题来膜一下原题……
首先注意到花色和点数大小是没用的(王也可以被带着出),且出牌时除非出顺子(连对,连三对),否则出牌的顺序是不会影响到最后答案的;
并且牌数很少(毕竟是斗地主嘛……),最多只会有四个顺子,所以可以直接暴力dfs把所有顺子找出来,枚举怎么出每一个顺子,然后再贪心处理当前的出牌情况;
很容易想到把牌组合起来出越多越好,贪心优先四带二,三带二,三带一,剩余的炸弹,三对,对子和单张直接出掉;
于是就……做完了。
ps:然而实际上由于本题数据太小,爆搜可以轻松通过
(听说欢乐斗地主上100w豆即可一秒切掉此题)
代码:
1 #include<algorithm> 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath> 6 #include<queue> 7 #define inf 2147483647 8 #define eps 1e-9 9 using namespace std; 10 typedef long long ll; 11 int t,n,x,y,ans,num[17],tot[5]; 12 int gao(){ 13 int ret=0; 14 memset(tot,0,sizeof(tot)); 15 for(int i=3;i<=16;i++){ 16 tot[num[i]]++; 17 } 18 while(tot[4]&&tot[2]>=2){ 19 tot[4]--; 20 tot[2]-=2; 21 ret++; 22 } 23 while(tot[4]&&tot[1]>=2){ 24 tot[4]--; 25 tot[1]-=2; 26 ret++; 27 } 28 while(tot[4]&&tot[2]){ 29 tot[4]--; 30 tot[2]--; 31 } 32 while(tot[3]&&tot[2]){ 33 tot[3]--; 34 tot[2]--; 35 ret++; 36 } 37 while(tot[3]&&tot[1]){ 38 tot[3]--; 39 tot[1]--; 40 ret++; 41 } 42 return ret+tot[1]+tot[2]+tot[3]+tot[4]; 43 } 44 void dfs(int nw){ 45 if(nw>=ans)return; 46 ans=min(ans,nw+gao()); 47 for(int i=3,j;i<=14;i++){ 48 j=i; 49 while(num[j]>=3&&j<=14)j++; 50 if(j-i>=2){ 51 for(int k=i+1;k<j;k++){ 52 for(int l=i;l<=k;l++){ 53 num[l]-=3; 54 } 55 dfs(nw+1); 56 for(int l=i;l<=k;l++){ 57 num[l]+=3; 58 } 59 } 60 } 61 } 62 for(int i=3,j;i<=14;i++){ 63 j=i; 64 while(num[j]>=2&&j<=14)j++; 65 if(j-i>=3){ 66 for(int k=i+2;k<j;k++){ 67 for(int l=i;l<=k;l++){ 68 num[l]-=2; 69 } 70 dfs(nw+1); 71 for(int l=i;l<=k;l++){ 72 num[l]+=2; 73 } 74 } 75 } 76 } 77 for(int i=3,j;i<=14;i++){ 78 j=i; 79 while(num[j]&&j<=14)j++; 80 if(j-i>=5){ 81 for(int k=i+4;k<j;k++){ 82 for(int l=i;l<=k;l++){ 83 num[l]--; 84 } 85 dfs(nw+1); 86 for(int l=i;l<=k;l++){ 87 num[l]++; 88 } 89 } 90 } 91 } 92 } 93 int main(){ 94 scanf("%d%d",&t,&n); 95 while(t--){ 96 ans=inf; 97 memset(num,0,sizeof(num)); 98 for(int i=1;i<=n;i++){ 99 scanf("%d%d",&x,&y); 100 if(!x)x=16; 101 if(x==1)x=14; 102 if(x==2)x=15; 103 num[x]++; 104 } 105 dfs(0); 106 printf("%d\n",ans); 107 } 108 return 0; 109 }
转载于:https://www.cnblogs.com/dcdcbigbig/p/9872655.html
[LOJ2422]【NOIP2015】斗地主相关推荐
- 2106. [NOIP2015] 斗地主
2106. [NOIP2015] 斗地主 ★★★☆ 输入文件:landlords.in 输出文件:landlords.out 简单对比 时间限制:2 s 内存限制:1025 MB [题 ...
- [NOIP2015] 斗地主
斗地主 最后还是去看了题解,也算把坑填了吧.感觉大概是懂了,写一下思路.主要是因为还是老感觉哪里别扭想找个地方说出来 先放上代码 1 #include<bits/stdc++.h>//如果 ...
- noip2017考前整理(未完)
快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...
- [杂言] GoodBye,2016
呼-- 2016年终于要过去了-- 就在这一年,我开始了-- 也就在这一年,我GG了-- 谨以此文纪念我过得不怎么好的2016. 一月 (我还是萌新求轻虐) 当时还在学习背包和深搜,突然dayu把yb ...
- NOIP2017暨2017年9月——11月学习总结
NOIP2017结束了啊..在考场中心情起起伏伏..先是看一眼D2T1就想到思路的小兴奋..又是大样例调不过的紧张..还有找出代码里错误的那一刻的激动..(不知道会不会被卡常啊..)整个比赛的过程还是 ...
- [比赛|考试] 9月第一周的考试
Sept 8th Sat 牛客网普及组赛(360pts/400pts)(100/100/100/60) T1水题不放代码,来个链接 T2乱膜膜就行了,注意膜出来是0要变成N,还有开longlong比较 ...
- 【NOIP2015 DAY1 T3 】斗地主(landlords)
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...
- 【NOIP2015提高组Day1】斗地主
嘿嘿,学老贺乱搞 文章目录 题面 心路历程 题解 官方版本 代码 彭奆版本 本人解法 代码 题面 博弈论??? 贪心??? 一脸懵逼*1??? 一脸懵逼*2??? 一脸懵逼*3??? ???????? ...
- 【NOIP2015】洛谷2668 斗地主
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...
最新文章
- 转 前端工程师凭什么这么值钱?
- 规格表管理之更新规格表数据
- 【UVALive 4642】Malfatti Circles(圆,二分)
- [Leetcode][第75题][JAVA][颜色分类][双(三)指针][计数排序]
- 【转】一个ASP.NET MVC中ajax调用WebApi返回500 Internal Server Error的调错方法。
- PHP中英文截取函数,php字符串截取函数,支持中英文混体
- 中国工程院院士和科学院院士有什么区别,谁贡献很大却没有入院士?
- (软件工程复习核心重点)第六章实现和测试-第二节:软件测试基础
- MySQL中的SQL Mode及其作用
- 3-20Pytorch与张量裁剪运算
- C#面向对象系列(2):构造函数的用法
- 作业4:结对编程项目四则运算
- POJ 3321 Apple Tree 【树状数组+建树】
- 微信小程序弹框wx.showModal如何修改样式
- [buuctf] crypto全解——85-120(不建议直接抄flag)
- 正态性检验中的统计量D值和统计量W值如何计算?
- 企业邮箱申请注册流程,10分钟搞定公司企业邮箱
- vc模拟 tabletpc_业力和TabletPC笔
- Regin恶意软件:何以潜伏如此久?
- 360视频:金字塔棱台投影TSP
热门文章
- 接盘恒大、清债,自救的华远地产能度过地产寒冬吗?
- blackjack java gui_求助一个java的题,blackjack, class 分为Card 和Deck,求大神帮我做一个程序...
- ubuntu 软件包管理
- HBuilderX wifi无线真机调试
- 中国android手机市场占有率,Android成全球第二大手机系统 市场份额达26%
- oracle 000000000A2F6630,数据导入新库时发生错误
- 大咖们都在用的三大引流拓客方案,学会一个就够用
- ltsc系统升级为服务器,微软宣布Win11将像Win10一样每月提供更新 且有长期服务版本LTSC...
- python实现刷问卷星份数(面向对象)
- 美nv写真手机壁纸采集源码