51nod 2510 顺子

2023-11-10 00:18
文章标签 51nod 顺子 2510

本文主要是介绍51nod 2510 顺子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小b有n张牌。 

现在她想把牌分组,使得每组都是长度为W的顺子,即由连续W个数组成。

请问小b能做到吗?

 收起

输入

第一行输入一个数n,表示手牌张数;
第二行输入n个非负整数,表示每张牌的数字,以空格隔开;
第三行输入一个数,表示每组大小W;
其中1≤W≤n≤10000,任意牌的数字hand[i]满足0≤hand[i]≤10^9

输出

 

可以分组,输出“true”;
不能分组,输出“false”。

输入样例

9
1 2 3 6 2 3 4 7 8
3

输出样例

true

 

分析:

这是今天晚上还比较好的一道题,但51nod二级题的暴力惊讶到了,瞬间对其失去了兴趣。

用map和排序做的,一看代码就懂,其实也很水,就是一开始题意读错了,wA好几法

#include<bits/stdc++.h>
using namespace std;
typedef long long  ll;
const int N=10005;
ll a[N];
map<ll,int> mp;
int main()
{int n,w;scanf("%d",&n);for(int i=1;i<=n;i++){ scanf("%lld",&a[i]);mp[a[i]]++;}scanf("%d",&w);if(w==1) {printf("true\n");return 0;}if(n%w!=0) {printf("false\n");return 0;}sort(a+1,a+n+1);int flag=0;int  num=w;for(int i=1;i<=n;i++){if(mp[a[i]]==0) continue;//cout<<a[i]<<endl;//cout<<mp[a[i]]<<" "<<mp[a[i]+1]<<" "<<mp[a[i]+2]<<endl;for(int j=0;j<w;j++){//cout<<a[i]+j<<endl;if(mp[a[i]+j]!=0){mp[a[i]+j]--;}else{flag=1;break;}}if(flag==1) break;}if(flag==1) printf("false\n");else printf("true\n");
}

 

这篇关于51nod 2510 顺子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379289

相关文章

【51nod】算法马拉松4 F 移数字 【快速求N!%P】【FFT】

传送门:【51nod】算法马拉松4 F 移数字 涉及知识点:多项式求逆,多项式除法,多点插值,阶乘取模。 对于N!%P,复杂度为 O(N−−√log2N−−√) O(\sqrt N \log^2\sqrt N)。 但常数巨大,和暴力算实际复杂度只相差常数= = 这个是可以扩展到组合数取模的~ my  code: my~~code: #include <stdio.h>#includ

【剑指offer】扑克牌顺子(字符串)

题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5

剑指offer(C++)--扑克牌顺子

题目 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为1

独木舟(51Nod-1432)

题目 n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? 输入 第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示人数和独木舟的承重。 接下来n行,每行一个正整数,表示每个人的体重。体重不超过1000000000,并且每个人的体

整型数组处理算法(十二)请实现一个函数:最长顺子。[风林火山]

请实现一个函数:最长顺子;输入很多个整数(1<=数值<=13), 返回其中可能组成的最长的一个顺子(顺子中数的个数代表顺的长度); 其中数字1也可以代表14; 顺子包括单顺\双顺\3顺; 单顺的定义是连续5个及以上连续的数,比如1,2,3,4,5、3,4,5,6,7,8和10,11,12,13,1等; 双顺的定义是连续3个及以上连续的对(对:两个相同的数被称为对), 比如1,1,2,2,3,3、4

[剑指Offer]-扑克牌中的顺子

题目描述 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。其中A为1,J为11,Q为12,K为13,而大小王为0,且大小王能够当做任意一张牌。 解题思路 首先应该对数组进行排序。统计数组中大小王(0)出现的个数。统计数组中所有相邻数之间的间隔。同时还需要排除对子的情况,如果出现了对子,那么肯定不可能是顺子(0除外)。最后比较0的个数和间隔大小,如果0的个数大于等于间隔数,

剑指offer系列之四十三:扑克牌顺子

题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…..LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。

51nod 1847 奇怪的数学题

Description 给出 N,K ,请计算下面这个式子: ∑Ni=1∑Nj=1sgcd(i,j)k 其中,sgcd(i, j)表示(i, j)的所有公约数中第二大的,特殊地,如果gcd(i, j) = 1, 那么sgcd(i, j) = 0。 考虑到答案太大,请输出答案对2^32取模的结果. 1≤N≤109,1≤K≤50 样例解释: 因为gcd(i, j)=1时sgcd(i,j)

51nod-1050 循环最大字段和

N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的整数均为负数时和为0。 例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。 Input 第1行:整数序列的长

面试题44. 扑克牌顺子

题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…..LL不高兴了,他想了想,决定大\小王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上