Codeforces Round 921 (Div. 2)(A~C)

A. We Got Everything Covered!

找出一个字符串S,满足条件:所有可能的长度为n,使用前k个小写字母的字符串P都是S的子串。

其中字符串S的长度尽可能短。

这种构造题,构造S的时候尽可能在原有的基础上去扩展,如果能扩展出来,那就是有规律。

n=1,k=3

S:abc

n=1,k=4(+1)                n=2(+1),k=3

S:abcd                             S:abcabc

n决定了每个字母最少出现的次数,所以上面的答案均是最短的情况。

AC代码

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;int n,k;void solve(){cin>>n>>k;per(i,1,n){per(j,1,k){cout<<(char)('a'+j-1);}}cout<<endl;
}void init(){}
signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t;cin>>t;while(t--)solve(),init();return 0;
}

B. A Balanced Problemset?

题意:给你一个数N,拆数拆成X个,计算他们的gcd值为P,在所有拆数的情况里面,输出最大的P值。

思路:最大的P值,即这些被拆开数的最大公约数,既然是公共的约数,那么被拆出来的数一定是有倍数关系的,比如:2 2 4 8(均为2的倍数),3 3 3 3 6(均为3的倍数)。

那显然最好的情况是数N,被拆成X个数后,设N/X=k,如果没有余数p全都相等,那k就是答案。

不可能找出最大的公约数k+1,不然数每个数都要增大一,数N就要变成N+k了。

如果拆出来有余数,那就分两种情况:

1. 余数 p 是 k 的倍数,那 k 就是答案(答案不可能是k+1,余数是小于X的,不可能均摊让所有数+1)

2. 余数 p 不是 k 的倍数,那我们只能考虑更小的答案,即 k--,p+=n(一共有n份数,每份都减一),直到 p 成为 k 的倍数。

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;int x,n;void solve(){cin>>x>>n;int k=x/n;//均分,每份为kif(k*n==x){//没有余数cout<<k<<endl;return;}else{//有余数,设为pint p=x-(k*n);if(p%k==0){//余数是倍数部分cout<<k<<endl;return;}else{//余数不是倍数//如果不是那就把整体全部缩水1while(p%k!=0){//找到成为倍数为止p+=n;k--;}cout<<k<<endl;return;}}
}void init(){}
signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t;cin>>t;while(t--)solve(),init();return 0;
}

这个代码的复杂度可以看出来是k*T,最差情况下k=1e8,T=1e3,总计1e11的复杂度,这道题大概率是过不了的。

T我们没法改变,那就尝试优化一下内部的k。

因为一直在执行k--,所以可以得出一个数学式子

            while(p%k!=0){p+=n;k--;}设k一共减去了x使得p成为了k的倍数。
则有(p+x*n)%(k-x)=0即 p+x*n 是 k-x 的倍数p+x*n = y*(k-x)

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

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

相关文章

体验 AutoGen Studio - 微软推出的友好多智能体协作框架

体验 AutoGen Studio - 微软推出的友好多智能体协作框架 - 知乎 最近分别体验了CrewAI、MetaGPT v0.6、Autogen Studio&#xff0c;了解了AI Agent 相关的知识。 它们的区别 可能有人要问&#xff1a;AutoGen我知道&#xff0c;那Autogen Studio是什么&#xff1f; https://g…

pandas绘制饼图:百分比、定制标签、关闭图例、支持中文

matplotlib绘制饼图 import matplotlib.pyplot as pltplt.rc(font, family=SimHei, size=13) size = [25, 15

移动0元素

q:给定一个数组&#xff0c;将所有0元素移动到末尾&#xff0c;同时保证非0元素相对顺序 a:以下是使用Java实现将所有0元素移动到末尾&#xff0c;同时保证非0元素相对顺序的示例代码&#xff1a; public class MoveZeros {public static void moveZeros(int[] nums) {int no…

ES6 模块化、CommonJS 模块化的区别经典面试题

语法差异: ES6 模块化 使用 import 和 export 关键字来导入和导出模块。 javascriptCopy code// 导入模块 import { someFunction } from someModule; ​ // 导出模块 export function myFunction() {// code } CommonJS 模块化 使用 require 和 module.exports 或 exports 来导…

C++_list

目录 一、模拟实现list 1、list的基本结构 2、迭代器封装 2.1 正向迭代器 2.2 反向迭代器 3、指定位置插入 4、指定位置删除 5、结语 前言&#xff1a; list是STL(标准模板库)中的八大容器之一&#xff0c;而STL属于C标准库的一部分&#xff0c;因此在C中可以直接使用…

30个常用的lodash工具函数

chunk: 将数组拆分成指定大小的多个数组 function chunk(array, size) {const result [];for (let i 0; i < array.length; i size) {result.push(array.slice(i, i size));}return result; }compact: 过滤数组中的假值&#xff08;false、null、0、“”、undefined 和…

制作ubuntu-base-23.10-base-armhf的根文件系统rootfs

1、创建一台同版本的ubuntu23的虚拟机 2、下载 ubuntu-base-23.10-base-armhf.tar.gz 3、上传到虚拟机里&#xff0c;解压到rootfs文件夹下 tar -xf /opt/ubuntu-base-23.10-base-armhf.tar.gz -C /opt/rootfs4、安装 qemu&#xff0c;对任何机器运行操作系统的全系统仿真。…

npm 淘宝镜像正式到期

由于node安装插件是从国外服务器下载&#xff0c;如果没有“特殊手法”&#xff0c;就可能会遇到下载速度慢、或其它异常问题。 所以如果npm的服务器在中国就好了&#xff0c;于是我们乐于分享的淘宝团队干了这事。你可以用此只读的淘宝服务代替官方版本&#xff0c;且同步频率…

AsyncLocal是如何实现在Thread直接传值的?

一&#xff1a;背景 1. 讲故事 这个问题的由来是在.NET高级调试训练营第十期分享ThreadStatic底层玩法的时候&#xff0c;有朋友提出了AsyncLocal是如何实现的&#xff0c;虽然做了口头上的表述&#xff0c;但总还是会不具体&#xff0c;所以觉得有必要用文字图表的方式来系统…

百度智能小程序开发平台:SEO关键词推广优化 带完整的搭建教程

移动互联网的普及&#xff0c;小程序成为了众多企业和开发者关注的焦点。百度智能小程序开发平台为开发者提供了一站式的解决方案&#xff0c;帮助企业快速搭建并推广自己的小程序。本文将重点介绍百度智能小程序开发平台的SEO关键词推广优化功能&#xff0c;并带完整的搭建教程…

acwing质数866. 试除法判定质数867. 分解质因数

866. 试除法判定质数 # include <iostream>using namespace std;const int N 100010;int n, i; long long int a;bool isPrim (int a) {if (a < 1)return false;for (int i 2; i < a/i; i)if (a%i 0)return false;return true; }int main () {cin >> n;w…

img标签插入图片下方有空隙,怎么解决?

在写静态页面时&#xff0c;经常会用 img 标签插入图片&#xff0c;但图片插入后&#xff0c;直接在浏览器中运行时&#xff0c;图片的下方经常会有空隙间距&#xff0c;文字或者其它元素不好跟图片对齐&#xff0c;devtools 工具查看的话会很明显。 如下图&#xff1a; 上图…

Coppeliasim倒立摆demo

首先需要将使用Python远程控制的文件导入到文件夹&#xff0c;核心是深蓝色的三个文件。 本版本为4.70&#xff0c;其文件所在位置如下图所示&#xff0c;需要注意的是&#xff0c;目前不支持Ubuntu22的远程api&#xff1a; 双击Sphere这一行的灰色文件&#xff0c;可以看到远程…

【Docker】【深度学习算法】在Docker中使用gunicorn启动多个并行算法服务,优化算法服务:从单进程到并行化

文章目录 优化算法服务&#xff1a;从单进程到并行化单个服务架构多并行服务架构Docker化并指定并行服务数量 优化算法服务&#xff1a;从单进程到并行化 在实际应用中&#xff0c;单个算法服务的并发能力可能无法满足需求。为了提高性能和并发处理能力&#xff0c;我们可以使…

AI 神助攻,协同办公神器 ---- ONLYOFFICE

人工智能不会取代人&#xff0c;只会淘汰那些不会使用人工智能的人。 – 鲁迅 一、人工智能重新定义办公新模式 随着GPT的横空出世&#xff0c;AI的应用场景已经无处不在&#xff0c;从智能客服、智能语音助手、智能家居到自动驾驶汽车等&#xff0c;AI正在不断地拓展其应用领…

Orion-14B-Chat-Plugin [model server error]解决方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

【大数据安全】大数据安全的挑战与对策基础设施安全

目录 一、大数据安全的挑战与对策 &#xff08;一&#xff09;数据加密技术 &#xff08;二&#xff09;大数据安全与隐私 &#xff08;三&#xff09;大数据安全保障体系 &#xff08;四&#xff09;华为大数据安全解决方案 二、基础设施安全 &#xff08;一&#xff0…

走进CSS过渡效果的奇妙世界:详解CSS Transition

你是否曾在网页上看到一些酷炫的元素在状态变化时平滑而流畅地过渡&#xff1f;这就是CSS过渡效果的魔力所在&#xff01;在这篇博客中&#xff0c;我们将深入探讨CSS Transition&#xff0c;揭示其神奇的原理和如何在你的网页中运用这项技术。 什么是CSS Transition&#xff…

AI-数学-高中-12-对数定义和基本运算规则、对数换底公式

原作者视频&#xff1a;初等函数】4对数定义基本运算规则&#xff08;基础&#xff09;_哔哩哔哩_bilibili 初等函数】5对数换底公式练习&#xff08;基础&#xff09;_哔哩哔哩_bilibili 对数读法&#xff1a;以a为底&#xff0c;b的对数&#xff0c;a为底数&#xff0c;b为…

数据库之九 流程控制、存储过程和函数

【零】数据准备 【1】创建用户信息表 &#xff08;1&#xff09;创建表 id&#xff1a;编号name&#xff1a;用户名sex&#xff1a;性别&#xff0c;默认男balance&#xff1a;余额register_time&#xff1a;注册时间 drop table if exists user; create table user( id in…