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的高分辨率修复(Hires.fix)是一项重要的功能,它旨在提高生成图像的分辨率和细节,从而使画面变得更加清晰和精细。以下是关于Stable Diffusion高分辨率修复(Hires.fix)的详细解释࿱…...
智慧体育馆可视化:实时监控与智能管理
利用图扑可视化技术实现对体育馆的实时监控和数据分析,提升运营效率、观众体验和安全管理水平,打造智能化场馆环境。...
【NLP】基于“检测器-纠错器”中文文本纠错框架
前言 许多方法将中文拼写纠正(检测和纠正给定中文句子中的错误字符)视为序列标注任务,并在句子对上进行微调。一些方法使用错误检测器作为初步任务,然后将检测结果用于辅助后续的错误纠正过程。然而,现有方法在使用检…...
vue 中加载 Mapbox GL JS Examples
Mapbox GL JS 示例 1. Mapbox GL JS的基础使用2. style 的使用2.1. 切换 style2.2. 配置一个第三方 style (添加一个Layer)2.3. 配置一个带有 slot 的 style2.4. 创建一个自定义 style 的 layer 类实现 WebGL 内容2.5. 添加Marker2.6. 添加 geojson 格式…...
Vue3 中组件传递 + css 变量的组合
文章目录 需求效果如下图所示代码逻辑代码参考 需求 开发一个箭头组件,根据父组件传递的 props 来修改 css 的颜色 效果如下图所示 代码逻辑 代码 父组件: <Arrow color"red" />子组件: <template><div class&…...
秋分之际,又搭建了一款微信记账本小程序
在这个金色的季节里,每一粒粮食都蕴含着生命的奇迹,每一片叶子都在诉说着成长的故事。秋分之际,又搭建了一款微信记账本小程序。 产品概述 微信记账本小程序是一款便捷的个人财务管理工具,旨在帮助用户轻松记录、管理和分析日常…...
聚合函数count 和 group by
count函数: count(列名) SELECT COUNT(sid) FROM grade 统计列中所有的数值个数,会忽略null值。 count(*)和count(1) SELECT COUNT(*) FROM grade SELECT COUNT(1) FROM grade 统…...
Vue的工程化和element快速入门
vue项目的创建: vue项目的启动方式: vue项目开发流程: 代码示例: <!-- <script>//写数据export default{data(){return{msg: 上海}}} </script> --><script setup>import {ref} from vue;//调用ref函数&…...
【Kubernetes】常见面试题汇总(三十一)
目录 83.简述你知道的 K8s 中几种 Controller 控制器并详述其工作原理。简述 ingress-controller 的工作机制。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 …...
在 Windows 上安装和配置 NVIDIA 驱动程序、CUDA、cuDNN 和 TensorRT
在 Windows 上安装和配置 NVIDIA 驱动程序、CUDA、cuDNN 和 TensorRT 1. 安装 NVIDIA 图形驱动程序2. 安装 CUDA Toolkit3. 安装 cuDNN4.安装 TensorRT5. 常见问题1. 安装 NVIDIA 图形驱动程序 首先需要安装兼容 CUDA 的 NVIDIA 驱动程序。 下载最新驱动: 访问 NVIDIA 官网,…...
京准电钟:NTP网络校时服务器助力校园体育场馆
京准电钟:NTP网络校时服务器助力校园体育场馆 京准电钟:NTP网络校时服务器助力校园体育场馆 体育场馆数字时钟系统可为观众及工作人员提供标准时间信息,为计算机及其他系统提供标准时间源,为协调场馆各业务系统与各部门的工作提供…...
9.25度小满一面
1.map的底层 2.unorder_map哈希表有自己实现过吗?哈希冲突 3.poll和epoll和select的优缺点、 4.线程同步机制是用来做什么的? 5.五子棋项目问题-- 算法题: 6.LeetCode.重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: 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数据结构 数据结构是计算机存储数据,组织数据的方式,指相互之间存在⼀种或多种特定关系的数 据元素的集合。常见的数据结构有线性表,树,图,哈希等。 1.2 算法 算法是一种计算过程,输…...
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 延时队列 延时队列 延时队列是一种特殊类型的队列,它允许元素在特定时间间隔后才能被处理。这种队列在处理具有延迟需求的任务时非常有用,例如定时任务、事件驱动系统等 延时队列在项…...
Fyne ( go跨平台GUI )中文文档- 扩展Fyne (七)
本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2 这是一个系列文章: Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne ( go跨平台GUI…...
Qt (19)【Qt 线程安全 | 互斥锁QMutex QMutexLocker | 条件变量 | 信号量】
阅读导航 引言一、互斥锁1. QMutex(1)基本概念(2)使用示例基本需求⭕thread.h⭕thread.cpp⭕widget.h⭕widget.cpp 2. QMutexLocker(1)基本概念(2)使用示例 3. QReadWriteLocker、QR…...
WPF图片处理避坑指南:Image控件Stretch属性的4种模式详解(含效果对比图)
WPF图片处理避坑指南:Image控件Stretch属性的4种模式详解 刚接触WPF开发的工程师们,是否经常遇到图片显示变形、比例失调的困扰?Image控件的Stretch属性看似简单,却藏着不少设计哲学。今天我们就来彻底拆解这个影响图片显示效果的…...
Nexus | 连接预测和决策:数据驱动优化的进展和挑战
文章信息论文题目为《Bridging prediction and decision: Advancesand challenges in data-driven optimization》,该文于2025年发表于《Nexus》期刊上。摘要数据驱动方法通过将预测与决策相结合,彻底改变了传统的优化方法。文章探讨了三种关键方法 ——…...
网络舆情分析毕业设计:从数据采集到情感识别的技术实现与避坑指南
最近在帮学弟学妹们看网络舆情分析相关的毕业设计,发现大家普遍在几个地方卡壳:要么爬虫被封IP,数据拿不到;要么文本预处理一团糟,模型效果差;要么整个系统耦合在一起,改一处动全身,…...
MongoDB开发者必备:Dbeaver旗舰版的地理空间数据操作全攻略
MongoDB开发者必备:Dbeaver旗舰版的地理空间数据操作全攻略 在位置服务(LBS)应用爆发的时代,地理空间数据处理能力已成为开发者核心技能。无论是共享经济中的车辆调度,还是电商平台的附近推荐,精准的地理查询直接影响用户体验。作…...
Python+Spark+Hadoop商品评论数据分析可视化系统+情感分析 大数据毕业设计
1、项目介绍 技术栈: Python语言、Django框架、MySQL数据库 、Echarts可视化、情感分析、HTML商品评论数据分析可视化系统是基于Python语言和Django框架开发的一个Web应用程序。它的主要功能是对商品评论数据进行分析,并将分析结果通过Echarts可视化库展…...
Claude Code 工程化实战:从工具使用者到 Agent 构建者的进阶之路
Claude Code 工程化实战:从工具使用者到 Agent 构建者的进阶之路 声明: 📝 作者:甜城瑞庄的核桃(ZMJ) 原创学习笔记,欢迎分享,但请保留作者信息及原文链接哦~ 摘要&#…...
【实战教程】OpenClaw从零开始配置指南:从边界到稳定的分层配置策略
本文适合从零开始,慢慢养、安全的养小龙虾的达人们。 更深入的调优配置请参考:Openclaw高阶调优之配置篇、OpenClaw高阶调优之模型(tokens)篇 核心理念 OpenClaw 配置的核心不是堆砌字段,而是对系统边界的精准管控。…...
成本控制艺术:OpenClaw+百川2-13B量化版的Token节省技巧
成本控制艺术:OpenClaw百川2-13B量化版的Token节省技巧 1. 为什么需要关注Token消耗? 当我第一次在本地部署OpenClaw并接入百川2-13B量化版模型时,就被它强大的自动化能力震撼了。这个组合可以让我的电脑像真人一样处理各种任务——从整理文…...
如何在macOS上实现高效Android USB网络共享:HoRNDIS完整指南
如何在macOS上实现高效Android USB网络共享:HoRNDIS完整指南 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS Android USB网络共享是许多开发者和技术爱好者经常需要的功能&#…...
【高精度气象】预报误差不是技术小问题,而是2026新能源企业利润表里的隐形黑洞
当一场风速预测偏差让电厂在现货市场中多交千万罚金,当一次辐照度低估导致交易策略全盘错配——气象误差,正在从“技术指标”变成“财务黑洞”。2026年3月,一份来自陕西能源气象服务的最新数据显示,基于AI模型的风电场功率预测偏差…...
