[补档][NOIP2015] 斗地主
[NOIP2015] 斗地主
题目
INPUT
OUTPUT
SAMPLE
INPUT1
OUTPUT1
INPUT2
OUTPUT2
解题报告
3 4 5 6 7 8 9 9 10 10 J J
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- using namespace std;
- inline int read(){
- int sum();
- char ch(getchar());
- for(;ch<''||ch>'';ch=getchar());
- for(;ch>=''&&ch<='';sum=sum*+(ch^),ch=getchar());
- return sum;
- }
- int size[];
- int n,ans;
- inline int get_val(int x){
- if(x==)
- return ;
- if(x==)
- return ;
- if(x==)
- return ;
- return x-;
- }
- inline int doit(){
- int tmp();
- int tp[]={};
- for(int i=;i<=;i++)
- tp[size[i]]++;
- while(tp[]&&tp[]>=)
- tmp++,tp[]--,tp[]-=;//四带俩对
- while(tp[]&&tp[]>=)
- tmp++,tp[]--,tp[]-=;//四带俩单
- while(tp[]&&tp[]>=)
- tmp++,tp[]--,tp[]--;//三带二
- while(tp[]&&tp[]>=)
- tmp++,tp[]--,tp[]--;//三带一
- tmp+=tp[]+tp[]+tp[]+tp[];
- return tmp;
- }
- inline int my_min(int a,int b){
- return a<b?a:b;
- }
- inline void dfs(int cnt){
- if(cnt>ans)
- return;
- int x(doit());
- ans=my_min(ans,cnt+x);
- for(int i=;i<=;i++){//三顺子
- int j;
- for(j=i;size[j]>=&&j<=;j++);
- if(j-i<)
- continue;
- for(int k=j;k-i>=;k--){
- for(int l=i;l<k;l++)
- size[l]-=;
- dfs(cnt+);
- for(int l=i;l<k;l++)
- size[l]+=;
- }
- }
- for(int i=;i<=;i++){//连对
- int j;
- for(j=i;size[j]>=&&j<=;j++);
- if(j-i<)
- continue;
- for(int k=j;k-i>=;k--){
- for(int l=i;l<k;l++)
- size[l]-=;
- dfs(cnt+);
- for(int l=i;l<k;l++)
- size[l]+=;
- }
- }
- for(int i=;i<=;i++){//顺子
- int j;
- for(j=i;size[j]>=&&j<=;j++);
- if(j-i<)
- continue;
- for(int k=j;k-i>=;k--){
- for(int l=i;l<k;l++)
- size[l]--;
- dfs(cnt+);
- for(int l=i;l<k;l++)
- size[l]++;
- }
- }
- }
- inline int gg(){
- // freopen("landlords.in","r",stdin);
- // freopen("landlords.out","w",stdout);
- int T(read());
- n=read();
- while(T--){
- memset(size,,sizeof(size));
- for(int i=;i<=n;i++){
- int x(read()),y(read());
- size[get_val(x)]++;
- }
- ans=doit();
- dfs();
- printf("%d\n",ans);
- }
- return ;
- }
- int K(gg());
- int main(){;}
[补档][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] ...
- [补档]暑假集训D6总结
考试 不是爆零,胜似爆零= = 三道题,就拿了20分,根本没法玩好吧= = 本来以为打了道正解,打了道暴力,加上个特判分,应该不会死的太惨,然而--为啥我只有特判分啊- - 真的是惨. 讲完题觉得题是 ...
- 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加上大小王的共 ...
- STL 补档
STL 补档 1.vector 作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据. vector在C++标准模板库中的部分内容,它是 ...
随机推荐
- python 数据类型 -- set
0. set : 无序的,不重复的序列. 1. 创建 set s = set() s = set(list) # list 为可迭代对象的即可 s = {1,23,4} 2. 内建方法 1) 一般方法 ...
- ionic 项目中添加modal的步骤流程
1.首先在templates文件夹下面定义一个新页面,xxx.html,template文件夹在空项目里面是没有的,需要手动添加一个,放在WWW文件夹下面. <ion-modal-view> ...
- 转化来的图标用法symbol引用‘font-class引用及Unicode引用
- win7开启telnet客户端
- MySQL数据库web维护客户端管理工具
TreeSoft数据库管理系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,实现基于WEB方式对 MySQL,Oracle,PostgreSQL 等数据库进行维护管理操作. 功能 ...
- chrome谷歌浏览器-DevTool开发者工具-详细总结
目录: 一.概述 1.官方文档 2.打开方法: 3.前言: 二.九个模块: 1.设备模式Device Mode 2.元素面板Elements 3.控制台面板Console 4.源代码面板Sources ...
- python 导入informixdb模块
最近碰到Linux平台使用python连接informixdb数据库的问题.整理如下: 1.安装 informixdb 下载InformixDB-2.5.tar.gz 解压之后,在README文档下看 ...
- java中的选择排序之降序排列
import java.util.Arrays;//必须加载 class Demo{ public static void main(String []args){ int[] arr={3,54,4 ...
- jQuery实现的快速查找
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 团队开发冲刺2-----1day
第二冲刺阶段团队软件开发第二阶段冲刺 冲刺目标: 1.在第一阶段的基础上完成app内部界面设计. 2.逐步完成app内每一部分内容. 3.对app的实现进一步仔细钻研考虑. 4.对app每一部分内容模 ...