Codeforces Round 895 (Div. 3)

Codeforces Round 895 (Div. 3)

A. Two Vessels

思路:
我们可以发现当在 a 拿 c 到 b 其实可以让他们差值减少 2c,所以对a和b的差值除以2c向上取整即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(v) ((int)v.size())
#define x first
#define y second
const int N=2e6+10,M=2e5;
typedef double db;
typedef pair<int,int>pii;
int n,m,k,Q,cnt,t;
vector<int>del;
int a[200010],b[200010];
int prime[N];
bool st[N];
map<int,int>mp;
void solve(){int a,b,c;cin>>a>>b>>c;int x=abs(a-b);int y=x/(2*c);if(x%(2*c))y++;cout<<y<<endl;
}
signed main(){cin>>t;while(t--)solve();
}

B. The Corridor or There and Back Again

思路:
我们可以发现我们当前能到达最远是 d+(s-1)/ 2,然后就是找这些里面最小的值即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(v) ((int)v.size())
#define x first
#define y second
const int N=2e6+10,M=2e5;
typedef double db;
typedef pair<int,int>pii;
int n,m,k,Q,cnt,t;
vector<int>del;
int a[200010],b[200010];
int prime[N];
bool st[N];
map<int,int>mp;
void solve(){int n;cin>>n;int a,b;int ans=10000000000;rep(i,0,n-1){cin>>a>>b;ans=min(ans,a+(b-1)/2);}cout<<ans<<'\n';
}
signed main(){cin>>t;while(t--)solve();
}

C. Non-coprime Split

思路:
这里我们分三种情况:
① 如果a != b,我们就能找一个偶数,输出2和偶数-2
② 如果a== b,如果a和b不是质素那么就直接找出他的最小的约数即可
③ 如果a ==b,如果a和b是质素那么就输出-1
还有些细节注意下就行

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(v) ((int)v.size())
#define x first
#define y second
const int N=2e6+10,M=2e5;
typedef double db;
typedef pair<int,int>pii;
int n,m,k,Q,cnt,t;
vector<int>del;
int a[200010],b[200010];
int prime[N];
bool st[N];
map<int,int>mp;
bool isPrime(int n)
{if (n <= 3)//当n不大于3时只有1不是素数return n > 1;if (n % 6 != 1 && n % 6 != 5)//只有6i+1和6i+5可能是素数return false;for (int i = 5; i <= sqrt(n); i += 6){if (n % i == 0 || n % (i + 2) == 0)return false;}return true;
}
void solve(){int a,b;cin>>a>>b;if(a==b&&a<=2){cout<<-1<<endl;return ;}if(a==1&&b==3||a==1&&b==2){cout<<-1<<endl;return ;}if(a==b&&!isPrime(a)){rep(i,2,sqrt(a)){if(a%i==0){cout<<i<<" "<<a-i<<endl;return ;}}return ;}else if(a==b&&isPrime(a)){cout<<-1<<endl;return ;}else{if(b-1==2){cout<<-1<<endl;return ;}if(b%2==0){cout<<2<<" "<<b-2<<endl;}else cout<<2<<" "<<b-2-1<<endl;}
}
signed main(){cin>>t;while(t--)solve();
}

D. Plus Minus Permutation

思路:
我们可以发现如果某个数能被x和y同时整除的话对答案没有贡献,所以,我们只需要找到在x中的数不在y中的个数num1,在y中的数不在x中的数num2,然后根据前n项和公式sum1-sum2即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){int t;cin>>t;while(t--){int n,x,y;cin>>n>>x>>y;int d=__gcd(x,y);d=x/d*y;int c=n/d;x=n/x-c;y=n/y-c;cout<<x*(n-x+1+n)/2-(1+y)*y/2<<'\n';}
}

E. Data Structures Fan

思路1:线段树
没补
思路2:异或性质
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
void solve()
{int n; cin >> n;vector<int> a(n + 10),sum(n+10);for (int i = 1; i <= n; i++) cin >> a[i],sum[i]=sum[i-1]^a[i];string op; cin >> op;int sum1 = 0, sum2 = 0;for (int i = 0; i < n; i++){if (op[i] == '0') sum2 ^= a[i + 1];else sum1 ^= a[i + 1];}//cout<<"sum== "<<sum1<<" "<<sum2<<endl;int q; cin >> q;while (q--){int cnt;cin >> cnt;if (cnt == 2){int x; cin >> x;if (x == 0) cout << sum2 << ' ';else cout << sum1 <<' ';}else{int l, r; cin >> l >> r;sum1 ^= sum[r] ^ sum[l - 1];sum2 ^= sum[r] ^ sum[l - 1];}}cout<<endl;
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t; cin >> t;while (t--)solve();
}

F. Selling a Menagerie

思路:
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
const int N = 1e5 + 10;
int a[N], c[N];
int d[N], minn = 1e9 + 10, id = -1;
bool st[N];
void dfs(int u)
{if (st[u]) return;st[u] = true;int j = a[u];if (minn > c[j]) minn = c[j], id = j;dfs(j);
}
void solve()
{queue<int> q;vector<int> ans;int n; cin >> n;for (int i = 0; i <= n; i++) st[i] = false, d[i] = 0;for (int i = 1; i <= n; i++) cin >> a[i], d[a[i]]++;for (int i = 1; i <= n; i++) cin >> c[i];for (int i = 1; i <= n; i++)if (!d[i])q.push(i);while (q.size()){int t = q.front();ans.push_back(t);st[t] = true;q.pop();if (--d[a[t]] == 0) q.push(a[t]);}for (int i = 1; i <= n; i++)if (!st[i]){minn = c[i];id = i;dfs(i);//找最小的贡献int x = a[id];do{ans.push_back(x);x = a[x];} while (x != a[id]);}for (int i = 0; i < ans.size(); i++) cout << ans[i] << ' ';cout << endl;
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t; cin >> t;while (t--)solve();
}

G. Replace With Product

思路:
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
#define int long long
// const int N = 1e5 + 10;const int N = 2e5 + 10, M = 4e5 + 10;int n, a[N], b[N], idx;void solve()
{cin >> n;for (int i = 1; i <= n; ++i)cin >> a[i];int l = 1, r = n;while (a[l] == 1 && l < r)l++;while (a[r] == 1 && l < r)r--;int res = 1;for (int i = l; i <= r; ++i){res *= a[i];if (res > 1e9){cout << l << " " << r << "\n";return;}}idx = 0;int sum = 0;for (int i = 1; i <= n; ++i){if (a[i] > 1)b[++idx] = i;sum += a[i];}int ans = sum, ansl = 1, ansr = 1;for (int i = 1; i <= idx; ++i){res = 1;l = b[i];int s = 0;for (int j = i; j <= idx; ++j){res *= a[b[j]];r = b[j];s += a[b[j]];int val = sum - s - (r - l + 1 - (j - i + 1)) + res;if (val > ans){ans = val;ansl = l, ansr = r;}}}cout << ansl << " " << ansr << "\n";
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t; cin >> t;while (t--)solve();
}

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

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

相关文章

烟感报警器单片机方案开发,解决方案

烟感报警器也叫做烟雾报警器。烟感报警器适用于火灾发生时有大量烟雾&#xff0c;而正常情况下无烟的场所。例如写字楼、医院、学校、博物馆等场所。烟感报警器一般安装于所需要保护或探测区域的天花板上&#xff0c;因火灾中烟雾比空气轻&#xff0c;更容易向上飘散&#xff0…

如何利用 Selenium 对已打开的浏览器进行爬虫

大家好&#xff01; 在对某些网站进行爬虫时&#xff0c;如果该网站做了限制&#xff0c;必须完成登录才能展示数据&#xff0c;而且只能通过短信验证码才能登录 这时候&#xff0c;我们可以通过一个已经开启的浏览器完成登录&#xff0c;然后利用程序继续操作这个浏览器&…

Redis常见命令

命令可以查看的文档 http://doc.redisfans.com/ https://redis.io/commands/ 官方文档&#xff08;英文&#xff09; http://www.redis.cn/commands.html 中文 https://redis.com.cn/commands.html 个人推荐这个 https://try.redis.io/ redis命令在线测试工具 https://githubfa…

《向量数据库》——向量数据库Milvus 和大模型出联名款AI原生Milvus Cloud

大模型技术的发展正加速对千行百业的改革和重塑,向量数据库作为大模型的海量记忆体、云计算作为大模型的大算力平台,是大模型走向行业的基石。而电商行业因其高度的数字化程度,成为打磨大模型的绝佳“战场”。 在此背景下,Zilliz 联合亚马逊云科技举办的【向量数据库 X 云计…

在FPGA上快速搭建以太网

在本文中&#xff0c;我们将介绍如何在FPGA上快速搭建以太网 &#xff08;LWIP &#xff09;。为此&#xff0c;我们将使用 MicroBlaze 作为主 CPU 运行其应用程序。 LWIP 是使用裸机设计以太网的良好起点&#xff0c;在此基础上我们可以轻松调整软件应用程序以提供更详细的应用…

Chrome 108版(64-bit 108.0.5359.125)网盘下载

还在用Selenium的朋友们注意了&#xff0c;目前Chrome的最新版是116&#xff0c;而官方的Chromedriver只支持到115版。 可惜Google不提供旧版Chrome的下载方式&#xff0c;需要旧版的很难回去了。如果真的想要旧版的Chrome&#xff0c;只能民间自救。 我在2022年12月备份了C盘…

线性代数的学习和整理21,向量的模,矩阵的模,矩阵的模和行列式比较(未完成)

目录 1 模的定义 2 向量的模是距离 2.1 向量的模的定义 2.2 向量的模的计算公式 3 矩阵的模 3.1 矩阵/向量组的模的定义 3.2 矩阵的模的公式 4 矩阵的模和行列式的关系&#xff1f; 1 模的定义 模&#xff0c;又称为范数。范数&#xff0c;是具有“长度”概念的函数。…

机器人任务挖掘与智能超级自动化技术解析

本文为上海财经大学教授、安徽财经大学学术副校长何贤杰出席“会计科技Acctech应对不确定性挑战”高峰论坛时的演讲内容整理。何贤杰详细介绍了机器人任务挖掘与智能超级自动化技术的发展背景、关键技术和应用场景。 从本质来说&#xff0c;会计是非常适合智能化、自动化的。会…

ROS2下使用TurtleBot3-->SLAM导航(仿真)RVIZ加载不出机器人模型

一、问题描述 在使用台式机进行仿真时&#xff0c;大部分例程很顺利&#xff0c;但在SLAM导航时&#xff0c;在RVIZ中却一直加载不出机器人模型&#xff0c;点击Navigation2 Goal选择目标点进行导航时&#xff0c;无响应。 启动后在RVIZ2和终端看到一个错误 按照官网的指令试…

VMware17 下载以及 配置虚拟机 一条龙全教程

前言&#xff1a;在网络安全相关方面的学习时&#xff0c;我们难免要使用虚拟机来模拟实现网络攻击或者防御&#xff0c;在这里&#xff0c;笔者就给大家分享 VMware 17 虚拟机下载安装使用的保姆级教程 目录 虚拟性软件版本推荐 下载 VMware 下载镜像 配置虚拟机 虚拟性软…

MySQL的用户管理

1、MySQL的用户管理 &#xff08;1&#xff09;创建用户 create user zhang3 identified by 123123;表示创建名称为zhang3的用户&#xff0c;密码设为123123。 &#xff08;2&#xff09;了解user表 1&#xff09;查看用户 select host,user,authentication_string,select…

YOLOV7改进-添加基于注意力机制的目标检测头(DYHEAD)

DYHEAD 复制到这&#xff1a; 1、models下新建文件 2、yolo.py中import一下 3、改IDetect这里 4、论文中说6的效果最好&#xff0c;但参数量不少&#xff0c;做一下工作量 5、在进入IDetect之前&#xff0c;会对RepConv做卷积 5、因为DYHEAD需要三个层输入的特征层一致&am…

借助各大模型的优点生成原创视频(真人人声)Plus

【技术背景】 众所周知&#xff0c;组成视频的3大元素&#xff0c;即文本语音图片。接着小编逐一介绍生成原创视频的过程。 【文本生成】 天工AI搜索&#xff08;thttp://iangong.cn&#xff09; 直接手机短信验证就可以使用&#xff0c;该大模型已经接入互联网&#xff0c…

工业4.0时代生产系统对接集成优势,MES和ERP专业一体化管理-亿发

在现代制造业中&#xff0c;市场变化都在不断加速。企业面临着不断加强生产效率、生产质量和快速适应市场需求的挑战。在制造行业&#xff0c;日常管理中的ERP系统、MES系统就显得尤为重要。越来越多的企业正在采用MES系统和ERP管理系统的融合&#xff0c;以实现智能化生产管理…

OPENCV实现图像查找

特征匹配+单应性矩阵 # -*- coding:utf-8 -*- """ 作者:794919561 日期:2023/9/4 """ import cv2 import numpy as np# 读图像 img1 = cv2.imread(F:\\learnOpenCV\\openCVLearning\\pictures\\chess

若依前端vue设置子路径

若依前端vue设置子路径 说明&#xff1a;本文档中以前后端分离版为例&#xff0c;版本为:3.8.6 一设置变量 在.env.development和.env.production 中定义一个变量如VUE_APP_PROJECT_IDENTIFIER # 项目标识字符 VUE_APP_PROJECT_IDENTIFIER admin二引用路径变量 ${process…

自动化测试的重要性:为何追求自动化?

为什么需要自动化测试&#xff1f; 代替手工重复操作&#xff0c;测试工程师可以花更多时间在设计全面的测试用例和新功能测试上 【代替手工重复】 提升回归测试的效率&#xff0c;适合敏捷开发过程 【提升回归效率】 更好的利用非工作时间执行测试&#xff0c;工作时间分析失…

C++项目实战——基于多设计模式下的同步异步日志系统-②-相关技术补充(不定参函数)

文章目录 专栏导读不定参函数C风格不定参函数不定参宏函数 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导师&#xff0c;阿里云专家博主&#xff0c;CSDN内容合伙人…致力于 C/C、Linux 学…

大数据和数据要素有什么关系?

大数据与数据要素之间存在密切的关系。大数据是指海量、多样化、高速生成的数据&#xff0c;而数据要素是指构成数据的基本元素或属性。数据要素包括但不限于数据的类型、结构、格式、单位、精度等。 大数据的产生和应用离不开数据要素的支持。数据要素确定了数据的基本特征和…

ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04

ORB-SLAM3配置安装及ROS和脚本运行---Ubuntu20.04 1. 安装所需要的依赖和包2. 修改代码及文件内容2.1 CMakeLists.txt文件的修改2.2 单目可视化代码修改2.3 环境配置文件的修改2.4 源码的修改 3.ORB-SLAM3的编译3.1 构建 ORB-SLAM3 库3.2 生成ROS节点 4.ORB-SLAM3的运行4.1 非R…