【BZOJ 1028】[JSOI2007]麻将
【题目链接】:http://www.lydsy.com/JudgeOnline/problem.php?id=1028
【题意】
【题解】
/*
枚举新加入的一张牌是哪一张牌;
然后尝试把它加进去;
再枚举1..n里面是哪一张牌组成了对子;
然后再看看剩余的牌能不能按照要求
分成3*m组
个数直接对3取模
因为个数大于3的话,就直接组成3个一样的一组就好了;
剩下的看看能不能组成符合要求的顺子;
写个模拟找顺子的过程就好
*/
【完整代码】
#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%lld",&x)
#define ref(x) scanf("%lf",&x)
typedef pair<int, int> pii;
typedef pair<LL, LL> pll;
const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 };
const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 };
const double pi = acos(-1.0);
const int N = 400+20;
int n, m;
int num[N],temp[N];
vector <int> v;
void input_data()
{
rei(n), rei(m);
int x;
rep1(i, 1, 3 * m + 1)
{
rei(x);
num[x]++;
}
}
bool ju()
{
rep1(j,1,n)
if (num[j] >= 2)
{
num[j] -= 2;
rep1(j, 1, n + 2)
temp[j] = num[j];
bool ok = true;
rep1(j, 1, n + 2)
{
if (temp[j] < 0)
{
ok = false;
break;
}
temp[j] %= 3;
temp[j + 1] -= temp[j];
temp[j + 2] -= temp[j];
}
num[j] += 2;
if (ok)
return true;
}
return false;
}
void mj()
{
rep1(i, 1, n)
{
num[i]++;
if (ju()) v.push_back(i);
num[i]--;
}
}
void o()
{
int len = v.size();
if (len == 0)
{
puts("NO");
return;
}
rep1(i, 0, len - 1)
{
printf("%d", v[i]);
if (i != len - 1) putchar(' ');
}
}
int main()
{
//freopen("F:\\rush.txt", "r", stdin);
input_data();
mj();
o();
//printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);
return 0;
}
【BZOJ 1028】[JSOI2007]麻将的更多相关文章
- BZOJ 1028: [JSOI2007]麻将 暴力
1028: [JSOI2007]麻将 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/prob ...
- BZOJ 1028 [JSOI2007]麻将
1028: [JSOI2007]麻将 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1270 Solved: 576[Submit][Status][ ...
- [BZOJ 1028] [JSOI2007] 麻将 【枚举+贪心判断】
题目链接:BZOJ - 1028 题目分析 枚举听的是哪种牌,再枚举成对的是哪种牌,再贪心判断: 从1到n枚举每一种牌,如果这种牌的个数小于0,就返回不合法. 将这种牌的张数 % 3, 剩下的只能和 ...
- BZOJ.1028.[JSOI2007]麻将(贪心)
题目链接 枚举对子,枚举每张牌,先出完它的刻子,剩下的出顺子.\(O(n^3)\). 不是这样 -> 出完所有刻子,最后出顺子.(日常zz) 优先仨相同的,然后顺子,有一次且一定要用一次机会补顺 ...
- 1028: [JSOI2007]麻将
1028: [JSOI2007]麻将 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2638 Solved: 1168[Submit][Status] ...
- 【BZOJ】1028: [JSOI2007]麻将(贪心+暴力)
http://www.lydsy.com/JudgeOnline/problem.php?id=1028 表示不会贪心QAQ 按顺序枚举,如果能形成刻子那么就形成刻子,否则形成顺子.orz 证明?:因 ...
- 1028: [JSOI2007]麻将 - BZOJ
Description 麻将是中国传统的娱乐工具之一.麻将牌的牌可以分为字牌(共有东.南.西.北.中.发.白七种)和序数牌(分为条子.饼子.万子三种花色,每种花色各有一到九的九种牌),每种牌各四张.在 ...
- bzoj千题计划118:bzoj1028: [JSOI2007]麻将
http://www.lydsy.com/JudgeOnline/problem.php?id=1028 枚举等待牌 枚举对是哪个 判断 #include<cstdio> #include ...
- bzoj1028 [JSOI2007]麻将
1028: [JSOI2007]麻将 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1337 Solved: 601[Submit][Status][ ...
- BZOJ 1028 BZOJ 1029 //贪心
1028: [JSOI2007]麻将 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2197 Solved: 989[Submit][Status][ ...
随机推荐
- 学习Java必看书籍和步骤
Java语言基础 谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的<ThinkinginJava>.它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它 ...
- 百度2019校招Web前端工程师笔试卷(9月14日)
8月27日晚,在实习公司加班.当时正在调试页面,偶然打开百度首页console,发现彩蛋,于是投了简历. 9月14日晚,七点-九点,在公司笔试. 笔试题型(有出入): 一.单选20道 1.难度不难,考 ...
- angular 响应式表单(登录实例)
一.表单验证 1. 只有一个验证规则: this.myGroup = this.fb.group({ email:['hurong.cen@qq.com',Validators.required], ...
- Webpack学习手册
多端阅读<Webpack官方文档>: 在PC/MAC上查看:下载w3cschool客户端,进入客户端后通过搜索当前教程手册的名称并下载,就可以查看当前离线教程文档.下载Webpack官方文 ...
- 微信小程序常见的UI框架/组件库总结
想要开发出一套高质量的小程序,运用框架,组件库是省时省力省心必不可少一部分,随着小程序日渐火爆,各种不同类型的小程序也渐渐更新,其中不乏一些优秀好用的框架/组件库. 1:WeUI 小程序–使用教程 h ...
- __block typeof的说明
1. block不是Object对象,所以对retain无效,要想保留block生命周期,最好通过copy来实现,当然copy后,要记得release. 2.一般被block的应用的对象,retain ...
- [React] Close the menu component when click outside the menu
Most of the time, your components respond to events that occur within the component tree by defining ...
- Datasets for MachineLearning
Public datasets for machine learning http://homepages.inf.ed.ac.uk/rbf/IAPR/researchers/MLPAGES/mld ...
- hdu 5078 Osu!(鞍山现场赛)
Osu! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Sub ...
- [Flexbox] Use Flex to Scale Background Image
In this lesson we will use Flexbox to scale a background image to fit on the screen of our React Nat ...