模拟+贪心 [JSOI2007]麻将

深入剖析一个卷积块(ConvBlock) 阅读详情

模拟没啥好说的,你要打麻将也会遍历一遍你要什么牌,所以要把所有扫一遍。
首先枚举对子,因为对子只有一个,特殊枚举出来。
然后贪心:先枚举刻子,再枚举顺子。但是是在挨个枚举1~n的基础上,优先找刻子。而且要在这一位能用光的基础上,才去搞下一位。这样有效避免了1 2 2 3 3 3 3 3 4 4 5的情况(如果单纯先枚举刻子,会去掉 3 3 3),但他应该是在3个顺子里。

#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#define N 405
using namespace std;
int n,m,a[N],b[N];
bool check()
{
    memcpy(b,a,sizeof(a));
    for(int i=1;i<=n;i++)
        while(b[i])
        {
            if(b[i]>=3){b[i]%=3;continue;}
            if(i<=n-2&&b[i]&&b[i+2]&&b[i+1])
            {
                int s=min(b[i],min(b[i+2],b[i+1]));
                b[i]-=s,b[i+2]-=s,b[i+1]-=s;
                continue;
            }
            return 0;
        }
    return 1;
}
int main()
{
    scanf("%d%d",&n,&m);int cnt=0,x;
    for(int i=1;i<=3*m+1;i++)
        scanf("%d",&x),a[x]++;
    for(int i=1;i<=n;i++)
    {
        a[i]++;
        for(int j=1;j<=n;j++)
            if(a[j]>=2)
            {
                a[j]-=2;
                if(check()){printf("%d ",i),cnt++;a[j]+=2;break;}
                a[j]+=2;
            }
        a[i]--;
    }
    if(cnt==0)printf("NO\n");
    else printf("\n");
}
UG/NX二次开发实例流程样例(nx1980+vs2019) 以上就是基本操作了,下面进入界面开发流程,nx1980的界面开发操作,也需要在块UI界面编辑器中操作,很多教程都没有讲解这一点,尤其是如何进入块UI界面编辑器,那么我在这里详细说明一下步骤。》,这一篇文章我们将详细讲述,如何开发一个具体的功能——根据用户输入的数据,在特定的点上创建一个指定大小的立方体。可以将文件保存当桌面,笔者保存在桌面的create_block目录中了,如下图所示,可以发现生成了三个文件。4.在新建模型完成后,我们准备创建交互UI,按照下图所示的顺序,找到块UI界面编辑器,。 阅读详情

相关推荐

浪涌电流测试仪的工作原理

浪涌电流脉冲形成的开始由同步电路 13 确定,该同步电路 13 发送命令以打开和第二开关 10 和 11,向发生器 14 发送控制命令以生成被测半导体器件 5 的控制信号和参考信号整形器 9 的触发脉冲。电流源的功率输出并联连接,以对流经被测半导体样品的电流求和。此外,使用数字控制扩展了测试仪的功能,能够产生各种形状的电流脉冲,例如梯形电流脉冲,以估计被测晶闸管的导通状态扩展时间。由于晶体管3的栅极是连接的,并且平衡电阻4包含在晶体管3的源中,因此通过每个晶体管3的电流脉冲大致相同,并重复参考信号的形状。

Jesse0257的博客 1256

BZOJ1028: [JSOI2007]麻将

题目描述:传送门 题解: 这题是比较水的一道题。我们发现n比较小,直接暴力一发。爆枚少了那张牌,再枚举用哪两张牌来组成对子,最后暴力判断是否可以和牌(可以组成刻子先组刻子,不行再组顺子)。 代码如下: #include&lt;cstdio&gt; #include&lt;string&gt; #include&lt;algorithm&gt; using namespace std; ...

dyt's Blog 387

MONAILabel in 3D Slicer 案例1: 在腹部CT中自动分割脾脏

MONAILabel in 3D Slicer 案例1: 在腹部CT中自动分割脾脏。

Tina姐的博客 1939

随笔-贪心算法(bzoj 1034,bzoj 1028)

今天看了几道贪心的题目,这种让我一直以为比较水的算法却是半天没啥思路,重新重视起来,这种类型的题目虽说是找到贪心条件后非常容易,但是却没有基本规律可循; 所以选了两道题目记录一下,希望自己可以悟出一些东西来,这种题目也是偏容易,所以网上的题解一般解释都很简单,只是说了方法,我在这里会分享一下自己的思考过程。

July_xunle的博客 569

OpenVox 8FXO板卡驱动安装记录

OpenVox A800P和A1200P的板卡驱动安装及问题解决方法

clliu的专栏 2463

5-DOF机械臂课程设计(一)之正逆运动学

文章目录基本要求基本概念关节坐标系的建立正运动学求解DH参数表的建立逆运动学求解多解下解的选取源码下载后续 基本要求 ​ 开发上位机程序,要求有良好的界面,能提供关节空间下和笛卡尔坐 标下表示的目标位姿点和中间若干经过点的输入功能,进行轨迹规划, 并控制机械臂沿轨迹运动,最终完成目标抓取的任务。 基本概念 连杆长度 :2个相邻关节轴线之间的距离 连杆扭角 :2个相邻关节轴线之间的角度 连杆偏距 :2个关节坐标系的X轴之间的距离 关节角度 :关节变量 计算时需要加初始角度偏移 关节坐标系的建立 ​ 根据《机

Rosen的博客 5858

【BZOJ】1028: [JSOI2007]麻将(贪心+暴力)

http://www.lydsy.com/JudgeOnline/problem.php?id=1028 表示不会贪心QAQ 按顺序枚举,如果能形成刻子那么就形成刻子,否则形成顺子。orz 证明?:因为按顺序枚举,所以当枚举到i,i一定要用完,所以因为>3个顺子和>3个刻子等价,所以考虑<3个顺子。如果i是刻子,假设我们用顺子,那么显然会剩下<=2个,因此不...

123

关于HC32F460 输出可调占空比PWM波遇到的问题记录

文章目录问题记录一、问题分析二、解决方法总结 问题记录 芯片:HC32F460系列 功能:PWM电机调速 最近产品开发,需要用到HC32的PWM输出来控制电机的转速。参考官方的例程很快就完成了相关的功能,但是,后面在测试,重复开关电机的时候,发现电机的转速时大时小。 一、问题分析 一开始,怀疑是相关寄存器的设置出错导致的问题。因此在设置PWM输出时加上LOG打印,上机测试并没有发现问题。 用示波器抓取波形,这是正常状态下的波形(上电默认配置成5kHz,70%占空比输出) 这是转速较小时的波形输出 .

Top0_0lll的博客 6165

洛谷P4050 [JSOI2007]麻将——题解

题目传送门 题目大意: 看题面吧。 思考过程&amp;具体做法: 看起来很高级的一个题目,但其实做法是赤裸裸的暴力,暴力枚举每一张听牌然后暴力检验即可。 代码: #include &lt;bits/stdc++.h&gt; using namespace std; const int maxn=500,maxm=1100; int n,m,num[maxn],now[maxn...

CleverLarry的博客 352

大数据分析案例-基于决策树算法构建世界杯比赛预测模型

本项目旨在分析往届世界杯比赛数据,找出规律,最后使用决策树算法构建世界杯比赛预测模型,给出两个球队即可预测胜率,可以给爱看球的小伙伴提供一个参考。本次实验我们使用了2018年及其之前的世界杯比赛数据,通过建立决策树模型,模型准确率为82%,接着我们使用该模型预测了2022年世界杯的5场半决赛及决赛,模型准确率也是接近80%的,说明模型效果还是很不错的。心得与体会:通过这次Python项目实战,我学到了许多新的知识,这是一个让我把书本上的理论知识运用于实践中的好机会。

m0_64336780的博客 1万+

26届数字IC秋招笔试面试全攻略 - CPU基础架构-数字IC设计专家

本文介绍了CPU基础架构的三大关键技术:流水线、冒险处理和指令集设计。首先解析了经典五级流水线结构(取指、译码、执行、访存、写回)及其性能指标。其次详细阐述了三种流水线冒险(数据、控制、结构)及解决方案,如数据前递、分支预测等。最后对比了RISC与CISC指令集特点,并以RISC-V为例说明指令格式设计原则。全文系统梳理了CPU核心架构知识,为数字IC设计提供重要参考。

2301_79143213的博客 931

[JSOI2007]麻将

[JSOI2007]麻将 题目 麻将是中国传统的娱乐工具之一。麻将牌的牌可以分为字牌(共有东、南、西、北、中、发、白七种)和序数牌(分为条子、饼子、万子三种花色,每种花色各有一到九的九种牌),每种牌各四张。在麻将中,通常情况下一组和了的牌(即完成的牌)由十四张牌组成。十四张牌中的两张组成对子(即完全相同的两张牌),剩余的十二张组成三张一组的四组,每一组须为顺子(即同花色且序数相连...

weixin_30408309的博客 165

银行统一监管报送系统

依据《银行业金融机构数据治理指引》,银行业金融机构应当建立适应监管数据报送工作需要的信息系统,实现流程控制的程序化,提高监管数据加工的自动化程度。银行业金融机构应当将监管数据纳入数据治理,建立工作机制和流程,确保监管数据报送工作有效组织开展,监管数据质量持续提升。银行通常要对接报送EAST5.0、1104、CRSS等近40个监管应用,涉及近1000张报表。表13-01是主要的监管报送应用、报送依据、报送规范、监管机构名称。

银行信息系统应用架构详解 4348

[BZOJ 1028][JSOI 2007] 麻将 模拟+贪心思想

题目传送门:【BZOJ 1028】题目大意: 这里,我们考虑一种特殊的麻将。在这种特殊的麻将里,没有字牌,花色也只有一种。但是,序数不会被限制在 1 到 9 的范围内,而是在 1 到 n 的范围内。同时,也没有每一种牌恰好四张的限制。一组和了的牌由 3m + 2 张牌组成,其中两张组成对子,其余 3m 张组成三张一组的 m 组牌,每组须为顺子(连续的三张牌)或刻子(相同的三张牌)。现给出一组 3m

江澤妮可 685

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

BZOJ_1028_[JSOI2007]_麻将_(模拟+贪心)

描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1028 同一种花色的牌,序数为\(1,2,...,n\).定义"和了"为手上有\(3*m+2\)张牌,其中有一个对子,其他牌组成\(m\)组,每一组为顺子或刻子(三张完全相同).定义"听牌"为差一张牌"和了".现在给出\(n\)和\(3*m+1\)张牌,问是否听牌,听哪些...

aquz77529的博客 227

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【题解】洛谷 P4050 [JSOI2007] majiang [逻辑枚举]

可以。

Isaac Regulus的博客 178

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[JSOI2007] 奶酪 题解 贪心 O(1)

题目描述 奶酪和pizza一样,是一小块扇形的固体。在奶酪从工厂里生产出来的时候,一共有4种形状,编号为1~4,分别是圆心角为72&ordm;;,144&ordm;;,216&ordm;;,288&ordm;;的扇形。奶酪的盒子是圆形的,半径和奶酪的半径一致。也就是说,一块1号奶酪和一块4号奶酪可以恰好装入一个盒子,一块2号奶酪和一块3号奶酪可以恰好装入一个盒子。

IceTeaSet的专栏 1088

BZOJ1029: [JSOI2007]建筑抢修[模拟 贪心 优先队列]

1029: [JSOI2007]建筑抢修 Time Limit:4 SecMemory Limit:162 MBSubmit:3785Solved:1747[Submit][Status][Discuss] Description   小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有...

weixin_30662539的博客 113

bzoj1028: [JSOI2007]麻将

贪心模拟

ACoder 416

反悔贪心 & 模拟费用流 学习笔记

很多找到一种可行的方案,匹配(选择)某些东西,使价值最优化的问题可以建出费用流模型。但是直接跑费用流的复杂度是不对的。我们又想到可以用简单的贪心思路解决这些问题,然而一般的贪心都假掉了。于是我们考虑模拟费用流的退流操作来做贪心,这就是反悔贪心,其实也是在模拟费用流的各种操作。所以说反悔贪心(可撤销贪心)和模拟费用流是一个东西。不过对于一道题目,我们可能会从费用流建模的角度入手。也可能从贪心的角度入手,在它之上加可撤销操作。这大概就是不同点,但最后的代码都是一样的。

deng_cheng_yu的博客 2485

[JSOI 2007]麻将

Description 题库链接 给你一副麻将,胡牌的条件是一对将和若干顺子和刻子组成。现在给你 \(m\) 张牌,牌共 \(n\) 种,问你听哪一张牌。 \(1\leq n\leq 400,1\leq m\leq 1000\) Solution 可以考虑枚举听那张牌,再枚举哪一对做将。 对于剩下的牌,首先从小到大来扫一遍,若当前牌的张数 \(>3\) ,可以让其先模 \(3\) ,即组成刻...

weixin_30765475的博客 122

洛谷——P4053 [JSOI2007]建筑抢修

P4053 [JSOI2007]建筑抢修 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能...

weixin_30307267的博客 213

贪心总结

贪心 定义 此处的定义实际上是不明确的。我们所说的贪心算法,实际上是选择局部最优解的一个过程,而 DP\ DP DP也是选择局部最优解的一个过程。其中最大的区别在于: DP\ DP DP往往有一个较为严格的证明,而贪心往往没有。这里说的没有指其可能并不正确。 但是对于大多数的题目,我们的贪心的做法往往能够得到很多的分数。不难看到:即使贪心是不正确的,有时其正...

东方幻想乡真棒(^W^) 243

BZOJ 1029 建筑抢修 (贪心)

1029: [JSOI2007]建筑抢修Time Limit: 4 Sec Memory Limit: 162 MB Description  小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的 入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全 毁坏。现在的情况是:T部落基地里只有一个修

w4149 334

麻将听牌算法解析:从规则抽象到C++实现与调试技巧

算法建模是将现实问题转化为计算机可处理形式的核心技能,其关键在于抽象与逻辑表达。在信息学竞赛中,模拟题常以此考察选手的综合能力。以麻将听牌判定为例,其本质是一个状态搜索与组合优化问题,涉及枚举、贪心等基础算法思想。通过定义计数数组来高效表示牌型状态,并设计递归或线性扫描算法处理带“百搭牌”的复杂约束,可以求解合法和牌组合。这类技术在游戏AI、规则引擎及组合优化场景中有广泛应用。本文结合【枚举】与【贪心算法】,深入剖析了麻将听牌判定的C++实现细节与常见调试陷阱,为算法竞赛选手和工程实践者提供了清晰的解题框架

weixin_34268843的博客 326
上一篇: 模拟 [ZJOI2008]杀蚂蚁antbuster
下一篇: 贪心+大模拟?
QTY_
博客等级 码龄9年 13粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值