NOIP2015 斗地主
Sol
暴力搜索...不用搜1,2张的情况,直接统计出来就可以了.
还有处理一下2和大王小王的位置,扔到最后面或者最前面就可以了.
搜索就搜 3+3,2+2+2,1+1+1+1+1 这三个就可以了.
Code
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std; const int N = 25; int T,n,ans;
int t[]={13,11,12,0,1,2,3,4,5,6,7,8,9,10};
int a[N]; inline int in(int x=0,char ch=getchar()){ while(ch>'9'||ch<'0') ch=getchar();
while(ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x; } void DFS(int d){
if(d>ans) return;
int c[5]={0,0,0,0,0};
for(int i=0;i<=13;i++) if(a[i]==1) c[1]++;
for(int i=0;i<=13;i++) if(a[i]==2) c[2]++;
for(int i=0;i<=13;i++) if(a[i]==3){
c[3]++;
if(c[2]>=1) c[2]--;else if(c[1]>=1) c[1]--;
}
for(int i=0;i<=13;i++) if(a[i]==4){
c[4]++;
if(c[1]>=2) c[1]-=2;else if(c[2]>=2) c[2]-=2;else if(c[2]>=1) c[2]--;
} ans=min(ans,d+c[1]+c[2]+c[3]+c[4]); //3+3
for(int i=0,j;i<=10;i++){
for(j=i;j<=11;j++){
a[j]-=3;
if(a[j]<0) break;
if(j-i+1>=2) DFS(d+1);
}if(j==12) j--;
while(j>=i) a[j--]+=3;
}
//2+2+2
for(int i=0,j;i<=9;i++){
for(j=i;j<=11;j++){
a[j]-=2;
if(a[j]<0) break;
if(j-i+1>=3) DFS(d+1);
}if(j==12) j--;
while(j>=i) a[j--]+=2;
}
//1+1+1+1+1
for(int i=0,j;i<=7;i++){
for(j=i;j<=11;j++){
a[j]--;
if(a[j]<0) break;
if(j-i+1>=5) DFS(d+1);
}if(j==12) j--;
while(j>=i) a[j--]++;
}
} int main(){
for(T=in(),n=in();T--;){
ans=n;memset(a,0,sizeof(a));
for(int i=1,u,v;i<=n;i++) u=in(),v=in(),a[t[u]]++;
DFS(0);
printf("%d\n",ans);
}return 0;
}
NOIP2015 斗地主的更多相关文章
- NOIP2015斗地主[DFS 贪心]
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...
- BZOJ 4325: NOIP2015 斗地主
4325: NOIP2015 斗地主 Time Limit: 30 Sec Memory Limit: 1024 MBSubmit: 684 Solved: 456[Submit][Status] ...
- NOIP2015 斗地主(搜索+剪枝)
4325: NOIP2015 斗地主 Time Limit: 30 Sec Memory Limit: 1024 MBSubmit: 270 Solved: 192[Submit][Status] ...
- [补档][NOIP2015] 斗地主
[NOIP2015] 斗地主 题目 传送门:http://cogs.pro/cogs/problem/problem.php?pid=2106 INPUT 第一行包含用空格隔开的2个正整数Tn,表示手 ...
- LOJ2422 NOIP2015 斗地主 【搜索+贪心】*
LOJ2422 NOIP2015 斗地主 LINK 题目大意很简单,就是问你斗地主的一分手牌最少多少次出完 然后我们发现对于一种手牌状态,不考虑顺子的情况是可以贪心做掉的 然后我们直接枚举一下顺子出牌 ...
- 【BZOJ4325】NOIP2015 斗地主 搜索+剪枝
[BZOJ4325]NOIP2015 斗地主 Description 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗 ...
- 2106. [NOIP2015] 斗地主
2106. [NOIP2015] 斗地主 ★★★☆ 输入文件:landlords.in 输出文件:landlords.out 简单对比 时间限制:2 s 内存限制:1025 M ...
- NOIP2015斗地主题解 7.30考试
问题 B: NOIP2015 斗地主 时间限制: 3 Sec 内存限制: 1024 MB 题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共 ...
- [NOIP2015] 斗地主(搜索)
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...
- NOIP2015斗地主(搜索+模拟+贪心)
%%%Luan 题面就不说了,和斗地主一样,给一组牌,求最少打几次. 注意一点,数据随机,这样我们瞎搞一搞就可以过,虽然直接贪心可以证明是错的. 枚举方法,每次搜索按照(三顺子>二顺子>普 ...
随机推荐
- 用arp-scan扫描局域网IP地址
1,在安装之前需要安装yum install -y libpcap libpcap-devel如果没有安装yum工具需要用rpm安装如下软件包[root@oradba arp-scan-1.8]# y ...
- JSP简单标签开发
一.继承自SimpleTag接口的自定义标签实现类称为简单标签,接口中5个方法 1.setJspContext方法 用于把JSP页面的PageContext对象传递给标签处理器对象 2.setPare ...
- js数组特定位置元素置空,非null和undefined,实现echarts现状图效果;谷歌格式化压缩js代码
一.想要实现eCharts线状图表的断点效果,如图(后来又查到数据格式为data:['-', 2, 3,'-' , 5, 6, 7]:也可以断点显示) 这种效果,在设置数据的时候应该是这样: data ...
- C风格字符串与C++风格字符串
C风格字符串与C++风格字符串 C风格字符串:对字符串进行操作的 C 函数定义在头文件<cstring>中: 1. 字符串定义:char* result: 2. 字符串的最后一个字符是nu ...
- thinkphp 模板里a标签 href 带参数的 使用U函数方法
简单的说就是模板里 分类的链接地址 实现这个样子的 <a href="/index.php/Home/Category/assortment/cateid/2.html"&g ...
- Effective Objective-C 2.0 — 第14条:理解“类对象“的用意
每个实例都有一个指向Class 对象的指针,用以表明其类型,而这些 Class 对象则构成了类的继承体系. 如果对象类型无法在编译期确定,那么就应该使用类型信息查询方法来探知. 尽量使用类型信息查询方 ...
- [转] Memcached参数设置 命令
只是看到了..这些命令肯定是没问题的.. 笔者现在也还不会用..汗..先留着..找到怎么用了在回来修改.. memcached的基本设置: -p 监听的端口-l 连接的IP地址, 默认是本机-d st ...
- jsonp解决CORS问题
jsonp是个机智的解决办法: 1.本地页面写个js方法 <script> function abc(data) { alert(data.result); } </script&g ...
- hdu4923 Room and Moor
4923Room and Moor Room and Moor Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/2621 ...
- JAVA浅析字节流与字符流
[概括] 字节流是通用的,既可以操作图片又可以操作文本,但一般都用于操作图片.字符流是基于字节流的,因为字符流内部融合编码表,所以用来操作文本. 1.在字节输入流中能根据文件的大小来开辟数组空间 Fi ...