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

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 k k k k,p,只有当余数p是k的倍数的时候,也可以没有余数才能成为答案,因此拆出来的就是一堆k,显然k是总数x的因子,也就是把因子都跑一遍就行了。

#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,ans;void solve(){cin>>x>>n;per(i,1,sqrt(x)){if(x%i==0){int tmp=x-n*i;//此处tmp就是pif(tmp>=0 and tmp%i==0)ans=max(ans,i);//是否可以形成 k k k k k,p的情况tmp=x-n*(x/i);if(tmp>=0 and tmp%(x/i)==0)ans=max(ans,x/i);//判断右半边的因数}}cout<<ans<<endl;
}void init(){ans=-1;
}
signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t;cin>>t;while(t--)solve(),init();return 0;
}
相关知识点:设x*x=P,P的因数分为两个区域 [1~x] 和 [x~P]其中左边的因数会对应右边区间的因数,并且是完全对应。若左半边因数为i,那么右半边对应的就是P/i所以找出一个数P的因数只需要判断1~sqrt(P)里面的因数就可以了,剩下的右半边除出来

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

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

相关文章

Linux 分卷压缩命令

1.分卷压缩 使用tar归档命令就可以进行分卷压缩了&#xff0c;比如说我要分卷压缩一个当前目录下面的大小为10G的test文件&#xff0c;然后我想压缩完每一卷大小不超过1000M&#xff0c;每一个分卷的名字叫compressedFile.tar.gz00-compressedFile.tar.gz0n&#xff0c;这个文…

服装产业转型升级,iPayLinks帮助企业拓展市场盈更多

从十万件的大订单转变为几百件的小订单&#xff0c;小单快反模式为中国服装出口带来了机遇&#xff0c;也带来了挑战。 “十三行-中大-鹭江”是广州曾经最具代表性的外贸服装产业带。在过去很长的一段时间里&#xff0c;服装外贸老板在这里创造“神话”&#xff1a;24小时内完…

centos 安装docker CE

centos 安装docker CE 0. 参考 1. 安装需要的包 sudo yum install -y yum-utils \device-mapper-persistent-data \lvm22. 添加仓库 sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo3. 安装docker sudo yum install docke…

spdk技术原理简介和实践经验

一、导读 与机械硬盘相比&#xff0c;NVMe-ssd在性能、功耗和密度上都有巨大的优势&#xff0c;并且随着固态存储介质的高速发展&#xff0c;其价格也在大幅下降&#xff0c;这些优势使得NVMe-ssd在分布式存储中使用越来越广泛。由于NVMe-ssd的性能比传统磁盘介质高出很多&…

jvm基础篇之垃圾回收[1](方法区、堆回收)

文章目录 垃圾回收类型手动垃圾回收&#xff1a;C/C的内存管理自动垃圾回收&#xff1a;Java的内存管理自动垃圾回收应用场景不同垃圾回收对比 线程不共享部分的回收方法区的回收手动触发回收 堆回收两种判断方法引用计数法查看垃圾回收日志可达性分析法GC Root对象类型可达性算…

函数式接口当参数使用

如果函数式接口作为一个方法的参数&#xff0c;就以为着要方法调用方自己实现业务逻辑&#xff0c;常见的使用场景是一个业务整体逻辑是不相上下的&#xff0c;但是在某一个步骤有不同的逻辑&#xff0c;例如数据处理有不同的策略&#xff0c;如果有大量的if-els&#xff0c;或…

机器学习4-多元线性回归

多元线性回归(Multiple Linear Regression)是线性回归的一种扩展形式&#xff0c;用于建立因变量与多个自变量之间的关系。在简单线性回归中&#xff0c;我们考虑一个因变量和一个自变量之间的线性关系&#xff0c;而多元线性回归允许我们考虑多个自变量对因变量的影响。 一般…

轻松录制视频,WPS录屏功能全攻略

“有人知道wps怎么录屏吗&#xff1f;老师要求我们录制一段视频&#xff0c;是关于课堂教学的&#xff0c;可是我不会录制文档&#xff0c;眼看就快到提交的时间了&#xff0c;现在真的很着急&#xff0c;希望大家帮帮我&#xff01;” 随着信息技术的发展&#xff0c;录制屏幕…

视频号怎么开店铺?保证金多少?

一、视频号怎么开店铺&#xff1f; 首先&#xff0c;你需要确保你已经拥有一个视频号账号。如果还没有账号&#xff0c;你可以在抖音上注册一个&#xff0c;并按照提示完成个人信息的填写和验证。 接下来&#xff0c;在视频号主页的右上角点击“设置”按钮。然后&#xff0c;…

进阶SQL —— 取指定字段的分位数

如果有分区需求&#xff0c;先对数据分区排序&#xff1b;没有分区需求&#xff0c;则直接对数据排序。 如果有分区需求&#xff0c;求每个分区的总数&#xff1b;没有分区需求&#xff0c;则直接求总行数。 如果有分区需求&#xff0c;筛选排序值 分区总数 * 分位数&#x…

数字图像处理(实践篇)三十二 OpenCV-Python比较两张图片的差异

目录 一 方案 二 实践 ​通过计算两张图像像素值的均方误差(MSE)来比较两张图像。差异大的两张图片具有较大的均方差值,相反,相似的图片间则具有较小的均方差值。需要注意的是。待比较的两张图像要具有相同的高度、宽度和通道数。 一 方案 ①导入依赖库 import cv2 import…

ROR之.nil? .empty? .blank?的用法

1、出处 Ruby的方法&#xff1a;.nil?、.empty? Rails的方法&#xff1a;.blank? 2、意义&#xff1a; .nil? 判断对象是否存在&#xff1b; .empty? 对象已经存在&#xff0c;判断是否为空字段 .blank? 相当于同时满足.nil?和.empty? 注&#xff1a;Rails API中…

幻兽帕鲁专用服务器延迟高怎么解决?

幻兽帕鲁专用服务器延迟高的问题&#xff0c;可能是由于网络环境、服务器负载、数据传输等原因导致的。下面将针对这些问题&#xff0c;提供一些解决方案和建议&#xff0c;帮助您解决延迟高的问题&#xff0c;提升游戏体验。 1.检查网络环境。网络环境不稳定或者带宽较低&…

mysql navicat 定时执行sql脚本

1、查看数据库是否开启定时任务。 show variables like event_scheduler;2、没有开起的话&#xff0c;执行以下开启命令。 set global event_scheduler on;3、选择数据库&#xff0c;创建事件。 4、创建定义的执行函数或者存储过程。我自己写的是存储过程&#xff0c;如下。…

windows下postgresql的安装使用

一、安装 1、安装包安装 1.1 下载exe安装包 选择安装包&#xff1a;官网 或者点击下载&#xff1a;postgresql-12.12-1-windows-x64.exe Tip&#xff1a;此时若报错&#xff1a;There has been an error.An error occured executing the Microsoft VC runtime installer。 参…

解决分页插件结合collection标签后分页数量不准确的问题

原因分析: 分页插件是在执行你的sql之前,执行了一次select count&#xff0c;根据count来得出你的total是多少假设你使用了join语句就有可能导致这个count偏多(一对多,拼表后数据量就变大了) 解决方案 方案一. 手动修正&#xff0c;按照mybatis plus分页插件的步骤&#xff…

2024 高级前端面试题之 前端工程相关 「精选篇」

该内容主要整理关于 前端工程相关模块的相关面试题&#xff0c;其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 前端工程相关模块精选篇 1. webpack的基本配置2. webpack高级配置3. webpack性能优化-构建速度4. webpack性能优化-产出代码&#xff08;线上运行&am…

阿里云 DMS 执行sql变更

数据库开发-数据变更-无锁变更 选择数据库&#xff1a;比如要更新生产库&#xff0c;搜索生产库名字。 填入变更sql。

V2X,启动高增长引擎

车载通讯的下一个新周期&#xff0c;毋庸置疑是V2X。从4G、5G再到C-V2X&#xff0c;是车载通讯逐步从信息娱乐、行车数据监控到万物互联的关键。 去年5月&#xff0c;全球车载通讯芯片巨头—高通公司宣布&#xff0c;与以色列车联网&#xff08;V2X&#xff09;芯片设计公司Aut…