当前位置: 首页 > news >正文

Codeforces Round 864 (Div. 2)(A~D)

A. Li Hua and Maze

 给出两个不相邻的点,最少需要堵上几个方格,才能使得两个方格之间不能互相到达。

思路:显然,对于不邻任何边界的方格来说,最少需要的是4,即上下左右都堵上;邻一个边界就-1,两个方格取一下最小值即可。

AC Code:

#include <bits/stdc++.h>typedef long long ll;
const int N = 2e5 + 5;
int t, n, m, x1, y1, x2, y2;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);std::cin >> t;while(t --) {std::cin >> n >> m;std::cin >> x1 >> y1 >> x2 >> y2;int ans1 = 4, ans2 = 4;if(x1 == 1 || x1 == n) ans1 --;if(y1 == 1 || y1 == m) ans1 --;if(x2 == 1 || x2 == n) ans2 --;if(y2 == 1 || y2 == m) ans2 --;std::cout << std::min(ans1, ans2) << '\n';}return 0;
}

B. Li Hua and Pattern

给出一个n*n的矩阵,操作k次,判断能否使得当前矩形和旋转180°后的图形完全相同。每次操作是将格子的颜色翻转。

思路:显然,将格子分为四部分,对角的两两都应该中心对称。对于两两方格的两个坐标有相加等于n+1的关系,判断一下即可。注意,对于奇数时的中心那一条,应该等于同一条线上的另一部分。对于操作次数k,如果小于不同的方格数,则一定不满足条件;若是大于k,n是偶数时,k-cnt必须是偶数。

AC Code:

#include <bits/stdc++.h>typedef long long ll;
const int N = 1e3 + 5;
int t, n, k;
int a[N][N];int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);std::cin >> t;while(t --) {std::cin >> n >> k;for(int i = 1; i <= n; i ++) {for(int j = 1; j <= n; j ++) {std::cin >> a[i][j];}}int m = (n + 1) / 2;int cnt = 0;for(int i = 1; i <= m; i ++) {for(int j = 1; j <= m; j ++) {if(a[i][j] != a[1 + n - i][1 + n - j])cnt ++;}}for(int i = m + 1; i <= n; i ++) {for(int j = 1; j <= n / 2; j ++) {if(a[i][j] != a[1 + n - i][1 + n - j])cnt ++;}}if(k < cnt || (k - cnt) % 2 && n % 2 == 0)std::cout << "NO" << '\n';elsestd::cout << "YES" << '\n';}return 0;
}

C. Li Hua and Chess

 在n*m的方格中猜一个确定位置。每次可以询问目标位置和询问位置的距离,注意,距离是指经过八个方向移动的最小距离,在三次询问之内找到答案。

思路:观察移动方式,我们可以发现对于一个位置来说,向外扩展x圈上的点到中心点的距离都是x。那么我们可以先询问(1, 1)点,然后再问(1 + len, 1 + len)点,当然,注意和边界的判断。那么答案位置必然在第二次询问的点的正上方或者正左方。

AC Code:

#include <bits/stdc++.h>typedef long long ll;
const int N = 1e3 + 5;
int t, n, m;int ask(int x, int y) {std::cout << "? " << x << ' ' << y << '\n';std::cout.flush();int dis;std::cin >> dis;return dis;
}void work() {int a = 1, b = 1;int len = ask(a, b);if(!len) {std::cout << "! " << a << ' ' << b << '\n';return;}a = std::min(a + len, n), b = std::min(b + len, m);len = ask(a, b);if(!len) {std::cout << "! " << a << ' ' << b << '\n';return;}if(len >= a && len < b) {std::cout << "! " << a << ' ' << b - len << '\n';return;}else if(len >= b && len < a) {std::cout << "! " << a - len << ' ' << b << '\n';return;}int aa = a, bb = b, ll = len;a -= len;len = ask(a, b);if(!len) {std::cout << "! " << a << ' ' << b << '\n';return;}std::cout << "! " << aa << ' ' << bb - ll << '\n';
}int main() {// std::ios::sync_with_stdio(false);// std::cin.tie(0);// std::cout.tie(0);std::cin >> t;while(t --) {std::cin >> n >> m;work();std::cout.flush();}return 0;
}

 D. Li Hua and Tree

给出一棵树,进行k次操作,操作1是计算x的子树权值的和,操作2是交换x和x的重子,即断开x和x的父节点之间的边,链接x的重子和x的父节点之间的边。定义重子是x中具有最大子树的子节点,若有多个点满足条件,则重子是索引最小的那个点。

思路:模拟整个过程即可,注意细节。

AC Code:

#include <bits/stdc++.h>typedef long long ll;
#define int long long
const int N = 1e5 + 5;
int n, m;
std::vector<int> vec[N];
int a[N], w[N], fa[N], val[N];struct node{int w, id;bool operator<(const node &a) const{if (w != a.w) return w > a.w;return id < a.id;}
};
std::set<node> s[N];void DFS(int u, int f){val[u] = a[u];w[u] = 1;for(auto v : vec[u]){if (v == f) continue;fa[v] = u;DFS(v, u);val[u] += val[v];w[u] += w[v];s[u].insert({w[v], v});}
}signed main(){std::cin.tie(0);std::cout.tie(0);std::ios::sync_with_stdio(0);std::cin >> n >> m;for(int i = 1; i <= n; i ++) {std::cin >> a[i];}for(int i = 1; i < n; i ++) {int u, v;std::cin >> u >> v;vec[u].push_back(v);vec[v].push_back(u);}DFS(1, -1);while(m --){int op, x;std::cin >> op >> x;if(op == 1) std::cout << val[x] << '\n';else {if (s[x].empty()) continue;int son = s[x].begin() -> id;s[fa[x]].erase({w[x], x});s[x].erase(s[x].begin());int big = w[son];int value = val[son];w[son] = w[x];w[x] -= big;val[son] = val[x];val[x] -= value;s[fa[x]].insert({w[son], son});s[son].insert({w[x], x});fa[son] = fa[x];fa[x] = son;}}return 0;
}

 

相关文章:

Codeforces Round 864 (Div. 2)(A~D)

A. Li Hua and Maze 给出两个不相邻的点&#xff0c;最少需要堵上几个方格&#xff0c;才能使得两个方格之间不能互相到达。 思路&#xff1a;显然&#xff0c;对于不邻任何边界的方格来说&#xff0c;最少需要的是4&#xff0c;即上下左右都堵上&#xff1b;邻一个边界就-1&a…...

第3章-运行时数据区

此章把运行时数据区里比较少的地方讲一下。虚拟机栈&#xff0c;堆&#xff0c;方法区这些地方后续再讲。 转载https://gitee.com/youthlql/JavaYouth/tree/main/docs/JVM。 运行时数据区概述及线程 前言 本节主要讲的是运行时数据区&#xff0c;也就是下图这部分&#xff0c…...

delta.io 参数 spark.databricks.delta.replaceWhere.constraintCheck.enabled

总结 默认值true 你写入的df分区字段必须全部符合覆盖条件 .option("replaceWhere", "c2 == 2") false: df1 overwrite tb1: df1中每个分区的处理逻辑: - tb1中存在(且谓词中匹配)的分区,则覆盖 - tb1中存在(谓词中不匹配)的分区,则append - tb1中不存…...

Redis知识点

1. Redis-常用数据结构 Redis提供了一些数据结构供我们往Redis中存取数据&#xff0c;最常用的的有5种&#xff0c;字符串&#xff08;String&#xff09;、哈希(Hash)、列表&#xff08;list&#xff09;、集合&#xff08;set&#xff09;、有序集合&#xff08;zset&#xf…...

经典数据结构之2-3树

2-3树定义 2-3树&#xff0c;是最简单的B-树&#xff0c;其中2、3主要体现在每个非叶子节点都有2个或3个子节点&#xff0c;B-树即是平衡树&#xff0c;平衡树是为了解决不平衡树查询效率问题&#xff0c;常见的二叉平衡书有AVL树&#xff0c;它虽然提高了查询效率&#xff0c…...

Numpy从入门到精通——节省内存|通用函数

这个专栏名为《Numpy从入门到精通》&#xff0c;顾名思义&#xff0c;是记录自己学习numpy的学习过程&#xff0c;也方便自己之后复盘&#xff01;为深度学习的进一步学习奠定基础&#xff01;希望能给大家带来帮助&#xff0c;爱睡觉的咋祝您生活愉快&#xff01; 这一篇介绍《…...

Docker-compose 启动 lnmp 开发环境

GitHub传送阵 docker-lnmp 项目帮助开发者快速构建本地开发环境&#xff0c;包括Nginx、PHP、MySQL、Redis 服务镜像&#xff0c;支持配置文件和日志文件映射&#xff0c;不限操作系统&#xff1b;此项目适合个人开发者本机部署&#xff0c;可以快速切换服务版本满足学习服务新…...

《android源码阅读四》Android系统源码整编、单编并运行到虚拟机

1、编译环境 《安装Ubuntu系统》《android源码下载》 2、整编源码 进入Android源码根目录 cd AOSP初始化环境 source build/envsetup.sh清除缓存 make clobber选择编译目标 // 选择编译目标 lunch // 因为本次是在虚拟机中运行&#xff0c;这里使用x86 lunch aosp_x86_6…...

深度学习技巧应用8-各种数据类型的加载与处理,并输入神经网络进行训练

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用8-各种数据类型的加载与处理,并输入神经网络进行训练。在模型训练中,大家往往对各种的数据类型比较难下手,对于非结构化数据已经复杂的数据的要进行特殊处理,这里介绍一下我们如何进行数据处理才能输入到模型中,进…...

【笔试】备战秋招,每日一题|20230415携程研发岗笔试

前言 最近碰到一个专门制作大厂真题模拟题的网站 codefun2000&#xff0c;最近一直在上面刷题。今天来进行2023.04.15携程研发岗笔试&#xff0c;整理了一下自己的思路和代码。 比赛地址 A. 找到you 题意&#xff1a; 给定一个仅包含小写字母的 n n n\times n nn 的矩阵…...

【unity专题篇】—GUI(IMGUI)思维导图详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…...

【C++ Metaprogramming】0. 在C++中实现类似C#的泛型类

两年前&#xff0c;笔者因为项目原因刚开始接触C&#xff0c;当时就在想&#xff0c;如果C有类似C#中的泛型限定就好了&#xff0c;能让代码简单许多。我也一度认为&#xff1a; 虽然C有模板类&#xff0c;但是却没办法实现C#中泛型特有的 where 关键词&#xff1a; public c…...

TDA4VM/VH 芯片 NAVSS0

请从官网下载 TD4VM 技术参考手册&#xff0c;地址如下&#xff1a; TDA4VM 技术参考手册地址 概述 (NAVSS0 的介绍在 TRM 的第10.2章节) NAVSS0 可以看作 MAIN 域的一个复杂外设域&#xff0c;实现如下功能&#xff1a; UDMASS: DMA 管理子系统&#xff1b;MODSS&#xf…...

基于springboot的前后端分离的案列(一)

SpringBootWeb案例 前面我们已经讲解了Web前端开发的基础知识&#xff0c;也讲解了Web后端开发的基础(HTTP协议、请求响应)&#xff0c;并且也讲解了数据库MySQL&#xff0c;以及通过Mybatis框架如何来完成数据库的基本操作。 那接下来&#xff0c;我们就通过一个案例&#xf…...

Docker网络模式详解

文章目录 一、docker网络概述1、docker网络实现的原理1.1 随机映射端口( 从32768开始)1.2 指定映射端口1.3 浏览器访问测试 二、 docker的网络模式1、默认网络2、使用docker run 创建Docker容器时&#xff0c;可以用--net或--network 选项指定容器的网络模式 三、docker网络模式…...

PXE高效批量网络装机

PXE 定义 PXE(预启动执行环境&#xff0c;在操作系统之前运行)是由Intel公司开发的网络引导技术&#xff0c;工作在client /server模式&#xff0c;允许客户机通过网络从远程服务器下载引导镜像&#xff0c;并加载安装文件或者整个操作系统。 具备以下三个优点 1 规模化: 同时…...

YOLOv5+双目实现三维跟踪(python)

YOLOv5双目实现三维跟踪&#xff08;python&#xff09; 1. 目标跟踪2. 测距模块2.1 测距原理2.2 添加测距 3. 细节修改&#xff08;可忽略&#xff09;4. 实验效果 相关链接 1. YOLOV5 双目测距&#xff08;python&#xff09; 2. YOLOV7 双目测距&#xff08;python&#x…...

ESP8266使用SDK软硬件定时执行函数

1、软件定时 以下接口使用的定时器由软件实现&#xff0c;定时器的函数在任务中被执行。因为任务可能被中断&#xff0c;或者被其他高优先级的任务延迟&#xff0c;因此以下os_timer系列的接口并不能保证定时器精确执行。 注意&#xff1a; ①对于同一个 timer&#xff0c;os…...

ThreadPoolExecutor源码阅读流程图

1.创建线程池 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,Executors.defaultThreadFactory(), def…...

如何通过筛选高质量爬虫IP提升爬虫效率?

前言 对于做数据抓取的技术员来说&#xff0c;如何稳定高效的爬取数据ip库池起到决定性作用&#xff0c;对于爬虫ip池的维护&#xff0c;可以从以下几个方面入手&#xff1a; 目录 一、验证爬虫ip的可用性二、更新爬虫ip池三、维护爬虫ip的质量四、监控爬虫ip的使用情况 一、验…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...