Educational Codeforces Round 139 (Rated for Div. 2)(A~E)

news2024/9/28 13:16:41

A. Extremely Round

定义一个数中仅存在一位非0,它是extremely round,计算1~n中有几个满足条件的数。

思路:直接计算即可。

AC Code:

#include <bits/stdc++.h>

typedef long long ll;
const int N = 1e5 + 5;
int t, n;

int count(int x) {
	int ans = 0;
	while(x) {
		if(x >= 10) ans += 9;
		else ans += x;
		x /= 10;
	}
	return ans;
}

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	std::cin >> t;
	while(t --) {
		std::cin >> n;
		std::cout << count(n) << '\n';
	}
	return 0;
}

 B. Notepad#

每次操作可以在字符串末尾加上任意一个字母,或者选择已经存在的一段子串加到后面,给出字符串长度n,判断是否能在最多n-1次操作后组成字符串。

思路:很显然,只要存在相邻两位在字符串中出现过两次,即可满足条件,用map可以过。

AC Code:

#include <bits/stdc++.h>

typedef long long ll;
typedef std::pair<char, char> PII;
const int N = 1e5 + 5;
int t, n;
std::string s;

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	std::cin >> t;
	std::map<PII, int> mp;
	while(t --) {
		std::cin >> n >> s;
		mp.clear();
		bool flag = false;
		for(int i = 1; i < n; i ++) {
			if(!mp[{s[i - 1], s[i]}])
				mp[{s[i - 1], s[i]}] = i;
			else if(i - mp[{s[i - 1], s[i]}] > 1){
				flag = true;
				break;
			}
		}
		std::cout << (flag ? "YES" : "NO") << '\n';
	}
	return 0;
}

C. Hamiltonian Wall

 给出两行字符串,每一列至少有一个B,是否存在一条路径能够一笔画走完所有的B且没有重复。

思路:数据范围很小,直接搜索即可,注意行列的优先级,能先走列必然先走列。

AC Code:

#include <bits/stdc++.h>

typedef long long ll;
const int N = 2e5 + 5;
int t, n, cnt, ans;
std::string s[4];
bool vis[2][N];

void DFS(int x, int y, int c) {
	ans = std::max(ans, c);
	vis[x][y] = 1;
	if(x == 0) {
		if(s[x + 1][y] == 'B' && !vis[x + 1][y])
			DFS(x + 1, y, c + 1);
		else if(s[x][y + 1] == 'B' && !vis[x][y + 1])
			DFS(x, y + 1, c + 1);
		else return;
	}
	else if(x == 1) {
		if(s[x - 1][y] == 'B' && !vis[x - 1][y])
			DFS(x - 1, y, c + 1);
		else if(s[x][y + 1] == 'B' && !vis[x][y + 1])
			DFS(x, y + 1, c + 1);
		else return;
	}
}

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	std::cin >> t;
	while(t --) {
		std::cin >> n;
		memset(vis, 0, sizeof(vis));
		for(int i = 0; i < 2; i ++)
			std::cin >> s[i];
		cnt = 0, ans = 0;
		for(int i = 0; i < 2; i ++) {
			for(int j = 0; j < n; j ++) {
				if(s[i][j] == 'B')
					cnt ++;
			}
		}
		s[0] = s[0] + '*', s[1] = s[1] + '*';
		if(s[0][0] == 'B')
			DFS(0, 0, 1);
		memset(vis, 0, sizeof(vis));
		if(s[1][0] == 'B')
			DFS(1, 0, 1);
		std::cout << (ans == cnt ? "YES" : "NO") << '\n';
	}
	return 0;
}

os:赛后看到佬们写的题解都是用的DP,我不会DP,就搜索咯

D. Lucky Chains

给出二元组x,y,每次给两个数+1,问最多几次操作后两数的gcd>1。

思路:根据辗转相除,gcd(a + x, b + x) = gcd(a + x, b - a),b-a为定值,所以思路就很容易了,分解b-a的所有质因子,判断x能达到的最小值,设p为b-a的质因子,即求p - (b - a) % p的最小值,注意时间,这个题时限卡的挺紧的,注意细节的优化。

AC Code:

#include <bits/stdc++.h>

typedef long long ll;
#define INF 0x3f3f3f3f
const int N = 1e7 + 5;
int t, x, y;
int prime[N], tot;
bool mark[N];

void oula() {
    for(int i = 2; i <= N; i ++) {
        if(!mark[i])
            prime[++ tot] = i;
        for(int j = 1; j <= tot; j ++) {
            if(i * prime[j] > N) break;
            mark[i * prime[j]] = 1;
            if(i % prime[j] == 0) break;
        }
    }
}

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	std::cin >> t;
	oula();
	while(t --) {
		std::cin >> x >> y;
		if(std::__gcd(x, y) > 1) {
			std::cout << 0 << '\n';
			continue;
		}
		int res = y - x, pos = 1, ans = INF;
		while(prime[pos] <= sqrt(res)) {
			if(res % prime[pos]) {
				pos ++;
				continue;
			}
			while(res % prime[pos] == 0) res /= prime[pos];
			ans = std::min(ans, prime[pos] - x % prime[pos]);
			pos ++;
		}
		if(res > 1) ans = std::min(ans, res - x % res);
		std::cout << (ans == INF ? -1 : ans) << '\n';
	}
	return 0;
}

有个逆天师弟把E都搞出来了,一整个被薄纱了

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

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

相关文章

高手必备10大难题:Mysql如何实现RR级隔离时,不会幻读?

文章很长&#xff0c;而且持续更新&#xff0c;建议收藏起来&#xff0c;慢慢读&#xff01;疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 &#xff1a; 免费赠送 :《尼恩Java面试宝典》 持续更新 史上最全 面试必备 2000页 面试必备 大厂必备 涨薪必备 免费赠送 经典…

[2022-12-17]神经网络与深度学习第5章 - 循环神经网络(part 1)

contents循环神经网络 part 1 - RNN记忆能力实验写在开头循环神经网络的记忆能力实验数据集构建数据集构建函数数据集加载构建 Dataset类模型构建嵌入层SRN层自己实现torch框架实现比较线性层模型汇总模型训练训练指定长度的数字预测模型模型评价写在最后循环神经网络 part 1 -…

[机器人学习]-树莓派6R机械臂运动学分析

根据D-H表规定得到如下变换矩阵为&#xff1a; 由此可得机器人相邻两关节位姿分别为&#xff1a; 根据DH参数求解变换矩阵的函数trans&#xff1a; %输入JD&#xff0c;即6个关节变量的值&#xff0c;求解正运动方程 function [ T ] trans( theta, d, a, alpha ) T [ cos(th…

Java中Stream的 flatMap 与 map 实际使用场景与区别对比

基本概念 Stream 流式操作&#xff0c;一般用于操作集合即 List 一类的数据结构&#xff0c;JDK 1.8 后的新特性 Stream 中的 map 一般用于对List 中的每一个元素执行指定方法使得最终结果为最终的集合为每一个记录的某一属性的集合&#xff08;get 方法&#xff09;或者通过…

PPT怎么转PDF?将Powerpoint(PPT)转换为PDF方法分享

当您在PowerPoint中创建精美的演示文稿时&#xff0c;您不仅想给观众留下深刻的印象&#xff0c;还希望它能够方便地打包&#xff0c;并且文件格式起着重要作用。虽然PPTX是一种广泛传播的格式&#xff0c;但PDF始终是一个安全的选择。以下是有关如何使用在线工具将PowerPoint演…

每天五分钟机器学习:主成分分析算法PCA的降维原理是什么?

本文重点 当数据从n维降到k维的时候,我们需要找到一个能使得投影误差最小的k维向量构成的投影平面,然后将数据进行投影,从而达到降维的作用。所以PCA算法要做的就是两件事情,一件事情就是计算最优的k维向量,另一个问题就是计算原来样本点映射到降维面的z(i),也就是这些新…

【C++初阶】模板初阶、STL简介

文章目录模板初阶泛型编程函数模板类模板STL简介什么是STLSTL的六大组件STL的缺陷模板初阶 泛型编程 概念 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 函数模板 概念 函数模板代表了一个函数家族&#xff0c;…

搜索与图论 - spfa 算法

文章目录一、spfa 算法1. spfa 算法简介2. spfa 算法和 bellman-ford 算法的区别3. spfa 算法和 dijkstra 算法的区别4. spfa 算法实现步骤5. spfa 算法举例图解6. spfa 算法用于求最短路和判断负环&#xff0c;详见下面两道例题。二、spfa 算法例题—— spfa 求最短路具体实现…

1. SpringBoot 整合 Canal

勿以恶小而为之&#xff0c;勿以善小而不为----- 刘备 SpringBoot 整合 Canal pom.xml 添加 canal.client 依赖 (1.1.5 改动很大&#xff0c;这儿客户端用 1.1.4) <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.a…

【云原生进阶之容器】第一章Docker核心技术1.5.3节——cgroups数据结构剖析

1 cgroups数据结构解析 从进程的角度出发来剖析 cgroups 相关数据结构之间的关系。在 Linux 中管理进程的数据结构是 task_struct。cgroup表示进程的行为控制,因为子系统必须要知道进程是位于哪一个cgroup,所以在struct task_struct和cgroup中存在一种映射。 1.1 task_struc…

【数据结构进阶】二叉平衡树

一、 二叉平衡树 概念 二叉搜索树有称 二叉排序树&#xff0c;它也可以是一个空树。 如果它的左子树不为空&#xff0c;则左子树上所有结点的值都小于根结点的值如果他的右子树不为空&#xff0c;则右子树上所有结点的值都大于根结点的值它的左右子树也分别是二叉搜索树 由…

【Acwing 周赛#82】AcWing 4783. 多米诺骨牌

目录 4782.第k个数 4783. 多米诺骨牌 - bfs 记录时间 4782.第k个数 java大顶堆 import java.util.*;public class Main {public static void main(String[] args ){Scanner scnew Scanner(System.in);int nsc.nextInt(),ksc.nextInt();k--;PriorityQueue<Integer> qn…

HarmonyOS玩转ArkUI动效 - 水母动画

前言 本文会详细讲解我参加&#xff1a; HarmonyOS【挑战赛第三期】玩转ArkUI动效的项目 我的参赛项目源码&#xff1a;【挑战赛第三期】JellyfishAnimation 动画效果参考自&#xff1a;cassie-codes的水母SVG 华为鸿蒙已经放弃Java作为鸿蒙的开发语言&#xff0c;开发了一个申…

基于java+springmvc+mybatis+vue+mysql的校运会管理系统小程序

项目介绍 运动是伴随人类一生的一种行为和活动&#xff0c;只有不断的运动才能够彰显生命的意义&#xff0c;尤其是当代的学生&#xff0c;课业繁重往往忽略了体育锻炼&#xff0c;为了能够提高学子们对体育运动的积极性&#xff0c;基本所有的高校每年都会定期的举办运动会。…

软件设计师常考知识点

絮絮叨叨&#xff1a;哈喽大家好&#xff5e;这里是一口八宝周[送花花]。前段时间闲来无事报考了今年的软件设计师考试&#xff0c;觉得凭借自己“自律”的学习&#xff0c;一定可以把书看完&#xff0c;把题刷完顺利上岸&#x1f60e;。 书确实没看完&#xff0c;但是视频学完…

MySQL or条件命中

需求如下&#xff1a;当写入SQL语句中有任意一个字段在数据库中存在时&#xff0c;不可写入&#xff0c;并返回具体的重复字段。 使用Java Steam处理数据集循环执行SQL需要多次执行SQL&#xff0c;适合单条件索引的情况下使用&#xff0c;现状是想执行少量的SQL实现需求&#…

操作系统,计算机网络,数据库刷题笔记12

操作系统&#xff0c;计算机网络&#xff0c;数据库刷题笔记12 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xf…

u盘/移动硬盘的视频文件出现损坏怎么办?修复损坏视频办法分享!

一般情况下&#xff0c;视频文件都是比较大&#xff0c;如果直接存放于电脑&#xff0c;就会占用比较大的存储空间。不少小伙伴都会把它存放于U盘或者移动硬盘&#xff0c;而且作为一种便携式硬盘&#xff0c;可以在各电脑之间使用&#xff0c;非常方便。但这也造成文件很容易出…

【OpenCV-Python】教程:6-4 Depth Map from Stereo Images 立体图像的深度图

OpenCV Python Depth Map from Stereo Images 立体图像的深度图 【目标】 通过立体图像创建一个深度图 【理论】 上一节中&#xff0c;我们学习了一些基本概念&#xff0c;如对极约束和其他一些相关术语。我们还可以看到&#xff0c;如果我们有同一个场景的两张图像&#x…

无尘室中高效过滤器的更换时间

广州特耐苏净化设备有限公司详细介绍无尘室中高效过滤器使用多久需要更换 为了保证产品的生产质量和人员工作环境的舒适性&#xff0c;无尘室对环境的湿度、温度、新鲜空气量、状态、照明等都有严格的规定。无尘室系统一般配备三级过滤器的空气净化系统&#xff0c;采用初效、…