[补档][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++标准模板库中的部分内容,它是 ...
随机推荐
- [项目记录]一个.net下使用HAP实现的吉大校园通知网爬虫工具:OAWebScraping
第一章 简介 本文主要介绍了在.NET下利用优秀的HTML解析组件HtmlAgilityPack开发的一个吉林大学校内通知oa.jlu.edu.cn的爬取器.尽管.Net下解析HTML文件有很多种选择 ...
- oracle备份、还原
----第一步:设置空表导出 ----由于Oracle 11G在用EXPORT导出时,空表不能导出.解决方法如下:(11G中有个新特性,当表无数据时,不分配segment,以节省空间) select ...
- Discuz搜索改为指向帖子
安装的版本是DiscuzX2.5,搜索的时候发现默认指向的是门户里的文章搜索,但程序都没有安装门户,只有论坛,所以不能搜索文章. 在网上找了半天终于找到修改的办法了. <input name=& ...
- 《HelloGitHub》第 15 期
公告 这段时间没怎么写文章,跑去写 https://hellogithub.com 这个网站了,现在已经顺利上线,功能后面会持续迭代. 最后,这个 https://hellogithub.com 网站 ...
- curl通过调用WebService查询当前天气
<?php /** * curl通过调用WebService查询北京的当前天气 */ header("Content-type: text/html; charset=utf-8&qu ...
- Swift大写和小写字符串
您可以通过字符串的 uppercaseString 和 lowercaseString 属性来访问一个字符串的大写/小写版本. 复制纯文本新窗口 let normal = "Could yo ...
- 我的IT开源之路
我开通博客这么久也从没有写过什么,那时只是喜欢看别人的技术博客,然后转发到我的私人空间有空时候读一读.这几年下来,我关注了有几百个博客.公众号.头条号.新浪微博等等,里面有无数的好文章.但是,一直也没 ...
- Vue和Bootstrap的整合之路
我是一个刚刚接触前端开发的新手,所以有必要记录如何将Bootstrap和Vue进行整合. 如果你是老手,请直接绕道而过.作为一个新手,里面的步骤,过程或者专业术语未必正确,如果你发现哪里错误了,请发邮 ...
- 【LeetCode】116. Populating Next Right Pointers in Each Node
题目: Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode ...
- 解决VMware虚拟机不能上网的问题
这是其中一种情况,因为使用360等加速的时候把VMware 的DHCP等服务关闭了,重新启动服务即可,方法是WIN+R 输入cmd,在doc输入services.ms打开服务,找到 把这些都启动即可