洛谷 P9868 [NOIP2023] 词典

原文链接:NOIP真题第四讲:词典

题目来源:2023 年 NOIP T1

本题考察点:【贪心、枚举、模拟】

前置知识

字典序:指按照a、b、c、...、z的顺序,即a<b<c<...<z;

一、题目及链接

题目链接:

https://www.luogu.com.cn/problem/P9868

题意:题意很简单,但是描述很复杂,这也是真题的一大特点吧!题目意思是给n个单词,用每个单词去和其他的n-1个单词比较,比较的时候可以随意排序,如果当前单词排序后字典序小于其余n-1个单词,那么输出1,否则输出0;

二、题目分析

此题需要用到【贪心】思想,即当前单词与其他n-1个单词比较的时候,当前单词从小到大排序,其他单词从大到小排序即可,这样对于当前单词即为最优情况。

思考一下,如果需要比较两个字符串的字典序大小,不需要比较整个字符串,比如当前用单词word1和其他n-1个单词比较的时候,只需要使用word1的最小的字母和其他单词的最大的字母比较,如果word1的最小字母大于等于其他某个单词wordx的最大字母,那么word1的最优字典序一定大于wordx的最优字典序,直接输出0,结束比较,否则word1的最小字母小于wordx的最大字母,那么可以让word1的最小字母排最前面,wordx的最大字母排最前面,即可满足题目所说的性质。

栗子1:word1="hddx",wordx="abd",word1的最小字母为d,wordx的最大字母为d,不管如何对word1和wordx排序,都无法得到word1的字典序小于wordx;

栗子2:word1="dxa",wordx="bdx",word1的最小字母为a,wordx的最大字母为x,因为可以让word1排序为"adx",wordx排序为"xdb",那么此时word1的字典序小于wordx的字典序;

三、AC Code


#include "iostream"
#include "cstdio"
using namespace std;
const int N = 3010;
struct word{char minChar = 'z', maxChar = 'a';  // 初始值
}dict[N];
int n, m;
char c;
// check函数:如果第x个单词排序后无法小于第y个单词的排序,那么返回true,否则返回false
bool check(int x, int y) {return dict[x].minChar >= dict[y].maxChar;  // 只需要比较第x个单词的最小字母和第y个单词的最大字母即可
}int main() {cin >> n >> m;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> c;if(dict[i].minChar > c) dict[i].minChar = c;if(dict[i].maxChar < c) dict[i].maxChar = c;}}for (int i = 1; i <= n; i++) {bool f = true;for (int j = 1; j <= n; j++) {if (i == j) continue;  // 单词本身不和自己比if (check(i, j)) {   // 如果第i个单词和第j个单词不满足题目性质f = false;  // 置为false,直接breakbreak;}}cout << f;  // f为当前第i个单词和其他单词比较完的结果}return 0;
}

今年有位学生参加NOIP,由于少写了上面的第27行代码(即单词本身不用和自己比较),痛失NOIP陕西省二等奖,很可惜,希望他汲取教训,在后续解决问题一定要全面且严谨,咱们明年再战!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/239409.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用ChatGPT写教案设计?以“沁园春雪”为例

1. 引言 随着人工智能技术的飞速发展&#xff0c;ChatGPT已成为教育领域的一大创新工具。ChatGPT不仅能够模拟人类对话&#xff0c;还可以帮助设计互动丰富、内容丰富的教案。本文将探索如何利用ChatGPT进行教案教学设计&#xff0c;特别是通过“沁园春雪”这一案例&#xff0…

项目压测优化实践思路

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

RuntimeError: CUDA error: device-side assert triggered

授人以鱼不如授人以渔 解决步骤 记录下解决步骤…cuda报错真要人命 首先根据终端的提示 他说让你加这个来定位具体的python代码错哪了&#xff0c;所以咱们就加。 我这里启动命令是&#xff1a; accelerate launch --config_file "utils/acc_configs/accelerate_con…

官方认可!360荣获“科技产业高质量发展突出贡献企业”称号

近日&#xff0c;2023年度朝阳区高质量发展突出贡献企业表彰大会在北京成功召开。会上&#xff0c;朝阳区管委会&#xff08;区科信局&#xff09;对朝阳区做出积极贡献的企业单位进行表彰&#xff0c;360数字安全集团作为数字安全的领导者&#xff0c;在技术能力、研发创新和实…

windows系统下docker软件中使用ubuntu发行版本的linux系统

1.软件下载 官网下载地址 下载安装之后&#xff0c;再去微软商店下载wsl软件&#xff0c;可以直接用&#xff0c;或者也可以使用命令行拉取&#xff08;下面会讲&#xff09; 2.在docker里面创建容器的两种方法 2.1.命令行创建 前言&#xff1a;输入 winr 打开命令行进行下面…

WordPress企业模板

首页大图wordpress外贸企业模板 橙色的wordpress企业模板 演示 https://www.zhanyes.com/waimao/6250.html

i18n多国语言Internationalization的实现

i18n 是"Internationalization”的缩写&#xff0c;这个术语来源于英文单词中首尾字母“”和“n”以及中间的字符数(共计18个字符) 当我们需要开发不同语言版本时&#xff0c;就可以使用i18n多国语言的一个操作处理&#xff0c;i18n主要实现那一方面的内容呢&#xff1f;…

RHCE9学习指南 第19章 网络时间服务器

19.1 时间同步的必要性 对于一些服务来说对时间要求非常严格&#xff0c;例如&#xff0c;图19-1所示由三台服务器搭建的ceph集群。 图19-1 三台机器搭建的集群对时间要求比较高 这三台服务器的时间必须要保持一样&#xff0c;如果不一样&#xff0c;就会显示报警信息。那么…

基于SSM的戏剧推广网站的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue、HTML 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是…

试用清华Chatglm智能体

清华AI平台&#xff0c;感觉在见过的国内AI平台中做的是比较优秀的&#xff0c;目前该平台提供的智能体功能感觉更智能或者说更傻瓜式一些。定义可以定义专属智能体&#xff0c;这些智能体是自己想要的网络上的汇集处理后的信息&#xff0c;或者是绘画或者是编写某个方面的代码…

23111 网络编程 day3

思维导图 tip协作服务 程序如下&#xff1a; #include<myhead.h> #define SER_PORT 69 #define SER_IP "192.168.125.180"int do_upload(int cfd,struct sockaddr_in sin) {//向服务器发送上传请求char buf[512]"";//组装请求数据short *p1(short*…

程序员接私活还不知道这几个平台?那你真的亏了!

程序员接私活现在已经是一个老生常谈的话题了&#xff0c;现在市面上各种程序员接单平台层出不穷&#xff0c;也参差不齐&#xff0c;有比较老牌的知名平台&#xff0c;也有比较好的新兴平台&#xff0c;如此多的平台就容易让人眼花缭乱&#xff0c;不知道该如何选择。 这期文…

推荐系统模型(一) DFN 详解 Deep Feedback Network for Recommendation

背景 在大多数的推荐系统中&#xff0c;往往注重于隐式正反馈(例如&#xff1a;点击)&#xff0c;而忽略掉用户的其他行为(例如大多数CTR模型只考虑用户的喜欢&#xff0c;而忽略了不喜欢)。腾讯在Deep Feedback Network for Recommendation 一文中&#xff0c;提出了一个新颖…

玩转ig之Instagram蓝勾认证教程与条件

蓝勾是 Instagram 用于身份验证的标志&#xff0c;它表明你的账号是真实且唯一的。拥有蓝勾的账号在 Instagram 上更容易引起关注。用户会比较倾向于信任与被认证的账号&#xff0c;因为他们认为这些账号具有更高的权威性和公信力。所以对于品牌来说&#xff0c;想要在 Instagr…

altair,一个超级厉害的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 数据可视化是数据科学和数据分析中不可或缺的一部分。它帮助我们以可视化的方式理解和传达数据&#xff0c;从而更好地发现数据中的模式、趋势和见解。在Python生态系统中&#xff0c;有许多优秀的数据可视化工具…

RViz成功显示多个机器人模型以及解决显示的模型没有左右轮

RViz显示机器人模型没有左右轮 一、RViz成功显示多个机器人模型机器人模型的左右轮无法显示 一、RViz成功显示多个机器人模型 在RViz中显示多个机器人模型需要设置好几个关键的参数 首先点击Add&#xff0c;找到RobotModel&#xff0c;添加进来 Fixed Frame&#xff1a;选择T…

MC使用Waterfall 跨服

前言 想弄一个跨服&#xff0c;目前这篇文章是边测试边写的&#xff0c;两个子服都是在同一个机器上运行的 如果两个子服在不同的网络&#xff0c;跨服的延迟就会比较高 两个子服 s1 和 s2 都是使用folia核心 版本1.20.1s1 端口: 25565s2 端口 : 25566 1.下载 Waterfall W…

【hcie-cloud】【21】容器详解【容器网络说明、容器存储说明、容器镜像说明、dockerfile详述、缩略词】【下】

文章目录 容器介绍&#xff0c;容器工作机制、容器常用命令说明容器网络容器网络简介容器常用网络类型 - Bridge容器常用网络类型 - Host容器常用网络类型 - None其他容器网络类型【Macvlan、Overlay、IPvlan】容器网络相关配置 容器存储容器中应用数据的存储容器持久化存储配置…

IaC基础设施即代码:Terraform 通过后端使用 alicloud的OSS 实现资源管理

目录 一、实验 1.环境 2.Windows创建Terraform后端项目 3.Windows实例化Terraform后端项目 3.Windows给Terraform项目添加alicloud阿里云OSS &#xff08;实现代码与资源分离&#xff09; 4.Windows给Terraform项目添加封装的模块 5.Terraform通过后端使用 alicloud阿里…

java数据结构与算法刷题-----LeetCode96. 不同的二叉搜索树

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难&#xff0c;但它就是固定套路而已。其实动态规划只…