AtCoder Beginner Contest 345 A - E 题解

A - Leftrightarrow

思路

判断第一个字符是否为\texttt{<},最后一个字符是否为\texttt{>},都满足的话,再判断中间字符是否都为\texttt{=}

代码

#include<iostream>
using namespace std;
#define int long longbool check(string s){int n=s.size();if(s[0]!='<') return false;if(s[n-1]!='>') return false;for(int i=1;i<n-1;i++)if(s[i]!='=') return false;return true;
}signed main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);string s;cin>>s;cout<<(check(s)?"Yes":"No")<<endl;return 0;
}

B - Integer Division Returns

思路

首先,\left\lceil \dfrac{a}{b} \right\rceil = \left\lfloor \dfrac{a+b-1}{b} \right\rfloor,所以答案可由\left\lfloor \dfrac{X+9}{10} \right\rfloor得到。

但是C++是向0取整的(正数向下取整,负数向上取整),所以X为负数且不整除时,答案需要加一。

代码

#include<iostream>
using namespace std;
typedef long long LL;
int main(){LL n;cin>>n;LL ans=(n+9)/10;if((n+9)<0&&(n+9)%10!=0) ans--;cout<<ans<<endl;return 0;
}

C - One Time Swap

思路

篇幅问题,直接看官方题解。

注意要开long long

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL cnt[26];
int main(){LL n,ans=0;bool flag=false;string s;cin>>s;n=s.size();for(int i=0;i<n;i++) cnt[s[i]-'a']++;ans=n*n;for(int i=0;i<26;i++){ans-=cnt[i]*cnt[i];if(cnt[i]>1) flag=true;}cout<<ans/2+flag<<endl;return 0;
}

D - Tiling

思路

由于数据范围很小,我们考虑暴力搜索。

C_{i,j}表示第$i$行第$j$个格子被哪一块瓷砖占用(没有被占用为-1)

为了表示哪些瓷砖可用,可以设二进制数t,第$i$位为1表示第i块瓷砖可用。

由于瓷砖可以旋转(可以竖着放,也可以横着放),因此搜索时,每块瓷砖有两种情况(除了正方形)。

为了方便编写,我从dfs中分离出两个函数,第一个函数尝试放置瓷砖并判断是否可行。

第二个函数用于回溯操作(由于第一个函数会改变$C$,所以无论是否可行都要复原)。

注意要判断C_{i,j}是不是当前瓷砖,否则出现重叠时,会影响其他正常放置的瓷砖。

#include <iostream>
using namespace std;
const int N = 12;
int a[N],b[N],c[N][N];
int n,h,w;
bool ans;// 以(x,y)为左上角,贴一块长为a宽为b的瓷砖(编号id),判断是否可行
bool placeTile(int x, int y, int a, int b, int id){bool can=true;for(int i=x;i<x+a;i++)for(int j=y;j<y+b;j++){if(i<h&&j<w){                      // 没有出界限if(c[i][j]==-1) c[i][j]=id;    // 可以放,做标记else can=false;                // 已经被占用,不能放这块瓷砖}else can=false;                   // 超过边界}return can;
}// 回溯时的操作
void doBacktrace(int x, int y, int a, int b, int id){for(int i=x;i<x+a;i++){for(int j=y;j<y+b;j++) if(i<h&&j<w&&c[i][j]==id) c[i][j]=-1;}
}void dfs(int unused, int x, int y){// 找到下一个没贴瓷砖的位置while(c[x][y]>=0){y++;if(y>=w) x++,y=0;if(x>=h) break;}// 贴完了if(x>=h){ans=true;return;}// 尝试贴所有未使用的瓷砖for(int i=0;i<n;i++){if(unused&(1<<i)){   // 未使用bool can=placeTile(x,y,a[i],b[i],i);if(can) dfs(unused^(1<<i),x,y);    // 继续搜索doBacktrace(x,y,a[i],b[i],i);        // 回溯还原// 尝试横着放if(a[i]!=b[i]){                // 不是正方形bool can=placeTile(x,y,b[i],a[i],i);if(can) dfs(unused^(1<<i),x,y);doBacktrace(x,y,b[i],a[i],i);}}}
}int main(){cin>>n>>h>>w;for(int i=0;i<n;i++) cin>>a[i]>>b[i];for(int i=0;i<h;i++)for(int j=0;j<w;j++) c[i][j]=-1;ans=false;dfs((1<<n)-1,0,0);cout<<(ans?"Yes":"No")<<endl;return 0;
}

E - Colorful Subsequence

未完待续

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Jz32从上往下打印二叉树

//add()和remove()方法在失败的时候会抛出异常(不推荐) // 用offer 和poll 替代 import java.util.ArrayList; import java.util.*; /** public class TreeNode {int val 0;TreeNode left null;TreeNode right null;public TreeNode(int val) {this.val val;}} */ public …

Oracle 部署及基础使用

1. Oracle 简介 Oracle Database&#xff0c;又名 Oracle RDBMS&#xff0c;简称 Oracle Oracle系统&#xff0c;即是以Oracle关系数据库为数据存储和管理作为构架基础&#xff0c;构建出的数据库管理系统。是目前最流行的客户/服务器&#xff08;client/server&#xff09;或…

洛谷P8972 『GROI-R1』 一切都已过去(树上前缀和+运算符重载)

『GROI-R1』 一切都已过去 题目背景 悦关上窗&#xff0c;拉上帘布。 果然还是想不起来啊。 隐约记得曾和什么人一起做过这样的事。 仰面躺下&#xff0c;手执一只木笺。 「究竟如何&#xff0c;才能拥有“过去”啊……」 她闭上双眼。 「6 岁前的记忆……究竟如何才能…

十、MySQL主从架构配置

一、资源配置 主库&#xff1a;192.168.134.132 从库&#xff1a;192.168.134.133 从库&#xff1a;192.168.134.134 二、主从同步基本原理&#xff1a; master用户写入数据&#xff0c;会生成event记录到binary log中&#xff0c;slave会从master读取binlog来进行数据同步…

<商务世界>《第12课 发票种类和增值税专用发票的税率》

1 增值税发票类型 分为增值税发票和增值税专用发票&#xff0c;都是税务部门为了管理增值税而设立的重要工具&#xff0c;但它们在使用范围、功能以及具体的格式等方面存在明显的区别。 1.1 增值税发票 是一种广泛使用的税务凭证&#xff0c;它涵盖了多种类型的发票&#xf…

VPTTA:为每张医疗图像生成特定的“提示”,解决跨不同设备和条件的医疗图像分割的准确性和适应性

VPTTA&#xff1a;为每张医疗图像生成特定的“提示”&#xff0c;解决跨不同设备和条件的医疗图像分割的准确性和适应性 提出背景VPTTA 方法VPTTA 步骤 提出背景 论文&#xff1a;https://arxiv.org/pdf/2311.18363.pdf 代码&#xff1a;https://github.com/Chen-Ziyang/VPTT…

STM32输入捕获模式测频率

STM32频率的测量&#xff1a;高频适合使用的方法是测频法&#xff0c;低频适合使用的是测周法&#xff0c;&#xff08;其中使用测频法测量频率比较稳定&#xff0c;使用测周法测量频率的方式没有这么稳定&#xff0c;因为测周法只会通过一次的测量就能得出结果所以测试出来的频…

kubernetes-有状态和无状态服务

kubernetes-有状态和无状态服务 kubernetes-有状态和无状态服务1.有状态的应用1.1、理解1.2、特点 2、无状态应用2.1、理解2.2、特点 3、玩一下3.1、启动一个nginx无状态的业务3.2、启动一个nginx有状态的业务 4、无头服务4.1、无头服务的特点&#xff1a;4.2、无头服务的用途&…

verilog 从入门到看得懂---verilog 的基本语法数据和运算

笔者之前主要是使用c语言和matab 进行编程&#xff0c;从2024年年初开始接触verilog&#xff0c;通过了一周的学习&#xff0c;基本上对verilog 的语法有了基本认知。总统来说&#xff0c;verilog 的语法还是很简单的&#xff0c;主要难点是verilog是并行运行&#xff0c;并且强…

2024/3/15 记录简版抖音部署遇到的问题

1、Centos连不上网 参考这一篇&#xff1a;虚拟机 CentOS 有线连接图标直接消失&#xff0c;网络连接不上&#xff0c;网络连接失败的解决方案&#xff08;亲测有效&#xff09;_centos网络图标不见了-CSDN博客 2、SQLyog连接不到docker中的mysql 原因是对密码有加密过程 &a…

面向对象编程第三式: 多态 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

浅谈C/C++的常量const、指针和引用问题

今天我们来探讨C/C中const、指针和引用的相关问题。这些概念是编程中的重要组成部分&#xff0c;它们的正确使用对于代码的可读性和可维护性至关重要。通过深入了解const的不可变性、指针的灵活性以及引用的简洁性&#xff0c;我们能够更好地掌握编程的精髓&#xff0c;并写出更…

顺序表操作

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd;既然选择了远方&#xff0c;当不负青春…

Python语法糖

N u m P y NumPy NumPy的 n d i t e r nditer nditer nditer 是 NumPy 提供的一种多维迭代器&#xff0c;用于对多维数组进行迭代操作。它可以替代传统的嵌套循环&#xff0c;在处理多维数组时更加方便和高效。 迭代器可以按照不同的顺序遍历数组的元素&#xff0c;也可以控制…

(含链接)2024年NVIDIA GPU技术大会开发者合集(专为开发者挑选的合集)

2024年NVIDIA GPU技术大会开发者合集 我专门为开发者整理了NVIDIA GPU技术大会上专注技术的内容合集, 希望可以帮助开发者朋友们快速了解NVIDIA的最新技术. 注意:在电脑端打开更友好, 可以直接进入每一项的网页 文章目录 2024年NVIDIA GPU技术大会开发者合集如何登录和预约会…

【论文笔记合集】ARIMA 非平稳过程通过差分转化为平稳过程

本文作者&#xff1a; slience_me 文章目录 ARIMA 非平稳过程通过差分转化为平稳过程文章原文具体解释详解参照 ARIMA 非平稳过程通过差分转化为平稳过程 文章原文 Many time series forecasting methods start from the classic tools [38, 10]. ARIMA [7, 6] tackles the fo…

虚拟内存相关知识汇总(程序重定位)

前置知识&#xff1a; Windows的内存可以被分为两个层面&#xff1a;物理内存和虚拟内存。其中&#xff0c;物理内存非常复杂&#xff0c;需要进入到Windows内核级别ring0才能看到。通常在用户模式下&#xff0c;用调试器看到的内存地址都是虚拟地址。 1.虚拟内存的定义 虚拟…

Java实现知乎热点小时榜爬虫

1.效果演示 1.1 热点问题列表 启动程序后&#xff0c;自动展示热点问题&#xff0c;并等待终端输入 1.2 根据序号选择想看的热点问题 输入问题序号&#xff0c;展示回答内容 1.3 退出 输入q即可退出程序 2.源码 2.1 pom.xml <?xml version"1.0" enco…

腾讯云怎么申请免费服务器?2024免费云主机申请教程

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云服务器网txyfwq.com分享2024年最新腾讯云免费…

2024年腾讯云免费服务器申请教程,个人和企业均可领取

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云服务器网txyfwq.com分享2024年最新腾讯云免费…