Codeforces Round 1000 (Div. 2)(前三题)

A. Minimal Coprime

翻译:

        如果 l 和 r 互为同素数,则正整数 [l,r] 的一段称为同素段。

        如果一个共素数段 [l,r] 不包含任何不等于它本身的共素数段,那么这个共素数段 [l,r] 就叫做最小共素数段。为了更好地理解这句话,可以参考注释。

        给定正整数段 [l,r],求 [l,r] 中包含的最小共素数段的个数。

思路:

题目要求不同整数段之间不能为包含关系。

对于一个整数x与x+1必定为互素。

因此答案为r-l+1(l与r都不为1)

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
// using pll = pair<ll,ll>;void solve(){int a,b;cin>>a>>b;int ans = 0;if (a==1&&b==1){cout<<1<<endl;return ;}if (a==1){ans+=1;a++;}cout<<ans+(b-a)<<endl;
}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--) solve();
}

B. Subsequence Update

 翻译:

        给你一个整数序列 a_{1},a_{2},...,a_{n},和一个线段 [l,r](1≤l≤r≤n)。

        你必须对这个序列执行下面的操作一次。

  • 选择序列 a 的任意子序列,并反转它。注意,子序列不一定要连续。

        形式上,选择任意数量的下标i_{1},i_{2},...,i_{k},使得 1\leq i_{1}\leq i_{2}\leq ... \leq i_{k}\leq n。然后,将所有 1≤x≤k 的第 i_{x}个元素同时改为第 i_{k-x+1}个元素的原始值。

求操作后 a_{l}+a_{l+1}+...+a_{r-1}+a_{r} 的最小值。

思路:

对于这只能一次的反转,可以选择要求段的左边的小值与要求段的大值交换。或要求段的右边的小值与要求段的大值交换。注意只能选一边,因为只能反转一次。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
// using pll = pair<ll,ll>;void solve(){int n,l,r;cin>>n>>l>>r;ll res = 0;vector<int> a(n+1);for (int i=1;i<=n;i++) cin>>a[i];priority_queue<int> tmpl_ans,tmpr_ans;priority_queue<int,vector<int>,greater<int>> lans,rans; for (int i=l;i<=r;i++){res += a[i];tmpl_ans.push(a[i]);tmpr_ans.push(a[i]);} for (int i=1;i<l;i++){lans.push(a[i]);}  for (int i=r+1;i<=n;i++){rans.push(a[i]);}  ll res1 = res;while (!lans.empty()){int now1 = tmpl_ans.top(),now2 = lans.top();if (now1>now2){res -= now1-now2;tmpl_ans.pop();tmpl_ans.push(now2);lans.pop();}else{break;}}while (!rans.empty()){int now1 = tmpr_ans.top(),now2 = rans.top();if (now1>now2){res1 -= now1-now2;tmpr_ans.pop();tmpr_ans.push(now2);rans.pop();}else{break;}}cout<<min(res1,res)<<endl;
}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--) solve();
}

C. Remove Exactly Two

 翻译:

        给您一棵有 n 个顶点的树。您必须准确执行以下操作两次。

  • 选择一个顶点 v;
  • 删除 v 所带的所有边,同时删除顶点 v。

        请找出精确执行两次操作后的最大连通部分数。

        当且仅当存在一条从 x 到 y 的路径时,两个顶点 x 和 y 位于同一个连通组件中。
 根据定义,0 个顶点的图有 0 个连通成分。

思路:

记录每个点的度数,并从度数大层数的开始遍历。

那么答案有两种情况:

  1. 点a的度数+点b的度数-1      a与b不相连
  2. 点a的度数+点b的度数-2      a与b相连

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){int n;    cin>>n;// 记录每个点的度数vector<int> dus(n+1,0);// 创建邻接表vector<vector<int>> edge(n+1);for (int a,b,i=1;i<n;i++){cin>>a>>b;dus[a]++;dus[b]++;edge[a].push_back(b);edge[b].push_back(a);}// 记录每个度数所包含的点map<int,vector<int>> mp;for (int i=1;i<=n;i++) mp[dus[i]].push_back(i);// 考虑到有的度数只有一个点增加记录点int f=0,f_du = 0;// 按度数从大到小遍历for (auto iter=mp.rbegin();iter!=mp.rend();iter++){int du = iter->first;auto nums = iter->second;int num_size = nums.size();if (f){for (int i:nums){// 两个点不相连if (find(edge[i].begin(),edge[i].end(),f)==edge[i].end()){cout<<du+f_du-1<<endl;return;}}cout<<du+f_du-2<<endl;return;}else{if (num_size==1){f = nums[0];f_du = du;}else{for (int i=0;i<num_size;i++){for (int j=i+1;j<num_size;j++){// 两个点不相连if (find(edge[nums[i]].begin(),edge[nums[i]].end(),nums[j])==edge[nums[i]].end()){cout<<2*du-1<<endl;return;}}}cout<<2*du-2<<endl;return;}}}
}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--) solve();
}

                                                                                              有建议可以评论,我会积极改进qwq。

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

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

相关文章

数据库事务详解

事务-1-数据库事务 今天聊一聊数据库的事务&#xff0c;这里以MySQL为例子。 在MySQL中&#xff0c;事务&#xff08;Transaction&#xff09;是一组SQL操作的集合&#xff0c;这些操作要么全部成功执行&#xff0c;要么全部失败回滚&#xff0c;确保数据的一致性和完整性。事…

攻防世界GFSJ1012 pwnstack

题目编号&#xff1a;GFSJ1012 附件下载后是一个c和库文件&#xff1a; 获取在线场景是 1. 获取伪代码 Exeinfo打开pwn2&#xff0c;分析如图&#xff0c;64位。 IDA Pro(64-bit)打开pwn2&#xff0c;生成伪代码 2. 分析代码漏洞 /* This file was generated by the Hex-Rays …

最小距离和与带权最小距离和

1. 等权中位数 背景&#xff1a; 给定一系列整数&#xff0c;求一个整数x使得x在数轴上与所有整数在数轴上的距离和最小。 结论&#xff1a; 这一系列的整数按顺序排好后的中位数(偶数个整数的中位数取 n 2 或 n 2 1 \frac{n}{2}或\frac{n}{2}1 2n​或2n​1都可)一定是所求点…

【LeetCode 刷题】栈与队列-队列的应用

此博客为《代码随想录》栈与队列章节的学习笔记&#xff0c;主要内容为队列的应用相关的题目解析。 文章目录 239. 滑动窗口最大值347. 前 K 个高频元素 239. 滑动窗口最大值 题目链接 class Solution:def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]…

【优选算法】5----有效三角形个数

又是一篇算法题&#xff0c;今天早上刚做的热乎的~ 其实我是想写博客但不知道写些什么&#xff08;就水一下啦&#xff09; -------------------------------------begin----------------------------------------- 题目解析: 这道题的题目算是最近几道算法题里面题目最短的&a…

Golang:使用DuckDB查询Parquet文件数据

本文介绍DuckDB查询Parquet文件的典型应用场景&#xff0c;掌握DuckDB会让你的产品分析能力更强&#xff0c;相反系统运营成本相对较低。为了示例完整&#xff0c;我也提供了如何使用Python导出MongoDB数据。 Apache Parquet文件格式在存储和传输大型数据集方面变得非常流行。最…

HTTP 配置与应用(局域网)

想做一个自己学习的有关的csdn账号&#xff0c;努力奋斗......会更新我计算机网络实验课程的所有内容&#xff0c;还有其他的学习知识^_^&#xff0c;为自己巩固一下所学知识&#xff0c;下次更新HTTP 配置与应用&#xff08;不同网段&#xff09;。 我是一个萌新小白&#xf…

免费!无水印下载!

软件介绍 这个工具可方便啦&#xff0c;不管是小红书上那些时尚的美照&#xff0c;还是特别搞笑的视频&#xff0c;只要你想下载&#xff0c;轻轻一点就能保存。真的是实现了一键下载&#xff0c;完全没有复杂的操作。下载下来的内容会智能分类呢。这样的话&#xff0c;你的资源…

第二届国赛铁三wp

第二届国赛 缺东西去我blog找&#x1f447; 第二届长城杯/铁三 | DDLS BLOG web Safe_Proxy 源码题目 from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp Flask(__name__)app.route(/, methods"GET"])de…

【深度学习】嘿马深度学习笔记第11篇:卷积神经网络,学习目标【附代码文档】

本教程的知识点为&#xff1a;深度学习介绍 1.1 深度学习与机器学习的区别 TensorFlow介绍 2.4 张量 2.4.1 张量(Tensor) 2.4.1.1 张量的类型 TensorFlow介绍 1.2 神经网络基础 1.2.1 Logistic回归 1.2.1.1 Logistic回归 TensorFlow介绍 总结 每日作业 神经网络与tf.keras 1.3 …

STranslate 中文绿色版即时翻译/ OCR 工具 v1.3.1.120

STranslate 是一款功能强大且用户友好的翻译工具&#xff0c;它支持多种语言的即时翻译&#xff0c;提供丰富的翻译功能和便捷的使用体验。STranslate 特别适合需要频繁进行多语言交流的个人用户、商务人士和翻译工作者。 软件功能 1. 即时翻译&#xff1a; 文本翻译&#xff…

缓存之美:万文详解 Caffeine 实现原理(下)

上篇文章&#xff1a;缓存之美&#xff1a;万文详解 Caffeine 实现原理&#xff08;上&#xff09; getIfPresent 现在我们对 put 方法有了基本了解&#xff0c;现在我们继续深入 getIfPresent 方法&#xff1a; public class TestReadSourceCode {Testpublic void doRead() …

GPT 结束语设计 以nanogpt为例

GPT 结束语设计 以nanogpt为例 目录 GPT 结束语设计 以nanogpt为例 1、简述 2、分词设计 3、结束语断点 1、简述 在手搓gpt的时候&#xff0c;可能会遇到一些性能问题&#xff0c;即关于是否需要全部输出或者怎么节约资源。 在输出语句被max_new_tokens 限制&#xff0c…

HackTheBox靶机:Sightless;NodeJS模板注入漏洞,盲XSS跨站脚本攻击漏洞实战

HackTheBox靶机&#xff1a;Sightless 渗透过程1. 信息收集常规探测深入分析 2. 漏洞利用&#xff08;CVE-2022-0944&#xff09;3. 从Docker中提权4. 信息收集&#xff08;michael用户&#xff09;5. 漏洞利用 Froxlor6. 解密Keepass文件 漏洞分析SQLPad CVE-2022-0944 靶机介…

XML外部实体注入--XML基础

一.XML基础 1.XML 基础概念 定义&#xff1a;XML 即可扩展标记语言&#xff08;Extensible Markup Language&#xff09;&#xff0c;用于标记电子文件&#xff0c;使其具有结构性。它是一种允许用户对自己的标记语言进行定义的源语言&#xff0c;可用来标记数据、定义数据类型…

YOLOv8改进,YOLOv8检测头融合DSConv(动态蛇形卷积),并添加小目标检测层(四头检测),适合目标检测、分割等

精确分割拓扑管状结构例如血管和道路,对各个领域至关重要,可确保下游任务的准确性和效率。然而,许多因素使任务变得复杂,包括细小脆弱的局部结构和复杂多变的全局形态。在这项工作中,注意到管状结构的特殊特征,并利用这一知识来引导 DSCNet 在三个阶段同时增强感知:特征…

Flutter:自定义Tab切换,订单列表页tab,tab吸顶

1、自定义tab切换 view <Widget>[// 好评<Widget>[TDImage(assetUrl: assets/img/order4.png,width: 36.w,height: 36.w,),SizedBox(width: 10.w,),TextWidget.body(好评,size: 24.sp,color: controller.tabIndex 0 ? AppTheme.colorfff : AppTheme.color999,),]…

深度学习笔记——循环神经网络RNN

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍面试过程中可能遇到的循环神经网络RNN知识点。 文章目录 文本特征提取的方法1. 基础方法1.1 词袋模型&#xff08;Bag of Words, BOW&#xff09;工作原…

nvm版本安装

安装 使用切换 MySQL5.7新安装 熟人命令 8.0 mysql -P3306 -uroot -p5.7 mysql -P3307 -uroot -p 记得用完关闭

人工智能之深度学习_[4]-神经网络入门

文章目录 神经网络基础1 神经网络1.1 神经网络概念1.1.1 什么是神经网络1.1.2 如何构建神经网络1.1.3 神经网络内部状态值和激活值 1.2 激活函数1.2.1 网络非线性因素理解1.2.2 常见激活函数1.2.2.1 Sigmoid 激活函数1.2.2.2 Tanh 激活函数1.2.2.3 ReLU 激活函数1.2.2.4 SoftMa…