Educational Codeforces Round 173 (Rated for Div. 2) - Codeforces

Educational Codeforces Round 173 (Rated for Div. 2) - Codeforces

Problem - A - Codeforces

签到题目

Problem - B - Codeforces

数学

被小学奥数薄纱力…

给出一个由 n ! n! n! d d d组成的整数,看他能否被十以内的奇数整除

1 1 1肯定是答案

一个数能被 3 3 3整除,那么它的数位之和为一定可以被 3 3 3整除,简单证明一下,设一个 k k k位数,每个位数为 x i x_i xi
n = x k ∗ 1 0 k + x k − 1 ∗ 1 0 k − 1 + . . . x 2 ∗ 10 + x 1 ( x k + x k − 1 + . . x 2 + x 1 ) m o d 3 = 0 n m o d 3 = ∑ i = 1 k ( ( x i m o d 3 ) ∗ ( 1 0 i m o d 3 ) ) = ∑ i = 1 k ( x i m o d 3 ) = 0 n=x_k*10^k+x_{k-1}*10^{k-1}+...x2*10+x_1\\ (x_k+x_{k-1}+..x_2+x_1)\mod 3=0\\ n\mod3=\sum_{i=1}^{k}((x_i\mod 3)*(10^i\mod 3))=\sum_{i=1}^{k}(x_i\mod 3)=0 n=xk10k+xk110k1+...x210+x1(xk+xk1+..x2+x1)mod3=0nmod3=i=1k((ximod3)(10imod3))=i=1k(ximod3)=0
同理可以得出,一个数能被 9 9 9整除,那么它的数位之和一定能被 9 9 9整除

一个数能被 5 5 5整除,它的末尾一定是 0 0 0 5 5 5

最后是 7 7 7有点麻烦,得找找规律,发现题中 n = 111..111 ∗ d n=111..111*d n=111..111d,由 1 1 1构成的 n n n中最小的能被 7 7 7整除的为 111111 111111 111111

所以只要 n ! m o d 6 = = 0 n!\mod6==0 n!mod6==0 n > = 3 n>=3 n>=3 n n n一定可以表示为 111111 ∗ a + 111111 ∗ b + . . . 111111*a+111111*b+... 111111a+111111b+...

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
map<int,int>mp;
int n;int a[N];
int l[N],r[N];
long long gcd(long long a,long long b)
{return b? gcd(b,a%b):a;
}
void solve()
{int n,d;cin>>n>>d;cout<<"1 ";if(n>=3||d%3==0)cout<<"3 ";if(d==5)cout<<"5 ";if(n>=3||d==7)cout<<"7 ";if(n>=6||(n>=3&&d%3==0)||d==9)cout<<"9 ";cout<<endl;
}
int main()
{int t;cin>>t;while(t--)solve();
}

Problem - C - Codeforces

dp 数学

给出一个整数数组,数组最多有一个数 x x x不是 − 1 , 1 -1,1 1,1

问数组的一个连续段的和最多有几种不同结果,考虑空段

观察题目显然想到要把数组分为 x x x左边和 x x x右边,独立来看

对于一个只有 − 1 , 1 -1,1 1,1的序列,假设它的连续段和最大为 x x x,最小为 y y y,可以证明它的连续段和肯定可以取满 [ y , x ] [y,x] [y,x]内的值

证明:对于最大值 x x x,由于它是由一个连续段相加得来,那么肯定可以将这个连续段分为若干个和为 1 1 1的更小的段,从两端开始移去子段,得到的连续段和为 x − 1 , x − 2...0 x-1,x-2...0 x1,x2...0,所以肯定可以取满 [ 0 , x ] [0,x] [0,x],同理可得取满 [ y , 0 ] [y,0] [y,0]

对于求最大最小值就是简单的 d p dp dp问题了

设已经求出的左边范围是 [ a , b ] [a,b] [a,b],右边为 [ c , d ] [c,d] [c,d],(由于肯定包含 0 0 0,两者肯定有交集)将其合并为 [ x , y ] [x,y] [x,y],那么答案至少是 y − x + 1 y-x+1 yx+1

再考虑 x x x,设它的坐标是 i n d ind ind,只用求出 [ i n d + 1 , n ] [ind+1,n] [ind+1,n]的前缀和与 [ 1 , i n d − 1 ] [1,ind-1] [1,ind1]的后缀和,将他们的范围(最大值大于等于 0 0 0,最小值小于等于 0 0 0)相加得到 [ x 1 , y 1 ] [x_1,y_1] [x1,y1]

遍历这个区间加上 x x x看看有没有新的值加入即可

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
map<int,int>mp;
int n;int a[N];
int l[N],r[N];
void solve()
{mp.clear();int ind=-1;int ans=0;scanf("%d",&n);for(int i=1;i<=n;i++){l[i]=r[i]=0;scanf("%d",&a[i]);if(a[i]<-1||a[i]>1||a[i]==0)ind=i;}int aa=0,b=0,c=0,d=0;if(ind==-1)ind=n+1;for(int i=1;i<ind;i++){l[i]=max(a[i],l[i-1]+a[i]);r[i]=min(a[i],r[i-1]+a[i]);aa=max(aa,l[i]);b=min(b,r[i]);}for(int i=ind+1;i<=n;i++){l[i]=max(a[i],l[i-1]+a[i]);r[i]=min(a[i],r[i-1]+a[i]);c=max(c,l[i]);d=min(d,r[i]);}b=min(b,d);aa=max(aa,c);ans=aa-b+1;for(int i=b;i<=aa;i++)mp[i]++;if(ind!=n+1){if(!mp[a[ind]]){mp[a[ind]]++;ans++;}int sum=0;int x1=0,x2=0,y1=0,y2=0;for(int i=ind+1;i<=n;i++){sum+=a[i];x1=min(x1,sum);x2=max(x2,sum);}sum=0;for(int i=ind-1;i;i--){sum+=a[i];y1=min(y1,sum);y2=max(y2,sum);}int ll=x1+y1,rr=x2+y2;for(int i=ll;i<=rr;i++){if(!mp[a[ind]+i]){mp[a[ind]+i]++;ans++;}}}cout<<ans<<endl;for(auto x:mp){cout<<x.first<<' ';}cout<<endl;
}
int main()
{int t;cin>>t;while(t--)solve();
}

Problem - D - Codeforces

质数 数学

给出 l , r , g l,r,g l,r,g,求 l ≤ a ≤ b ≤ r , g c d ( a , b ) = g l\leq a\leq b \leq r ,gcd(a,b)=g labr,gcd(a,b)=g的,满足 ∣ a − b ∣ |a-b| ab最大的 a , b a,b a,b

模板题,需要一个转化,对于 x = g ∗ a , y = g ∗ b x=g*a\ , y=g*b x=ga ,y=gb,如果 g c d ( x , y ) = g gcd(x,y)=g gcd(x,y)=g,那么一定有 g c d ( a , b ) = 1 gcd(a,b)=1 gcd(a,b)=1

那么题目就转化为了找到 [ ( l + g − 1 ) / g , r / g ] [(l+g-1)/g,r/g] [(l+g1)/g,r/g]之间的最大互质对

要根据质数的性质,在题目给的 1 0 18 10^{18} 1018的范围下,相邻质数的距离最大不会超过 1500 1500 1500

其实,设 g n g_n gn为在小于等于 n n n的范围内相邻质数的最大距离, g 1 0 18 = 1442 g_{10^{18}}=1442 g1018=1442

考虑 l l l的下一个质数为 q q q,考虑 r r r的上一个质数为 p p p,两个不相等的质数一定互质,所以答案最坏也要是 ( q , p ) (q,p) (q,p)

在最差的情况下要遍历 g n 2 ∗ l g ( r ) g_n^2*lg(r) gn2lg(r),时间是足够的

从大到小枚举长度即可,看似时间复杂度是 n 2 n^2 n2,,其实很快就可以在两端找到答案

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
map<int,int>mp;
int n;int a[N];
int l[N],r[N];
long long gcd(long long a,long long b)
{return b? gcd(b,a%b):a;
}
void solve()
{long long x,y,g;cin>>x>>y>>g;long long l=(x+g-1)/g,r=y/g;for(long long len=r-l;len>=0;len--){for(long long i=l;i+len<=r;i++){if(gcd(i,i+len)==1){cout<<g*i<<' '<<g*(i+len)<<endl;return ;}}}cout<<"-1 -1"<<endl;
}
int main()
{int t;cin>>t;while(t--)solve();
}

可以得到求 [ l , r ] [l,r] [l,r]内的最大互质对的模板

void getprime(long long a, long long b)
{for(long long len=r-l;len>=0;len--){for(long long i=l;i+len<=r;i++){if(gcd(i,i+len)==1){cout<<i<<' '<<i+len<<endl;return ;}}}
}

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

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

相关文章

HarmonyOS NEXT 实战之元服务:静态多案例效果(一)

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1代码案例如下&#xff1a; import { authentication } from…

Elasticsearch:normalizer

一、概述 ‌Elastic normalizer‌是Elasticsearch中用于处理keyword类型字段的一种工具&#xff0c;主要用于对字段进行规范化处理&#xff0c;确保在索引和查询时保持一致性。 Normalizer与analyzer类似&#xff0c;都是对字段进行处理&#xff0c;但normalizer不会对字段进…

零基础微信小程序开发——页面导航之编程式导航(保姆级教程+超详细)

&#x1f3a5; 作者简介&#xff1a; CSDN\阿里云\腾讯云\华为云开发社区优质创作者&#xff0c;专注分享大数据、Python、数据库、人工智能等领域的优质内容 &#x1f338;个人主页&#xff1a; 长风清留杨的博客 &#x1f343;形式准则&#xff1a; 无论成就大小&#xff0c;…

计算机网络 (10)网络层

前言 计算机网络中的网络层&#xff08;Network Layer&#xff09;是OSI&#xff08;开放系统互连&#xff09;模型中的第三层&#xff0c;也是TCP/IP模型中的第二层&#xff0c;它位于数据链路层和传输层之间。网络层的主要任务是负责数据包从源主机到目的主机的路径选择和数据…

云计算时代携程的网络架构变迁

大家觉得有意义和帮助记得及时关注和点赞!!! 前言关于我0 关于携程云 网络演进时间表1 个基于 VLAN 的 L2 网络 1.1 要求1.2 解决方案&#xff1a;OpenStack Provider Network Model1.3 硬件网络拓扑1.4 主机网络拓扑1.5 总结 优势劣势2 个基于 SDN 的大型 L2 网络 2.1 新挑战2…

C#控件开发3—文本显示、文本设值

目录 1.文本设置1&#xff09;定义属性2&#xff09;定义事件 2.本文显示1) 定义属性2&#xff09;定义事件 End 如何绘制一个便捷的文本显示组件、文本设值组件&#xff08;TextShow,TextSet&#xff09;&#xff1f; 绘制此控件的目的就是方便一键搞定标签显示&#xff08;可…

SuperMap iDesktopX填补三维可视化地图海岸地形

kele 前言 在做沿海城市三维可视化地图时&#xff0c;会遇到这样一种现象&#xff1a;DEM数据与国家天地图官网的行政区边界不一致&#xff0c;使得三维可视化地图&#xff0c;出现如下图地形缺失现象&#xff1a; 一、原因分析 这是由于海岸线地区受地形精度、采集时间、沙…

代码随想录Day56 108. 冗余连接,109. 冗余连接II。

1.冗余连接 卡码网题目链接&#xff08;ACM模式&#xff09;(opens new window) 题目描述 有一个图&#xff0c;它是一棵树&#xff0c;他是拥有 n 个节点&#xff08;节点编号1到n&#xff09;和 n - 1 条边的连通无环无向图&#xff08;其实就是一个线形图&#xff09;&am…

MySQL外键类型与应用场景总结:优缺点一目了然

前言&#xff1a; MySQL的外键简介&#xff1a;在 MySQL 中&#xff0c;外键 (Foreign Key) 用于建立和强制表之间的关联&#xff0c;确保数据的一致性和完整性。外键的作用主要是限制和维护引用完整性 (Referential Integrity)。 主要体现在引用操作发生变化时的处理方式&…

双指针——查找总价格为目标值的两个商品

一.题目描述 LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#xff09; 二.题目解析 这个题目非常简单&#xff0c;其实就是判断有没有两个数加起来等于target。 三.算法解析 1.暴力解法 暴力解法的话我们可以枚举出所有的情况&#xff0c;然后判…

使用 HTML5 Canvas 实现动态蜈蚣动画

使用 HTML5 Canvas 实现动态蜈蚣动画 1. 项目概述 我们将通过 HTML 和 JavaScript 创建一个动态蜈蚣。蜈蚣由多个节段组成&#xff0c;每个节段看起来像一个小圆形&#xff0c;并且每个节段上都附带有“脚”。蜈蚣的头部会在画布上随机移动。 完整代码在底部&#xff01;&…

Unity2021.3.16f1可以正常打开,但是Unity2017.3.0f3却常常打开闪退或者Unity2017编辑器运行起来就闪退掉

遇到问题&#xff1a; 从今年开始&#xff0c;不知道咋回事&#xff0c;电脑上的Unity2017像是变了个人似得&#xff0c;突然特别爱闪退掉&#xff0c;有时候还次次闪退&#xff0c;真是让人无语&#xff0c;一直以来我都怀疑是不是电脑上安装了什么别的软件了&#xff0c;导致…

深度学习中的并行策略概述:2 Data Parallelism

深度学习中的并行策略概述&#xff1a;2 Data Parallelism 数据并行&#xff08;Data Parallelism&#xff09;的核心在于将模型的数据处理过程并行化。具体来说&#xff0c;面对大规模数据批次时&#xff0c;将其拆分为较小的子批次&#xff0c;并在多个计算设备上同时进行处…

如何快速找到合适的科学问题

前面已经讲过 如何快速判断学术论文质量与相关性 如何描述科学问题&#xff1f;从“术”入手&#xff0c;悟出属于自己的“道” 医学图像分割任务中的典型科学问题 如何快速肝论文&#xff1f; 博士论文的写作架构 这些内容分别阐述了 如何找到重要的相关论文 找到科学问…

如何为运行在 PICO 4 Ultra 设备上的项目设置外部文件读写权限?

PICO 4 Ultra 系列设备使用的安卓操作系统为 Android 14。当项目的 Write Permission 为 Externa (SDCard) 且 Android API Level 大于 32 时&#xff0c;Unity 提供的外部文件读取方式在 PICO 4 Ultra 设备上将失效。此问题提供两种解决方法&#xff0c;按实际情况选取。 解决…

MacOS安装Xcode(非App Store)

文章目录 访问官网资源页面 访问官网资源页面 直接访问官网的历史版本下载资源页面地址&#xff1a;https://developer.apple.com/download/more/完成APP ID的登陆&#xff0c;直接找到需要的软件下载即可 解压后&#xff0c;安装将xcode.app移动到应用程序文件夹。

OpenLinkSaas使用手册-Git工具

在OpenLinkSaas的工具箱里面&#xff0c;最基础的一个就是Git仓库管理。Git仓库功能让git使用更加简单和强大&#xff0c;不仅可以使用常规的commit/pull/push/branch等功能外&#xff0c;还连接了Git仓库供应商的能力。 OpenLinkSass支持使用国内主流的Git仓库供应商的账号登录…

.NET平台用C#通过字节流动态操作Excel文件

在.NET开发中&#xff0c;通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据。这种方法允许开发者直接在内存中创建、修改和保存Excel文档&#xff0c;无需依赖直接的文件储存、读取操作&#xff0c;从而提高了程序的性能和安全性。使用流技术处理Excel不仅简化了…

vue之axios基本使用

文章目录 1. axios 网络请求库2. axiosvue 1. axios 网络请求库 <body> <input type"button" value"get请求" class"get"> <input type"button" value"post请求" class"post"> <!-- 官网提供…

STM32开发笔记123:使用FlyMcu下载程序

文章目录 前言一、FlyMcu二、电路图三、使用方法1、配置2、读取器件信息3、擦除芯片4、加载文件下载程序5、启动应用程序前言 本文介绍使用FlyMcu下载程序到STM32微控制器的方法。 一、FlyMcu FlyMcu轻量级,比STM32CubeProgrammer使用更为简便,下载地址:http://www.mcuis…