Codeforces Round 889 (Div. 2)题解

目录

  • A. Dalton the Teacher
    • 题目大意
    • 题解思路
    • 代码
  • B. Longest Divisors Interval
    • 题目大意
    • 题解思路
    • 代码
  • C1. Dual (Easy Version)
    • 题目大意
    • 题解思路
    • 代码

A. Dalton the Teacher

题目链接
在这里插入图片描述

题目大意

Dalton是一个班级的老师,这个班级有 n n n个学生,分别使用1~n来代表这些学生。课室包含 n n n张椅子,编号也是对应1 ~ n,一开始学生 i i i坐在凳子 p i pi pi,我们保证 p 1 p1 p1, p 2 p2 p2,…, p n pn pn,是一个长度为 n n n排列组合序列。
如果他/她的号码与他/她的椅子号码不同,学生就会感到高兴。为了让他所有的学生都高兴,道尔顿可以反复执行以下操作:选择两个不同的学生,交换他们的椅子。让所有学生满意的最少动作数是多少?我们可以证明,在这个问题的约束下,有可能用有限的移动次数让所有的学生都满意。
长度为n的排列是由n个不同的整数以任意顺序从1到n组成的数组。例如,[2,3,1,5,4]是一个排列,但[1,2,2]不是一个排列(2在数组中出现两次),[1,3,4]也不是一个排列(n=3,但数组中有4)。

题解思路

题目要求我们尽可能少的步骤完成这个换换座位的操作,那我们只需要关注不符合位置的学生即可,只需要在输入的时候进行特殊判断即可,然后就是如何进行换位置的判断,如果是有两个人的位置不符合要求的话我们直接两个人的位置互换即可,比如说12,我们可以直接对换变成21,如果是三个人的情况我们就需要额外多进行一次操作比如说是123对换两次变成231。这上面的两种情况也分别对应奇数次数以及偶数次数的情况。

代码

#include<bits/stdc++.h>
using namespace std;
#define debug(x) cout<<#x<<" = "<<x<<endlint main()
{int t;cin>>t;while(t--){int n;scanf("%d",&n);int ans=0;for(int i=1;i<=n;++i){int shuru;scanf("%d",&shuru);if(shuru==i)ans++;}printf("%d\n",ans/2+ans%2);}return 0;
}

B. Longest Divisors Interval

题目链接
在这里插入图片描述

题目大意

给定一个正整数n,求一个正整数区间[l,r]的最大值,使得对于区间内的每一个i(即l≤i≤r), n是i的倍数。
给定两个整数l≤r,区间[l,r]的大小为r−l+1(即与属于该区间的整数个数重合)。

题解思路

如果一个数是区间[k+1,k+y]里面任意一个数的倍数,那么这个数一定是区间[1,y]里面任意一个数的倍数

代码

#include<bits/stdc++.h>
#include<math.h>
using namespace std;
#define debug(x) cout<<#x<<" = "<<x<<endlint main()
{int t;cin>>t;while(t--){long long n;scanf("%lld",&n);long long ans=0;//int m=(int)sqrt(n);for(long long i=1;i<=n;++i){if(n%i==0)ans++;else break;}printf("%lld\n",ans);}return 0;
}

C1. Dual (Easy Version)

题目链接

题目大意

给定一个数组a1,a2,…,anof整数(正,负或0)。您可以对该数组执行多个操作(可能为0操作)。
在一个操作中,你选择i,j(1≤i,j≤n,它们可以相等),并设置ai:=ai+aj(即(在ai后面加上aj)。
在最多50次操作中使数组不递减(即当1≤i≤n - 1时,ai≤ai+1)。您不需要最小化操作的数量。

题解思路

这道题目给的次数比较大,我们可以分类来进行处理,如果这里面的数字存在正整数,那么肯定可以把这些数字转化为正整数,那么我们只需要后面的数加前面的数就肯定能够符合条件,如果所有的数字都是负数,那我们只需要前面的数字加上后面的数字也肯定能够满足条件。还有一种情况全部都是0,那就直接输出0即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define debug(x) cout<<#x<<" = "<<x<<endlint main()
{int t;cin>>t;int cnt;while(t--){int n;scanf("%d",&n);int arr[30]{0};int maxzhi=-30,maxweizhi;int minzhi=+30,minweizhi;cnt=0;int a[50]{0};int b[50]{0};for(int i=1;i<=n;++i){scanf("%d",&arr[i]);if(arr[i]>maxzhi){maxzhi=arr[i];maxweizhi=i;}if(arr[i]<minzhi){minzhi=arr[i];minweizhi=i;}}if(maxzhi>0){while(maxzhi<20){maxzhi=2*maxzhi;arr[maxweizhi]*=2;a[cnt]=maxweizhi;b[cnt]=a[cnt];cnt++;}for(int i=1;i<=n;++i){if(arr[i]<0){arr[i]+=maxzhi;a[cnt]=i;b[cnt]=maxweizhi;cnt++;}}for(int i=2;i<=n;++i){if(arr[i]<arr[i-1]){arr[i]+=arr[i-1];//printf("%d %d\n",i,i-1);a[cnt]=i;b[cnt]=i-1;cnt++;}}}else if(minzhi<0){while(minzhi>-20){minzhi+=minzhi;a[cnt]=minweizhi;b[cnt]=minweizhi;cnt++;}for(int i=n-1;i>=1;--i){if(arr[i]>arr[i+1]){while(arr[i]>arr[i+1]){arr[i]+=arr[i+1];a[cnt]=i;b[cnt]=i+1;cnt++;}}}}printf("%d\n",cnt);for(int i=0;i<cnt;++i){printf("%d %d\n",a[i],b[i]);}}return 0;
}

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

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

相关文章

GDAL C++ API 学习之路 OGRGeometry 抽象曲线基类 OGRCurve

OGRCurve class "ogrsf_frmts.h" OGRCurve 是 OGR&#xff08;OpenGIS Simple Features Reference Implementation&#xff09;几何库中的一个基类&#xff0c;表示曲线几何对象。它是 OGRLineString 和 OGRCircularString 的抽象基类&#xff0c;用于表示曲…

Kotlin知识点

Kotlin 是 Google 推荐的用于创建新 Android 应用的语言。使用 Kotlin&#xff0c;可以花更短的时间编写出更好的 Android 应用。 基础 Kotlin 程序必须具有主函数&#xff0c;这是 Kotlin 编译器在代码中开始编译的特定位置。主函数是程序的入口点&#xff0c;或者说是起点。…

JavaScript 作用域与闭包

本文内容学习于&#xff1a;后盾人 (houdunren.com) 1.作用域 1)函数被执行后其环境变量将从内存中删除。下面函数在每次执行后将删除函数内部的 total 变量。 function count() { let total 0; } count (); 2)函数每次调用都会创建一个新作用域 3)如果子函数被使用时父级环境…

【C++】类和对象 - 上

目录 1. 面向过程和面向对象初步认识2. 类的引入3. 类的定义4. 类的访问限定符及封装4.1 访问限定符4.2 封装 5. 类的作用域6. 类的实例化7. 类对象模型7.1 如何计算类的大小7.2 类对象的存储方式猜测7.3 结构体内存对齐规则 8. this指针8.1 引出8.2 this指针的特性 总结 1. 面…

【Leetcode】53. 最大子数组和

一、题目 1、题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。…

打卡力扣题目四

#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解题代码 三、解题思路 关于 ARTS 的释义 —— 每周完成一个 ARTS&#xff1a; ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: 分享…

列表list

列表 列表是将数据组织在一个一维集合中&#xff0c;从这个组织方式来看&#xff0c;它与c()函数是相似的。但是&#xff0c;列表并不是将具体的值组织起来&#xff0c;而是组织R对象&#xff0c;如列表、数据框、矩阵、函数、向量等等。 列表非常好用&#xff0c;因为列表可…

打开域名跳转其他网站,官网被黑解决方案(Linux)

某天打开网站&#xff0c;发现进入首页&#xff0c;马上挑战到其他赌博网站。 事不宜迟&#xff0c;不能让客户发现&#xff0c;得马上解决 我的网站跳转到这个域名了 例如网站跳转到 k77.cc 就在你们部署的代码的当前文件夹下面&#xff0c;执行下如下命令 find -type …

Electron 系统通知 Notification 实践指南

系统通知是桌面应用的常见功能&#xff0c;用于给用户发送提醒&#xff08;刷下存在感 &#x1f642;&#xff09;&#xff0c;还能帮定点击事件以便后续的操作。 Electron 自带通知模块&#xff0c;下方代码是一个简单的示例 const { Notification } require(electron)cons…

电脑维护指南:让你的战友始终高效稳定

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【Ansible】

目录 一、Ansible简介二、ansible 环境安装部署1、管理端安装 ansible 三、ansible 命令行模块&#xff08;重点&#xff09;1&#xff0e;command 模块2&#xff0e;shell 模块3、cron 模块4&#xff0e;user 模块5&#xff0e;group 模块6&#xff0e;copy 模块&#xff08;重…

【论文精读】Self-Attentive Assocative Memory,2020

目录 1 引言2 Outer product attention (OPA)3 Self-attentive Associative Memory (SAM)4 SAM-based Two-Memory Model (STM)4.1 M i M^i Mi写操作4.2 M r M^r Mr读操作4.3 M i M^i Mi读操作和 M r M^r Mr写操作过程4.4 用 M r M^r Mr实现item转移4.5 模型输出 o t o_t ot​…

c语言内存函数的深度解析

本章对 memcpy&#xff0c;memmove&#xff0c;memcmp 三个函数进行详解和模拟实现&#xff1b; 本章重点&#xff1a;3个常见内存函数的使用方法及注意事项并学会模拟实现&#xff1b; 如果您觉得文章不错&#xff0c;期待你的一键三连哦&#xff0c;你的鼓励是我创作的动力…

el-table数据处理

在写表格时遇到&#xff0c;后端返回的数据是对象&#xff0c;并且缺少字段 1.每一条数据加上 一个字段 2.将对象转成数组 以下是数据 {"groupA": {"groupName": null,"orgName": null,"orgId": null,"allPeoper": &quo…

C# 泛型(Generic)

方法重载&#xff1a;方法名称相同&#xff0c;参数个数和参数类型不同&#xff1b; 优势&#xff1a;可以节约方法名称 劣势&#xff1a;方法过多 语法&#xff1a;public void writeContent(T t) 原理&#xff1a;普通的C#代码他是运行在前端进行编译&#xff0c;所有的类型需…

IntersectionObserver实现小程序长列表优化

IntersectionObserver实现小程序长列表优化 关于 IntersectionObserver 思路 这里以一屏数据为单位【一个分页的10条数据&#xff0c;最好大于视口高度】&#xff0c; 监听每一屏数据和视口的相交比例&#xff0c;即用户能不能看到它 只将可视范围的数据渲染到页面上&#x…

[Spring]Spring声明式事务总结

文章目录 1、介绍2、Spring事务的隔离级别3、事务的传播行为4、Transactional注解包含的属性5、使用6、Transactional失效场景 1、介绍 声明式事务管理是建立在 AOP 之上的。其本质是通过 AOP 功能&#xff0c;对方法前后进行拦截&#xff0c;将事务处理的功能编织到拦截的方法…

Oracle 19c 报ORA-704 ORA-01555故障处理---惜分飞

异常断电导致数据库无法启动,尝试对数据文件进行recover操作,报ORA-00283 ORA-00742 ORA-00312错误,由于redo写丢失无法正常应用 D:\check_db>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 7月 30 07:49:19 2023 Version 19.3.0.0.0 Copyrig…

利用读时建模等数据分析能力,实现网络安全态势感知的落地

摘要&#xff1a;本文提出一种基于鸿鹄数据平台的网络安全态势感知系统&#xff0c;系统借助鸿鹄数据平台读时建模、时序处理、数据搜索等高效灵活的超大数据存储和分析处理能力&#xff0c;支持海量大数据存储、分类、统计到数据分析、关联、预测、判断的网络安全态势感知能力…

FastAPI 5 - 依赖、安全

文章目录 一、Dependencies 依赖注入1、函数作为依赖2、类作为依赖3、多次依赖4、同时依赖多个二、安全、授权2、获取当前用户3、密码验证、令牌使用4、JWT 令牌、哈希加密学习自:FastAPI教程第二季(三):依赖+安全(最快python异步并发web框架之一) https://www.bilibili.…