Codeforces Round 997 (Div. 2) A~C

今天的封面是水母猫猫和佩佩,原图在这里,记得关注画师夏狩大大
至此,天鹅完成了连续四场比赛在四个不同比赛上四次分的壮举!(ABC388,CodeChef169,牛客月赛109,CF997)
这场难度很有问题啊,D题断层太大了吧,不过还好我前面写得快,真就手速场

A - Shape Perimeter

题意

有一张大小为 m × m m\times m m×m的印章,然后一开始在 ( 0 , 0 ) (0,0) (0,0)的位置(但是没盖下去),然后进行了 n n n次移动,每次两个方向移动的距离告诉你,让你求最后盖出来的这个图案的总周长。

思路

注意到数据范围里面说了 x i x_i xi y i y_i yi ( 1 ≤ x i , y i ≤ m − 1 1 \le x_i, y_i \le m - 1 1xi,yim1) ,也就是每次移动的范围不大于边长,所以最后的图形一定是连起来的,用我们小学二年级就学过的求楼梯型周长可以知道只需要平移边转化为长方形就可以了

补型法

如图,算蓝线周长即可

代码

//
// Created by Swan416 on 2025-01-17 22:29.
//
#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,m;scanf("%d%d",&n,&m);int dx,dy;int x,y;scanf("%d%d",&dx,&dy);x=dx,y=dy;for(int i=1;i<n;i++){int a,b;scanf("%d%d",&a,&b);x+=a;y+=b;}x+=m;y+=m;int ans=(x-dx+y-dy)*2;printf("%d\n",ans);
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

B - Find the Permutation

题意

构造一个排列 p p p,使得按照以下操作依据这个排列得出的图是给定的无向图:

  • 对于每一组整数 1 ≤ i < j ≤ n 1 \le i < j \le n 1i<jn 当且仅当 p i < p j p_i < p_j pi<pj 时给 p i p_i pi p j p_j pj 连一条边。

思路

如果你是参加了学校寒假集训的新生,那这道题可以让你直观感受到实际XCPC题目和所谓板子题的区别在哪里,我们集训的第一天就写过这样一道题 HDU - 1285 确定比赛名次 ,这题就是典型的板子题,因为题目基本上算是明确告诉你这题需要使用拓补排序这样一个算法

但是这题同样其实也算是拓补排序板子吧也是拓补排序,条件给的要隐晦很多,我们想, i < j i<j i<j 是不是就是一个先后顺序关系,然后前者小于后者才会建一条边,那这个边其实就是上面那题里面拓补排序的条件嘛,想通这一点我们直接敲一个拓补排序就行了

代码

//
// Created by Swan416 on 2025-01-17 22:45.
//
#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<string> G(n+1);for(int i=1;i<=n;i++){cin>>G[i];G[i]="#"+G[i];}vector<pii> edge;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){if(G[i][j]=='1'){edge.emplace_back(i,j);}else{edge.emplace_back(j,i);}}}// 拓补排序vector<int> in(n+1,0);for(auto [u,v]:edge){in[v]++;}queue<int> q;for(int i=1;i<=n;i++){if(in[i]==0){q.push(i);}}vector<int> ans;while(!q.empty()){int u=q.front();q.pop();ans.push_back(u);for(auto [v,w]:edge){if(v==u){in[w]--;if(in[w]==0){q.push(w);}}}}if(ans.size()!=n){printf("-1\n");return;}for(auto x:ans){printf("%d ",x);}printf("\n");
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

C - Palindromic Subsequences

题意

构造一个数组,使得其中的最长回文子串的个数大于 n n n

思路

看样例1,直接就已经把构造方法给你了,我们两个1把其他数夹在中间,然后最右边再补一个2贡献几个答案就出来了

代码

//
// Created by Swan416 on 2025-01-17 22:53.
//
#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;
// 6 -> 1 1 2 3 1 2
// 7 -> 1 1 2 3 4 1 2
// 8 -> 1 1 2 3 4 5 1 2
// 9 -> 1 1 2 3 4 5 6 1 2
// 10 -> 1 1 2 3 4 5 6 7 1 2
// 11 -> 1 1 2 3 4 5 6 7 8 1 2void solve()
{int n;scanf("%d",&n);printf("1 ");for(int i=1;i<=n-3;i++){printf("%d ",i);}printf("1 2\n");
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

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

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

相关文章

JavaFx + SpringBoot 快速开始脚手架

JavaFX系列项目模板 JDK8 & JavaFX & SpringBoot 加持SpringBoot&#xff0c;项目示例&#xff0c;Maven打包插件带可执行程序JDK8 & JavaFX 不依赖SpringBoot&#xff0c;项目示例&#xff0c;Maven打包插件带可执行程序JDK11 & JavaFX15 使用 jlink 打包为精…

蓝桥杯3525 公因数匹配 | 枚举+数学

题目传送门 这个题目是一个数学题&#xff0c;由于只需要找到存在大于1的公因数的两数&#xff0c;所以比较方便的做法是统计每一个数的&#xff08;质&#xff09;因数。可以通过筛法统计质因数降低复杂度&#xff0c;但是直接枚举因数也可以满足要求。使用字典记录每个因数出…

当PHP遇上区块链:一场奇妙的技术之旅

PHP 与区块链的邂逅 在技术的广袤宇宙中&#xff0c;区块链技术如同一颗耀眼的新星&#xff0c;以其去中心化、不可篡改、透明等特性&#xff0c;掀起了一场席卷全球的变革浪潮。众多开发者怀揣着对新技术的热忱与探索精神&#xff0c;纷纷投身于区块链开发的领域&#xff0c;试…

利用Ai,帮我完善了UsbCamera App的几个界面和设置功能

早些时候&#xff0c;我有开源了一个UsbCamera App的代码&#xff0c;后来因为一些原因&#xff0c;就只针对星球成员和课程视频成员开源了。最近&#xff0c;我对这个App进行了一些内容的补充。 主要是添加了一些设置相关的内容&#xff0c;支持rtmp推流、循环录像、镜像&…

【系统分享01】Python+Vue电影推荐系统

大家好&#xff0c;作为一名老程序员&#xff0c;今天我将带你一起走进电影推荐系统的世界&#xff0c;分享如何利用 Django REST Framework 和 Vue 搭建一套完整的电影推荐系统&#xff0c;结合 协同过滤算法&#xff0c;根据用户评分与影片喜好&#xff0c;精准推送用户可能喜…

【k8s面试题2025】1、练气期

主要通过呼吸吐纳等方法&#xff0c;将外界的天地灵气吸入体内&#xff0c;初步改造身体&#xff0c;使身体素质远超常人。 文章目录 docker 和虚拟机的不同Kubernetes 和 docker 的关系Kube-proxy IPVS 和 iptables 的异同蓝绿发布Kubernetes中常见的数据持久化方式关于 Docke…

【统计的思想】假设检验(一)

假设检验是统计学里的重要方法&#xff0c;同时也是一种“在理想与现实之间观察求索”的测试活动。假设检验从概率的角度去考察理想与现实之间的关系&#xff0c;籍此来缓解测试可信性问题。 我们先来看一个例子。民航旅客服务系统&#xff0c;简称PSS系统&#xff0c;有一种业…

Ubuntu 24.04 LTS 通过 docker desktop 安装 seafile 搭建个人网盘

准备 Ubuntu 24.04 LTSUbuntu 空闲硬盘挂载Ubuntu 安装 Docker Desktop [我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。 安装 seafile 参考资料 Docker安装 Seafile OnlyOffice 并配置OnlyOffice到Seafile&#xff0c;实现在线编辑…

移远通信多模卫星通信模组BG95-S5获得Skylo网络认证,进一步拓展全球卫星物联网市场

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信正式宣布&#xff0c;其支持“卫星蜂窝”多模式的高集成度NTN卫星通信模组BG95-S5已成功获得NTN网络运营商Skylo的网络认证。BG95-S5也成为了获得该认证的最新款移远卫星通信模组。 BG95-S5模组顺利获得Skylo认证&a…

使用SIPP发起媒体流性能测试详解

使用SIPP发起媒体流性能测试详解 一、SIPP工具简介二、测试前的准备三、编写测试脚本四、运行测试五、分析测试结果六、总结SIPP(SIP Performance Protocol)是一个开源工具,专门用于SIP(Session Initiation Protocol)协议的性能测试和基准测试。SIP是一种用于控制多媒体通…

农业农村大数据应用场景|珈和科技“数字乡村一张图”解决方案

近年来&#xff0c;珈和科技持续深耕农业领域&#xff0c;聚焦时空数据服务智慧农业。 珈和利用遥感大数据、云计算、移动互联网、物联网、人工智能等先进技术&#xff0c;搭建“天空地一体化”监测体系&#xff0c;并创新建设了150的全球领先算法模型&#xff0c;广泛应用于高…

HTML学习笔记(4)

目录 一、背景相关样式 二、定位position 三、javascript 1、变量的定义 2、数据类型 3、绑定事件 一、背景相关样式 background-image: url(); // 背景图片 background-repeat: repeat; // 背景图片是否平铺 no-repeat background-size: 200px; // 背景图片尺寸 cover把…

【神经网络基础】

目录 一、神经网络的构成 1.1什么是神经网络&#xff1f; 1.2 激活函数 1.2.1 Sigmoid 1.2.2 Tanh 1.2.3 ReLU 1.2.4 softmax 1.2.5 其他激活函数 1.2.6 选择激活函数 1.3 参数初始化 1.4 模型构建 二、损失函数 2.1 分类问题 2.1.1多分类&#xff08;多分类交叉…

创建一个简单的spring boot+vue前后端分离项目

一、环境准备 此次实验需要的环境&#xff1a; jdk、maven、nvm和node.js 开发工具&#xff1a;idea或者Spring Tool Suite 4&#xff0c;前端可使用HBuilder X&#xff0c;数据库Mysql 下面提供maven安装与配置步骤和nvm安装与配置步骤&#xff1a; 1、maven安装与配置 1…

Spring Security 6.X + JWT + RBAC 权限管理实战教程(上)

前言 本教程基于 Spring Boot 3.x Spring Security 6.x 实现&#xff0c;采用 JWT Redis 的认证方案&#xff0c;结合 RBAC 权限模型&#xff0c;实现了一个完整的权限管理系统。 一、项目依赖配置 关键依赖说明&#xff1a; <!-- SpringWeb --><dependency><…

InVideo AI技术浅析(五):生成对抗网络

一、特效生成 1. 工作原理 特效生成是计算机视觉中的高级应用,旨在通过算法生成高质量的视觉特效,如风格迁移、图像到图像的翻译等。InVideo AI 使用生成对抗网络(GAN)来实现这一功能。GAN 通过生成器和判别器两个网络的对抗训练,生成逼真的视觉特效。 2. 关键技术模型…

JWT在线解密/JWT在线解码 - 加菲工具

JWT在线解密/JWT在线解码 首先进入加菲工具 选择 “JWT 在线解密/解码” https://www.orcc.online 或者直接进入JWT 在线解密/解码 https://www.orcc.online/tools/jwt 进入功能页面 使用 输入对应的jwt内容&#xff0c;点击解码按钮即可

Ubuntu 24.04 LTS 安装 tailscale 并访问 SMB共享文件夹

Ubuntu 24.04 LTS 安装 tailscale 安装 Tailscale 官方仓库 首先&#xff0c;确保系统包列表是最新的&#xff1a; sudo apt update接下来&#xff0c;安装 Tailscale 所需的仓库和密钥&#xff1a; curl -fsSL https://tailscale.com/install.sh | sh这会自动下载并安装 …

吴恩达深度学习——神经网络介绍

文章内容来自BV11H4y1F7uH&#xff0c;仅为个人学习所用。 文章目录 什么是神经网络引入神经网络神经元激活函数ReLU隐藏单元 用神经网络进行监督学习监督学习与无监督学习举例 什么是神经网络 引入 已经有六个房子的数据集&#xff0c;横轴为房子大小&#xff0c;纵轴为房子…

xiao esp32 S3播放SD卡wav音频

本文旨在使用xiao esp32 S3 播放SD卡上的音频文件 1 硬件准备 SD卡 2 代码实现 2.1 依赖库 ESP32-audioI2S-master 2.2 代码 #include "Arduino.h" #include "Audio.h" #include "SD.h"// Digital I/O used #define I2S_DOUT 6 #defi…