AtCoder Beginner Contest 326 题解 A-D

A - 2UP3DOWN

原题链接

题目描述
给定一个X代表你当前所在楼层,再给定一个Y代表你想要到达的楼层,但是你最多只能上两层楼或者下三层楼,问是否能够到达Y

思路:模拟

  • 比较大小。
public static void solve() throws IOException {int x = readInt(), y = readInt();if (x >= y) {printWriter.println(x - 3 <= y ? "Yes" : "No");} else {printWriter.println(x + 2 >= y ? "Yes" : "No");}
}

B - 326-like Numbers

原题链接

题目描述
给定一个整数N,求出一个大于等于N的满足百位数与十位数的乘积等于个位数的数。

思路:枚举

  • 不断枚举大于等于N的每个数,直至符合条件。
public static void solve() throws IOException{int n = readInt();while (true) {String s = String.valueOf(n);int a = s.charAt(s.length() - 1) - '0';int b = s.charAt(s.length() - 2) - '0';int c = s.charAt(s.length() - 3) - '0';if (b * c == a) {printWriter.println(n);break;}n++;}
}

C - Peak

原题链接

题目描述
一条无限长的数轴上只有N个点上有礼物,现在你可以在数轴上选择一段区间为M的线段,求出这条线段上最多可以有多少礼物。

思路:排序+二分

  • 排序后,枚举每个礼物,二分找到最近的小于 a r r [ i ] + m arr[i] + m arr[i]+m的礼物的所在位置 a r r [ j ] arr[j] arr[j],其中礼物数为 j − i + 1 j - i + 1 ji+1
public static void solve() throws IOException{int n = readInt(), m = readInt();int[] arr = utils.nextIntArray(n);Arrays.sort(arr, 1, n + 1);int max = 0;for (int i = 1; i <= n; i++) {int l = i - 1, r = n + 1;while (l + 1 < r) {int mid = l + r >> 1;if (arr[i] + m > arr[mid]) {l = mid;} else {r = mid;}}max = Math.max(max, l - i + 1);}printWriter.println(max);
}

D - ABC Puzzle

原题链接

题目描述
给定一个整数N和两个长度为N且仅包含字符ABC的字符串RC,请你构造出一个满足以下条件的 N × N N \times N N×N的二维矩阵。如果无法构造出输出No,否则输出Yes,并输出任意一个满足条件的矩阵。

  • 每一行和每一列仅包含一个A,一个B 和一个C
  • 每行最左边的字母组成的字符串和R相等。
  • 每列最上边的字母组成的字符串和C相等。

输入样例

5
ABCBC
ACAAB

输出样例

Yes
AC..B
.BA.C
C.BA.
BA.C.
..CBA

思路:dfs

  • 难点主要在于判断ABC的位置,使用三层循环枚举ABC每种位置的状态,每行ABC的排列情况最多只有 5 ∗ 4 ∗ 3 = 60 5 * 4 * 3 = 60 543=60种,同时通过R[u]进行优化枚举的情况,降低时间复杂度。
static int n;
static String s1, s2;
static char[][] map;
static boolean ok = false;public static void solve() throws IOException {n = readInt();s1 = " " + readString(); s2 = " " + readString();map = new char[n + 1][n + 1];for (int i = 0; i <= n; i++) {Arrays.fill(map[i], '.');}dfs(1);if (!ok) {printWriter.println("No");}
}public static void dfs(int u) {if (ok) return;if (u == n + 1) {// 判断行是否满足条件for (int i = 1; i <= n; i++) {Set<Character> set = new HashSet<>();for (int j = 1; j <= n; j++) {if (map[i][j] != '.') {if (set.contains(map[i][j])) return;// A,B,C只能出现一次set.add(map[i][j]);}}if (set.size() <= 2) return;//  A,B,C没有各出现一次for (int j = 1; j <= n; j++) {if (map[i][j] != '.') {if (s1.charAt(i) != map[i][j]) {// 该行首字母和 s1不对应return;}break;}}}// 判断列是否满足条件for (int j = 1; j <= n; j++) {Set<Character> set = new HashSet<>();for (int i = 1; i <= n; i++) {if (map[i][j] != '.') {if (set.contains(map[i][j])) return;// A,B,C只能出现一次set.add(map[i][j]);}}if (set.size() <= 2) return;//  A,B,C没有各出现一次for (int i = 1; i <= n; i++) {if (map[i][j] != '.') {if (s2.charAt(j) != map[i][j]) {// 该列首字母和 s2不对应return;}break;}}}ok = true;printWriter.println("Yes");for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {printWriter.print(map[i][j]);}printWriter.println();}return;}// 每行ABC的排列情况最多只有 5 * 4 * 3 = 60种for (int i = 1; i <= n; i++) {// A的位置for (int j = 1; j <= n; j++) {// B的位置if (i == j) continue;for (int k = 1; k <= n; k++) {// C的位置if (i == k || j == k) continue;if (s1.charAt(u) == 'A') {// 改行首字母为 A,那么 j和 k必须大于 i,即 B和 C必须在 A的后面 if (!(i < j && i < k)) continue;} else if (s1.charAt(u) == 'B') {if (!(j < i && j < k)) continue;} else if (s1.charAt(u) == 'C') {if (!(k < i && k < j)) continue;}map[u][i] = 'A';map[u][j] = 'B';map[u][k] = 'C';dfs(u + 1);// 恢复原状map[u][i] = '.';map[u][j] = '.';map[u][k] = '.';}}}
}

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

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

相关文章

目标检测理论知识

目标检测 1.基本概念 目标检测&#xff08;Object Detection&#xff09;的任务是找出图像中所有感兴趣的目标&#xff08;物体&#xff09;&#xff0c;确定它们的类别和位置&#xff0c;是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态&#xff0c;…

终于有人把腾讯云轻量服务器“月流量”说明白了

腾讯云轻量服务器月流量什么意思&#xff1f;月流量是指轻量服务器限制每月流量的意思&#xff0c;不能肆无忌惮地使用公网&#xff0c;流量超额需要另外支付流量费&#xff0c;上海/广州/北京等地域的轻量服务器月流量不够用超额部分按照0.8元/GB的价格支付流量费。阿腾云aten…

Mysql存在则编辑不存在则新增

假设有一张demo表&#xff0c;主键为id&#xff0c;唯一索引是code create table demo ( id int auto_increment, name int null, gender int null, age int null, code int null, constraint demo_pk primary key (id) ); create index demo_code_uindex on demo (code); /…

Apollo上机实践:一次对自动驾驶技术的亲身体验

上机实践 概述自动驾驶通信分布式系统开发模式开发工具 自动驾驶感知传感器特性感知流程及算法部署感知模型 自动驾驶决策规划决策规划流程和算法使用 Dreamview 进行控制在环的规划调试开发规划场景和算法 福利活动 主页传送门&#xff1a;&#x1f4c0; 传送 概述 Apollo 是…

网络工程综合试题

1、在IP路由原理中&#xff0c;如果掩码一致、目的地址一致&#xff0c;下一跳该怎么走&#xff1f; 路由器数据包转发原理&#xff1a;通过匹配路由表里的路由项来实现数据包的转发。 ① 路由器收到一个数据包&#xff0c;将数据包的目的IP地址提取出来&#xff1b; ② 与路由…

【数据结构】插入排序

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈数据结构 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 直接插入、希尔排序 1. 什么是排序2…

redis-集群切片

切片集群 我曾遇到过这么一个需求&#xff1a;要用 Redis 保存 5000 万个键值对&#xff0c;每个键值对大约是 512B&#xff0c;为了能快速部署并对外提供服务&#xff0c;我们采用云主机来运行 Redis 实例&#xff0c;那么&#xff0c;该如何选择云主机的内存容量呢&#xff…

用友 GRP-U8 存在sql注入漏洞复现

0x01 漏洞介绍 用友 GRP-U8 license_check.jsp 存在sql注入&#xff0c;攻击者可利用该漏洞执行任意SQL语句&#xff0c;如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等。 fofa&#xff1a;app”用友-GRP-U8” 0x02 POC: /u8qx/license_check.jsp?kj…

Apache服务的搭建与配置(超详细版)

前言 Apache是一种常见的Web服务器软件&#xff0c;广泛用于Linux和其他UNIX操作系统上。它是自由软件&#xff0c;可以通过开放源代码的方式进行自由分发和修改。Apache提供了处理静态和动态内容的能力&#xff0c;而且还支持多种编程语言和脚本&#xff0c;如PHP、Python和P…

golang工程——grpc-gateway 转发http header中自定义字段到grpc上下文元数据

http header 转发到 grpc上下文 grpc网关可以将请求体内容转发到grpc对应消息中。那如何获取http header头中的信息&#xff0c;本文将介绍如何将http header转发到grpc上下文并采用拦截器&#xff0c;获取http header中的内容。 有些http header中的内置字段是会转发的比如Au…

Go 中的 OOP -组合而不是继承

Go不支持继承&#xff0c;但是它支持组合。组合的一般定义是“放在一起”。组合的一个例子是一辆汽车。汽车由车轮、发动机和各种其他部件组成。 通过嵌入结构进行组合 Go 中的组合可以通过将一种结构类型嵌入到另一种结构类型中来实现。 博客文章是写作的完美示例。每篇博客…

CSS基础入门03

目录 1.圆角矩形 1.1基本用法 1.2生成圆形 1.3生成圆角矩形 1.4展开写法 2.Chrome 调试工具--查看 CSS 属性 2.1打开浏览器 2.2标签页含义 2.3elements 标签页使用 3.元素的显示模式 3.1块级元素 3.2行内元素/内联元素 3.3行内元素和块级元素的区别 3.4改变显示模…

负载均衡有哪些算法,分别在nginx中如何配置?

负载均衡是用于分发传入的网络流量到多个后端服务器的技术&#xff0c;以确保无单个服务器过载&#xff0c;从而提高应用的可用性和响应时间。以下是一些常用的负载均衡算法&#xff0c;以及如何在Nginx中配置它们&#xff1a; 轮询 (Round Robin)&#xff1a; 简介&#xff1a…

数据结构和算法——用C语言实现所有排序算法

文章目录 前言排序算法的基本概念内部排序插入排序直接插入排序折半插入排序希尔排序 交换排序冒泡排序快速排序 选择排序简单选择排序堆排序 归并排序基数排序 外部排序多路归并败者树置换——选择排序最佳归并树 前言 本文所有代码均在仓库中&#xff0c;这是一个完整的由纯…

谁知道腾讯云轻量服务器“月流量”是什么意思?

腾讯云轻量服务器月流量什么意思&#xff1f;月流量是指轻量服务器限制每月流量的意思&#xff0c;不能肆无忌惮地使用公网&#xff0c;流量超额需要另外支付流量费&#xff0c;上海/广州/北京等地域的轻量服务器月流量不够用超额部分按照0.8元/GB的价格支付流量费。阿腾云aten…

DreamTexture.js - 基于稳定扩散的3D模型自动纹理化开发包

DreamTexture.js 是面向 three.js 开发者的 3D 模型纹理自动生成与设置开发包&#xff0c;可以为 webGL 应用增加 3D 模型的快速自动纹理化能力&#xff0c;官方下载地址&#xff1a;DreamTexture.js自动纹理化开发包 。 图一为原始模型, 图二图三为贴图后的模型。提示词&#…

uniapp 模仿 Android的Menu菜单栏

下面这张图就是我们要模拟的菜单功能 一、模拟的逻辑 1. 我们使用uni-popup组件&#xff08;记得要用hbuilder X导入该组件&#xff09;uni-app官网 2. 将组件内的菜单自定义样式 二、uniapp代码 写法vue3 <template><view><uni-popup ref"showMenu"…

前端将图片储存table表格中,页面回显

<el-table :data"tableData" v-loading"loading" style"width: 100%" height"calc(100vh - 270px)" :size"tableSize"row-dblclick"enterClick"><el-table-column prop"name" label"文档…

在Windows上安装Elasticsearch-8.x.x

前言 Elasticsearch 是一种流行的开源搜索和分析引擎&#xff0c;它提供了强大的全文搜索和实时数据分析功能&#xff0c;被广泛应用于各种领域&#xff0c;包括大数据分析、日志处理、企业搜索等。 一、下载 Elasticsearch 官方网站&#xff08;https://www.elastic.co/dow…

【PC】特殊空投-2023年10月

亲爱的玩家朋友们&#xff0c;大家好&#xff01; 10月特殊空投活动来袭。本月我们也准备了超多活动等着大家来体验。快来完成任务获得丰富的奖励吧&#xff01;签到活动&#xff0c;每周一次的PUBG空投节&#xff0c;还有可以领取PGC2023免费投票劵的活动等着大家&#xff01;…