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

Codeforces Round 971 (Div. 4)A-G1题解

Codeforces Round 971 (Div. 4)

A

就是b - a

#include <bits/stdc++.h>
#define int long longusing namespace std;void solve()
{int a, b;cin >> a >> b;cout << b - a << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while(T -- ){solve();}}

B

简单模拟, 逆序输出即可

#include <bits/stdc++.h>
#define int long longusing namespace std;const int N = 100010;int stk[N];void solve()
{int n;cin >> n;for(int i = 1; i <= n; i ++ ){string temp;cin >> temp;stk[i] = temp.find("#");}for(int i = n; i >= 1; i -- ){cout << stk[i] + 1 << " ";}cout << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while(T -- ){solve();}}

C

简单模拟

#include <bits/stdc++.h>
#define int long longusing namespace std;const int N = 100010;int stk[N];void solve()
{int x, y, k;cin >> x >> y >> k;int ansx = (x + k - 1) / k, ansy = (y + k - 1) / k;int ans = 0;if(ansx <= ansy){ans = ansy * 2;}else{ans = ansx * 2 - 1;}cout << ans << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while(T -- ){solve();}}

D

看似复杂, 实则简单模拟

#include <bits/stdc++.h>
#define int long longusing namespace std;const int N = 200010;int n;
int d[N][2];void init()
{for(int i = 0; i <= n; i ++ ){d[i][0] = 0;d[i][1] = 0;}
}void solve()
{cin >> n;init();for(int i = 1; i <= n; i ++ ){int x, y;cin >> x >> y;d[x][y] ++;}int ans = 0;for(int i = 0; i <= n; i ++ ){if(i != 0 && d[i][0] && d[i - 1][1] && d[i + 1][1]){ans += min({d[i][0], d[i - 1][1], d[i + 1][1]});}if(i != 0 && d[i][1] && d[i - 1][0] && d[i + 1][0]){ans += min({d[i][1], d[i - 1][0], d[i + 1][0]});}if(d[i][0] && d[i][1]){ans += n - d[i][0] - d[i][1];}}cout << ans << endl; }signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while(T -- ){solve();}}

E

可以分为大于 0 和小于 0 两部分, 答案是离 0 最近的那个数, 二分出最小的正数或负数对应的 i 即可

#include <bits/stdc++.h>
#define int long longusing namespace std;const int N = 200010;int n, k;int ss(int k, int i)
{return (2 * k + i - 1) * i / 2 - (2 * k + n + i - 1) * (n - i) / 2;
}bool check(int x)
{return ss(k, x) <= 0;
}int b_search(int l, int r)
{while(l < r){int mid = l + r + 1 >> 1;if(check(mid)) l = mid;else r = mid - 1;}return l;
}void solve()
{cin >> n >> k;cout << min(abs(ss(k, temp)), abs(ss(k, temp + 1))) << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while(T -- ){solve();}}

F

前缀和, 预处理

#include <bits/stdc++.h>
#define int long long
using namespace std;const int N = 200010;int n, q, all = 0;int a[N];
int b[N];int solve2(int l, int r)
{int ll = (l + n - 1) / n - 1;l %= n;if(l == 0) l = n;int rr = (r + n - 1) / n - 1;r %= n;if(r == 0) r = n;int res = (rr - ll - 1) * b[n];res += b[ll + n] - b[ll + l - 1];res += b[rr + r] - b[rr];return res;
}void solve()
{cin >> n >> q;for(int i = 1; i <= n; i ++ ){cin >> a[i];b[i] = b[i - 1] + a[i];}for(int i = n + 1; i <= 2 * n; i ++ ){b[i] = b[i - 1] + a[i - n];}for(int i = 1; i <= q; i ++ ){int l, r;cin >> l >> r;cout << solve2(l, r) << endl;}
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while(T -- ){solve();}}

G1

滑动窗口

这里有一个非常好用的技巧, 当我们需要找一个连续的加一上升序列时, 我们在输入时可以输入a[i]后减 i, 然后找相同的数就是连续的加一上升序列

一开始没有想到用滑动窗口, 但是发现超时, 所以用滑动窗口提前处理好, 这样不需要每一次都求一遍

rbegin() 是一个迭代器, 指向最后一个数, rend() 与之相反, 指向第一个数

本题中的 multiset 与 set 的不同在于其中可以有多个相同的数

#include <bits/stdc++.h>
#define int long long
using namespace std;const int N = 200010;int n, k, q;int a[N], b[N];void solve()
{map<int, int> mp;multiset<int> S;cin >> n >> k >> q;for(int i = 1; i <= n; i ++ ){cin >> a[i];a[i] -= i;}for(int i = 1; i <= k; i ++ ){if(mp.find(a[i]) != mp.end()) S.erase(S.find(mp[a[i]]));mp[a[i]] ++;S.insert(mp[a[i]]);b[i] = k -  *S.rbegin();}for(int i = k + 1; i <= n; i ++ ){S.erase(S.find(mp[a[i - k]]));mp[a[i - k]] --;S.insert(mp[a[i - k]]);if(mp.find(a[i]) != mp.end()) S.erase(S.find(mp[a[i]]));mp[a[i]] ++;S.insert(mp[a[i]]);b[i] = k -  *S.rbegin();}for(int i = 1; i <= q; i ++ ){int l, r;cin >> l >> r;cout << b[r] << endl;}
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while(T -- ){solve();}}

 

 

相关文章:

Codeforces Round 971 (Div. 4)A-G1题解

Codeforces Round 971 (Div. 4) A 就是b - a #include <bits/stdc.h> #define int long longusing namespace std;void solve() {int a, b;cin >> a >> b;cout << b - a << endl; }signed main() {ios::sync_with_stdio(false);cin.tie(0);co…...

QT----基于QML的计时器

赶上了实习的末班车,现在在做QML开发,第一天的学习成果,一个计时器.逻辑挺简单的,纯QML实现,代码在仓库,可以对比文档和提交记录学习起来更清晰 QT-Timer 学习使用c的listmodel 学习使用了如何用c的listmodel来存储数据. 新建一个TImeListModel类继承自QAbstractListModel c…...

Stable Diffusion的高分辨率修复(Hires.fix)

Stable Diffusion的高分辨率修复&#xff08;Hires.fix&#xff09;是一项重要的功能&#xff0c;它旨在提高生成图像的分辨率和细节&#xff0c;从而使画面变得更加清晰和精细。以下是关于Stable Diffusion高分辨率修复&#xff08;Hires.fix&#xff09;的详细解释&#xff1…...

智慧体育馆可视化:实时监控与智能管理

利用图扑可视化技术实现对体育馆的实时监控和数据分析&#xff0c;提升运营效率、观众体验和安全管理水平&#xff0c;打造智能化场馆环境。...

【NLP】基于“检测器-纠错器”中文文本纠错框架

前言 许多方法将中文拼写纠正&#xff08;检测和纠正给定中文句子中的错误字符&#xff09;视为序列标注任务&#xff0c;并在句子对上进行微调。一些方法使用错误检测器作为初步任务&#xff0c;然后将检测结果用于辅助后续的错误纠正过程。然而&#xff0c;现有方法在使用检…...

vue 中加载 Mapbox GL JS Examples

Mapbox GL JS 示例 1. Mapbox GL JS的基础使用2. style 的使用2.1. 切换 style2.2. 配置一个第三方 style &#xff08;添加一个Layer&#xff09;2.3. 配置一个带有 slot 的 style2.4. 创建一个自定义 style 的 layer 类实现 WebGL 内容2.5. 添加Marker2.6. 添加 geojson 格式…...

Vue3 中组件传递 + css 变量的组合

文章目录 需求效果如下图所示代码逻辑代码参考 需求 开发一个箭头组件&#xff0c;根据父组件传递的 props 来修改 css 的颜色 效果如下图所示 代码逻辑 代码 父组件&#xff1a; <Arrow color"red" />子组件&#xff1a; <template><div class&…...

秋分之际,又搭建了一款微信记账本小程序

在这个金色的季节里&#xff0c;每一粒粮食都蕴含着生命的奇迹&#xff0c;每一片叶子都在诉说着成长的故事。秋分之际&#xff0c;又搭建了一款微信记账本小程序。 产品概述 微信记账本小程序是一款便捷的个人财务管理工具&#xff0c;旨在帮助用户轻松记录、管理和分析日常…...

聚合函数count 和 group by

count函数&#xff1a; count&#xff08;列名&#xff09; SELECT COUNT(sid) FROM grade 统计列中所有的数值个数&#xff0c;会忽略null值。 count&#xff08;*&#xff09;和count&#xff08;1&#xff09; SELECT COUNT(*) FROM grade SELECT COUNT(1) FROM grade 统…...

Vue的工程化和element快速入门

vue项目的创建&#xff1a; vue项目的启动方式&#xff1a; vue项目开发流程&#xff1a; 代码示例&#xff1a; <!-- <script>//写数据export default{data(){return{msg: 上海}}} </script> --><script setup>import {ref} from vue;//调用ref函数&…...

【Kubernetes】常见面试题汇总(三十一)

目录 83.简述你知道的 K8s 中几种 Controller 控制器并详述其工作原理。简述 ingress-controller 的工作机制。 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 …...

在 Windows 上安装和配置 NVIDIA 驱动程序、CUDA、cuDNN 和 TensorRT

在 Windows 上安装和配置 NVIDIA 驱动程序、CUDA、cuDNN 和 TensorRT 1. 安装 NVIDIA 图形驱动程序2. 安装 CUDA Toolkit3. 安装 cuDNN4.安装 TensorRT5. 常见问题1. 安装 NVIDIA 图形驱动程序 首先需要安装兼容 CUDA 的 NVIDIA 驱动程序。 下载最新驱动: 访问 NVIDIA 官网,…...

京准电钟:NTP网络校时服务器助力校园体育场馆

京准电钟&#xff1a;NTP网络校时服务器助力校园体育场馆 京准电钟&#xff1a;NTP网络校时服务器助力校园体育场馆 体育场馆数字时钟系统可为观众及工作人员提供标准时间信息&#xff0c;为计算机及其他系统提供标准时间源&#xff0c;为协调场馆各业务系统与各部门的工作提供…...

9.25度小满一面

1.map的底层 2.unorder_map哈希表有自己实现过吗&#xff1f;哈希冲突 3.poll和epoll和select的优缺点、 4.线程同步机制是用来做什么的? 5.五子棋项目问题-- 算法题: 6.LeetCode.重排链表 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0…...

mysql批量修改表前缀

现有表前缀xh,批量修改为fax_需要怎么做 SELECTCONCAT(ALTER TABLE ,table_name, RENAME TO fax_,substring(table_name, 3),;) FROMinformation_schema. TABLES WHEREtable_name LIKE xh_%; 运行之后可以但是生成了一批修改表明的命令 此时批量复制执行就可实现批量修改表前…...

算法复杂度

1. 数据结构前⾔ 1.1数据结构 数据结构是计算机存储数据&#xff0c;组织数据的方式&#xff0c;指相互之间存在⼀种或多种特定关系的数 据元素的集合。常见的数据结构有线性表&#xff0c;树&#xff0c;图&#xff0c;哈希等。 1.2 算法 算法是一种计算过程&#xff0c;输…...

vue到出excel

安装 npm install exceljs npm install file-saver<template><button click"dade66">导出 66</button> </template><script> import ExcelJS from exceljs; import { saveAs } from file-saver;export default {data() {return {data…...

【延时队列的实现方式】

文章目录 延时队列JDK自带的延时队列实现Redis实现延迟队列RabbitMQ 延时队列 延时队列 延时队列是一种特殊类型的队列&#xff0c;它允许元素在特定时间间隔后才能被处理。这种队列在处理具有延迟需求的任务时非常有用&#xff0c;例如定时任务、事件驱动系统等 延时队列在项…...

Fyne ( go跨平台GUI )中文文档- 扩展Fyne (七)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2 这是一个系列文章&#xff1a; Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne ( go跨平台GUI…...

Qt (19)【Qt 线程安全 | 互斥锁QMutex QMutexLocker | 条件变量 | 信号量】

阅读导航 引言一、互斥锁1. QMutex&#xff08;1&#xff09;基本概念&#xff08;2&#xff09;使用示例基本需求⭕thread.h⭕thread.cpp⭕widget.h⭕widget.cpp 2. QMutexLocker&#xff08;1&#xff09;基本概念&#xff08;2&#xff09;使用示例 3. QReadWriteLocker、QR…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...