Codeforces Round 1002 (Div. 2) A-D
复活!年后首场!本期封面是我自己AI弄的图
A - Milya and Two Arrays
题意
给两个所有数字出现次数都大于2的数组,问能不能修改排序之后对应位置相加得到新的数组使不同数字个数达到3
思路
直接计数就行了,不同的数字匹配一下就行
代码
//
// Created by Swan416 on 2025-02-02 22:32.
//
#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
#define minOf(a) *min_element(a.begin(),a.end())
#define all(a) a.begin(),a.end()
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;void solve()
{int n;scanf("%d",&n);vector<int> a(n),b(n);map<int,int> mpa,mpb;int cnta=0,cntb=0;for(int i=0;i<n;i++){scanf("%d",&a[i]);mpa[a[i]]++;if(mpa[a[i]]==1) cnta++;}for(int i=0;i<n;i++){scanf("%d",&b[i]);mpb[b[i]]++;if(mpb[b[i]]==1) cntb++;}if(cnta>2 or cntb>2){printf("YES\n");return;}else if(cnta==2 and cntb==2){printf("YES\n");return;}else if(cnta==2 and cntb==1){printf("NO\n");return;}else if(cnta==1 and cntb==2){printf("NO\n");return;}else if(cnta==1 and cntb==1){printf("NO\n");return;}
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}
C - Customer Service
题意
有n个队列,每一秒你可以选择一个队列清零,然后按照给定的数组加数据,最大话最后所有队列大小的MEX值
思路
统计最长的后缀1的个数然后从小到大sort一下,然后贪心往下取就行,如果有大于1的数一定会导致MEX在这里断掉的
代码
//
// Created by Swan416 on 2025-02-02 23:21.
//
#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
#define minOf(a) *min_element(a.begin(),a.end())
#define all(a) a.begin(),a.end()
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;void solve()
{int n;scanf("%d",&n);vector<vector<int>> q(n);for(int i=0;i<n;i++){q[i].clear();q[i].push_back(i);}for(int i=0;i<n;i++){for(int j=0;j<n;j++){int x;scanf("%d",&x);q[i].push_back(x);}}vector<int> cnt(n+1,0);for(int i=0;i<n;i++){for(int j=n;j>0;j--){if(q[i][j]!=1)break;cnt[i]++;}}auto cmp=[&](vector<int>& x,vector<int>& y){return cnt[x[0]]<cnt[y[0]];};sort(q.begin(),q.end(),cmp);int now=0;for(int i=0;i<n;i++){int p=q[i][0];if(cnt[p]>=now){now++;}}printf("%d\n",now);
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}
B - Cost of the Array
题意
将长度为n的数列分成k个非空块,然后第偶数块拼在一起,让其与iota的结果最早不匹配
思路
特判,疯狂的特判
代码
//
// Created by Swan416 on 2025-02-02 23:35.
//
#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
#define minOf(a) *min_element(a.begin(),a.end())
#define all(a) a.begin(),a.end()
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;void solve()
{int n,k;scanf("%d%d",&n,&k);vector<int> a(n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}vector<int> b;if(n==k){for(int i=1;i<n;i+=2){b.push_back(a[i]);}for(int i=0;i<b.size();i++){if(b[i]!=i+1){printf("%d\n",i+1);return;}}printf("%d\n",n/2+1);return;}for(int i=1;i<n;i++){if(a[i]!=1 and n-i+1>=k){printf("1\n");return;}}printf("2\n");
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}
D - Graph and Graph
题意
给你两张图,然后无限次操作:分别选当前点的邻居然后代价加上 ∣ u − v ∣ |u-v| ∣u−v∣,最小化总代价
思路
首先是无限次操作所以肯定是最后两个点在对应位置反复横跳使得每次操作代价都是加0,我们先标记图上可以作为最终状态的点:也就是两个图上的这个点存在共同邻居的点。然后跑一遍dijkstra就行了
代码
//
// Created by Swan416 on 2025-02-03 00:10.
//
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;const int N = 1145;
int n, s1, s2;
vector<int> G1[N], G2[N];
bool ok[N];struct Node {int x, y, cost;bool operator>(const Node& other) const {return cost > other.cost;}
};void solve() {scanf("%d%d%d", &n, &s1, &s2);int m1;scanf("%d", &m1);for (int i = 1; i <= n; ++i) {G1[i].clear();G2[i].clear();}for (int i = 0; i < m1; ++i) {int u, v;scanf("%d%d", &u, &v);G1[u].push_back(v);G1[v].push_back(u);}int m2;scanf("%d", &m2);for (int i = 0; i < m2; ++i) {int u, v;scanf("%d%d", &u, &v);G2[u].push_back(v);G2[v].push_back(u);}// 标记可以成为最终状态的点memset(ok, 0, sizeof(ok));for (int i = 1; i <= n; ++i) {for (int j : G1[i]) {if (find(G2[i].begin(), G2[i].end(), j) != G2[i].end()) {ok[i] = true;break;}}}// Dijkstra找最小成本到达最终状态点的成本priority_queue<Node, vector<Node>, greater<Node>> pq;map<pii, int> dist;pq.push({s1, s2, 0});dist[{s1, s2}] = 0;ll ans = LLONG_MAX;while (!pq.empty()) {Node cur = pq.top();pq.pop();if (cur.cost > dist[{cur.x, cur.y}]) {continue;}if (cur.x == cur.y && ok[cur.x]) {ans = min(ans, (ll)cur.cost);break;}for (int nx : G1[cur.x]) {for (int ny : G2[cur.y]) {int new_cost = cur.cost + abs(nx - ny);if (dist.find({nx, ny}) == dist.end() || new_cost < dist[{nx, ny}]) {dist[{nx, ny}] = new_cost;pq.push({nx, ny, new_cost});}}}}if (ans == LLONG_MAX) {printf("-1\n");} else {printf("%lld\n", ans);}
}int main() {int T;scanf("%d", &T);while (T--) {solve();}return 0;
}
相关文章:
Codeforces Round 1002 (Div. 2) A-D
复活!年后首场!本期封面是我自己AI弄的图 A - Milya and Two Arrays 题意 给两个所有数字出现次数都大于2的数组,问能不能修改排序之后对应位置相加得到新的数组使不同数字个数达到3 思路 直接计数就行了,不同的数字匹配一下…...
OpenGL学习笔记(七):Camera 摄像机(视图变换、LookAt矩阵、Camera类的实现)
文章目录 摄像机/观察空间/视图变换LookAt矩阵移动相机(处理键盘输入)移动速度欧拉角移动视角(处理鼠标输入)缩放场景(处理滚轮输入)Camera类 摄像机/观察空间/视图变换 在上一节变换中,我们讨…...
『VUE』vue-quill-editor富文本编辑器添加按钮houver提示(详细图文注释)
目录 预览效果新建一个config.js存放标题编写添加提示的方法调用添加标题方法的生命周期总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 预览效果 新建一个config.js存放标题 export const titleConfig [{ Choice: .ql-bold…...
如何使用 DeepSeek 和 Dexscreener 构建免费的 AI 加密交易机器人?
我使用DeepSeek AI和Dexscreener API构建的一个简单的 AI 加密交易机器人实现了这一目标。在本文中,我将逐步指导您如何构建像我一样的机器人。 DeepSeek 最近发布了R1,这是一种先进的 AI 模型。您可以将其视为 ChatGPT 的免费开源版本,但增加…...
Kafka流式计算架构
引言 Kafka 凭借其卓越的架构设计,具备极为高效的流式计算能力,在海量数据环境下,依然能够以惊人的速度实现消息的高性能消费,轻松应对高并发、低延迟的严苛业务需求。无论是实时数据处理、复杂事件分析,还是大规模数…...
C++泛型编程06(默认模板实参)
文章目录 1.4 默认模板实参 (Default Template Arguments)示例:灵活定义返回类型 当然,这里是对关于默认模板实参(Default Template Arguments)的内容进行了改进和优化后的叙述: 1.4 默认模板实参 (Default Template Arguments) 在C中&…...
微信登录模块封装
文章目录 1.资质申请2.combinations-wx-login-starter1.目录结构2.pom.xml 引入okhttp依赖3.WxLoginProperties.java 属性配置4.WxLoginUtil.java 后端通过 code 获取 access_token的工具类5.WxLoginAutoConfiguration.java 自动配置类6.spring.factories 激活自动配置类 3.com…...
SRS代码目录
代码目录: src/目录下核心代码: core:核心功能模块,包括日志、配置、错误处理等;protocol:实现RTMP、HTTP-FLV、HLS等协议的模块;app:应用层的实现,包括流的发布、播放…...
C++STL(一)——string类
目录 一、string的定义方式二、 string类对象的容量操作三、string类对象的访问及遍历操作四、string类对象的修改操作五、string类非成员函数 一、string的定义方式 string是个管理字符数组的类,其实就是字符数组的顺序表。 它的接口也是非常多的。本章介绍一些常…...
机器学习--1.KNN机器学习入门
1、机器学习概述 1.1、什么是机器学习 机器学习(Machine Learning)是人工智能(Artificial Intelligence)领域的一个子集,它主要关注如何让计算机系统通过经验学习(数据)并自动改进性能。机器学…...
Adaptive LLM Transformer²
看到了一个不错的论文https://arxiv.org/pdf/2501.06252 TRANSFORMER-SQUARED: SELF-ADAPTIVE LLMS 挺有意思的,是一家日本AI公司SakanaAI的论文(我以前写过他们的不训练提升模型的能力的文章,感兴趣可以去翻)它家有Lion Jones坐镇…...
三路排序算法
三路排序算法 引言 排序算法是计算机科学中基础且重要的算法之一。在数据分析和处理中,排序算法的效率直接影响着程序的执行速度和系统的稳定性。本文将深入探讨三路排序算法,包括其原理、实现和应用场景。 一、三路排序算法的原理 三路排序算法是一…...
代码随想录day27
669. /** lc appleetcode.cn id669 langcpp** [669] 修剪二叉搜索树*/// lc codestart /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}…...
基于LabVIEW的Modbus-RTU设备通信失败问题分析与解决
在使用 LabVIEW 通过 Modbus-RTU 协议与工业设备进行通信时,可能遇到无法正常发送或接收指令的问题。常见原因包括协议参数配置错误、硬件连接问题、数据帧格式不正确等。本文以某 RGBW 控制器调光失败为例,提出了一种通用的排查思路,帮助开发…...
1. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--前言
在我们的专栏《单体开发》中,我们实现了一个简单的记账软件的服务端,并且成功上线。随着用户数量的不断增长,问题逐渐开始显现。访问量逐渐增加,服务端的压力也随之加大。随着访问量的攀升,服务端的响应时间变得越来越…...
直方图:摄影中的视觉数据指南
目录 一、直方图基础:揭开它的神秘面纱 二、解读直方图类型:亮度与色彩的密码 (一)亮度直方图 (二)RGB 直方图 三、拍摄中巧用直方图:优化曝光与效果 (一)精准判断曝…...
一份完整系统化提升信息输出密度与逻辑严谨性的训练素材
一、方法 1. 理论基础与核心概念 1.1 信息输出密度 定义 信息输出密度可以理解为单位表达中所包含的有效信息量。它要求在有限的篇幅或时间内传递更多有价值、低冗余的信息。衡量指标 信息熵(Shannon Entropy):在信息论中,信息…...
CommonJS 和 ES6module 的区别
动态与静态 CommonJS 与 ES6 Module 最本质的区别在于前者对模块依赖的解决是“动态的”,而后者是“静态的”。在这里“动态”的含义是,模块依赖关系的建立发生在代码运行阶段:而“静态”则表示模块依赖关系的建立发生在代码编译阶段。 看一…...
IM 即时通讯系统-51-MPush开源实时消息推送系统
IM 开源系列 IM 即时通讯系统-41-开源 野火IM 专注于即时通讯实时音视频技术,提供优质可控的IMRTC能力 IM 即时通讯系统-42-基于netty实现的IM服务端,提供客户端jar包,可集成自己的登录系统 IM 即时通讯系统-43-简单的仿QQ聊天安卓APP IM 即时通讯系统-44-仿QQ即…...
前端 | JavaScript中的reduce方法
1. 什么是reduce reduce 方法是 JavaScript 中数组的重要方法之一,用于对数组中的元素进行累积计算。它接收一个回调函数作为参数,并返回一个最终计算结果。reduce 在许多场景下都非常有用,比如求和、数组扁平化、对象计数、数据转换等。 2…...
【Linux】从硬件到软件了解进程
个人主页~ 从硬件到软件了解进程 一、冯诺依曼体系结构二、操作系统三、操作系统进程管理1、概念2、PCB和task_struct3、查看进程4、通过系统调用fork创建进程(1)简述(2)系统调用生成子进程的过程〇提出问题①fork函数②父子进程关…...
2024-我的学习成长之路
因为热爱,无畏山海...
机试题——到邻国目标城市的最短距离
题目描述 A国与B国是相邻的两个国家,每个国家都有很多城市。国家内部有很多连接城市的公路,国家之间也有很多跨国公路,连接两个国家的边界城市。两个国家一共有N个城市,编号从1到N,一共有M条公路,包括国内…...
连续预测、
一、连续预测 调用模型遍历需要预测文件夹中的图片: image_ids open(‘VOCdevkit/VOC2007/ImageSets/Main/test.txt’).read().strip().split() for image_id in tqdm(image_ids): # 遍历测试图像 image_path “./VOCdevkit/VOC2007/JPEGImages/” image_id …...
Kamailio 不通过 dmq 实现注册复制功能
春节期间找到一篇文章,需要 fg 才能看到: https://medium.com/tumalevich/kamailio-registration-replication-without-dmq-65e225f9a8a7 kamailio1 192.168.56.115 kamailio2 192.168.56.116 kamailio3 192.168.56.117 route[HANDLE_REPLICATION] {i…...
002 mapper代理开发方式-xml方式
文章目录 代理xml方式UserMapper.javaUser.javadb.propertiesSqlMapConfig.xmlUserMapper.xmlUserMapperTest.javapom.xml 代理 此处使用的是JDK的动态代理方式,延迟加载使用的cglib动态代理方式 代理分为静态代理和动态代理。此处先不说静态代理,因为…...
大模型系列21-AI聊天机器人
聊天机器人 背景机器学习基础监督学习(Supervised Learning)概念应用场景主要问题 无监督学习(Unsupervised Learning)概念常见方法应用场景 强化学习(Reinforcement Learning)概念关键要素应用场景 模型优…...
Apache Iceberg数据湖技术在海量实时数据处理、实时特征工程和模型训练的应用技术方案和具体实施步骤及代码
Apache Iceberg在处理海量实时数据、支持实时特征工程和模型训练方面的强大能力。Iceberg支持实时特征工程和模型训练,特别适用于需要处理海量实时数据的机器学习工作流。 Iceberg作为数据湖,以支持其机器学习平台中的特征存储。Iceberg的分层结构、快照…...
25.2.3 【洛谷】作为栈的复习不错(学习记录)
今天学习的东西不算多,放了一个星期假,感觉不少东西都没那么清楚,得复习一下才行。今天搞个栈题写,把栈复习一下,明天进入正轨,边复习边学习新东西,应该会有二叉树的学习等等... 【洛谷】P1449 …...
Windows 中的 WSL:开启你的 Linux 之旅
今天在安装windows上安装Docker Desktop的时候,遇到了WSL。下面咱们就学习下。 欢迎来到涛涛聊AI 一、什么是 WSL? WSL,全称为 Windows Subsystem for Linux,是微软为 Windows 系统开发的一个兼容层,它允许用户在 Win…...
