【UOJ #147】【NOIP 2015】斗地主
搜索时先枚举三顺子,双顺子和单顺子,然后贪心带牌和成三成双成单出。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int in() {
int k = 0, fh = 1; char c = getchar();
for(; c < '0' || c > '9'; c = getchar())
if (c == '-') fh = -1;
for(; c >= '0' && c <= '9'; c = getchar())
k = (k << 3) + (k << 1) + c - '0';
return k * fh;
} int a[20], c[5], n, ans; int cal() {
memset(c, 0, sizeof(c));
for(int i = 0; i <= 13; ++i)
++c[a[i]];
int ret = 0;
while (c[4] && c[2] >= 2) --c[4], c[2] -= 2, ++ret;
while (c[4] && c[1] >= 2) --c[4], c[1] -= 2, ++ret;
while (c[3] && c[2]) --c[3], --c[2], ++ret;
while (c[3] && c[1]) --c[3], --c[1], ++ret;
return ret + c[4] + c[3] + c[2] + c[1];
} void dfs(int step) {
if (step >= ans) return;
ans = min(ans, step + cal()); int i, j, k, tail;
j = 0;
for(i = 2; i <= 13; ++i) {
for(j = max(j, i); a[j] >= 3; ++j);
for(tail = j; tail >= i + 2; --tail) {
for(k = i; k < tail; ++k) a[k] -= 3;
dfs(step + 1);
for(k = i; k < tail; ++k) a[k] += 3;
}
} j = 0;
for(i = 2; i <= 13; ++i) {
for(j = max(j, i); a[j] >= 2; ++j);
for(tail = j; tail >= i + 3; --tail) {
for(k = i; k < tail; ++k) a[k] -= 2;
dfs(step + 1);
for(k = i; k < tail; ++k) a[k] += 2;
}
} j = 0;
for(int i = 2; i <= 13; ++i) {
for(j = max(j, i); a[j] >= 1; ++j);
for(tail = j; tail >= i + 5; --tail) {
for(k = i; k < tail; ++k) --a[k];
dfs(step + 1);
for(k = i; k < tail; ++k) ++a[k];
}
}
} int main() {
int T, color, num; T = in(); n = in();
while (T--) {
memset(a, 0, sizeof(a));
for(int i = 1; i <= n; ++i) {
num = in(); color = in();
if (num == 1) num = 13;
else if (num != 0) --num;
++a[num];
}
ans = cal();
dfs(0);
printf("%d\n", ans);
}
return 0;
}
QAQ
【UOJ #147】【NOIP 2015】斗地主的更多相关文章
- Luogu 2668 NOIP 2015 斗地主(搜索,动态规划)
Luogu 2668 NOIP 2015 斗地主(搜索,动态规划) Description 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来 ...
- 基础算法(搜索):NOIP 2015 斗地主
Description 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3& ...
- [BZOJ 4325][NOIP 2015] 斗地主
一道防AK好题 4325: NOIP2015 斗地主 Time Limit: 30 Sec Memory Limit: 1024 MBSubmit: 820 Solved: 560[Submit] ...
- [NOIp 2015]斗地主
Description 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3& ...
- [NOIP 2015] 斗地主 landlord
想起几个月之前的 noip2015-只会瞎搞-这道题骗了 30 分.T T 题目 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的 A 到 K 加上大小王的共 54 张牌 ...
- UOJ #149 [NOIP 2015] 子串
传送门 Solution DP+滚动数组. DP状态 \(dp[i][j][k]\): \(A\)的第\(i\)个字符和\(B\)的第\(j\)个字符匹配且该字符在第\(k\)个子串中的方案数. 转移 ...
- noip 2015 斗地主 大爆搜!!!
反正肯定是大模拟 但是每一个可以出的牌都搜一定不是最优的 考虑最特殊的出牌方案:顺子(单,对,三) 每一种方案再加上暴力贪心打出剩下的牌的步数 #include<cstdio> #incl ...
- 洛谷 P2668 & P2540 [ noip 2015 ] 斗地主 —— 搜索+贪心
题目:https://www.luogu.org/problemnew/show/P2668 https://www.luogu.org/problemnew/show/P2540 首先,如果没有 ...
- 4632 NOIP[2015] 运输计划
4632 NOIP[2015] 运输计划 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题解 题目描述 Description 公元 2044 ...
- NOIP 2015
Prob.1 2015 神奇的幻方 模拟就好了.(这不是noip2017的初赛题么.)代码: #include<cstdio> #include<cstring> #inclu ...
随机推荐
- 使用C#向ACCESS中插入数据
使用C#向ACCESS中插入数据 1.创建并打开一个OleDbConnection对象 string strConn = " Provider = Microsoft.Jet.OLEDB ...
- 虚拟机VMware怎么完全卸载干净
虚拟机VMware怎么完全卸载干净 听语音 | 浏览:19929 | 更新:2014-12-21 10:28 | 标签:虚拟机 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅高质屏和好师傅 ...
- QuickFIX/N入门:(三)如何配置QuickFIX/N
Acceptor或者Initiator能够为您维护尽可能多的FIX会话,因而FIX会话标识的唯一性非常重要.在QuickFIX/N中,一个FIX会话的唯一标识是由:BeginString(FIX版本号 ...
- poj 3264
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 44594 Accepted: 20931 ...
- 上传Text文档并转换为PDF
今天在ASP.NET MVC环境中学习一些PDF相关的知识,想法是上传文件成功时,并把文件转换为PDF文档. 打开你的专案,运行NuGet包管理器,下载一个叫iTextSharp的东东: 点击Inst ...
- (原创)解决远程桌面连接远程应用时,出现 '应用程序错误: '0x7c931780'指令引用的 '0x89abcdef' 内存。该内存不能为 'read'"
公司的部分应用为cs结构,没有web版的,这些应用的外部访问基本都是通过使用windows server 2008 r2的远程桌面服务来实现的. 个人感觉微软远程桌面服务问题很多,今天有同事使用Rem ...
- Camera.Parameters 参数
public class Camera.Parameters extends Object java.lang.Object ↳ android.hardware.Camera.Paramete ...
- c#:Reflector+Reflexil 修改编译后的dll/exe文件
不知道大家有没有这样的经历:现场实施时测试出一个bug,明明知道某个dll/exe文件只要修改一二行代码即可,但手头没有开发环境,紧急情况下,可以用reflector + reflexil 临时直接修 ...
- 微软虚拟学院MVA 字幕获取方法
微软虚拟学院(MVA)上有一些不错的视频教程,但是,蛋疼的一点那就是视频要不就慢,要不就卡,总之当你的思维跟着视频深入的时候,duang~,卡一下,说不定就要重头开始,所幸的是提供了视频下载,下载速度 ...
- Redis简介-安装-入门
前言 我们team马上要用Redis了. 所以先学习一下这东西. Redis大名很早以前就听过了,以前在的公司都没有用到. 现在有机会终于接触到了,果断学习起来. 什么是redis Redis是完全开 ...