Codeforces Round 866 (Div 2)(A - D)
Codeforces Round 866 (Div. 2)(A - D)
Dashboard - Codeforces Round 866 (Div. 2) - Codeforces
A. Yura’s New Name(思维)
思路:枚举每个下划线 , 计算其前后需要补齐的 ‘^’ 个数 , 注意特判样例四的特殊情况。
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int n , t;
string s;signed main(){IOScin >> t;while(t --){cin >> s;n = s.size();int res = 0;if(s == "^") res += 1;for(int i = 0 ; i < n ; i ++){if(s[i] == '_'){if(i == 0) res += 1;else{if(s[i - 1] == '_') res += 1;}}}if(s[n - 1] == '_') res += 1;cout << res << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);
B. JoJo’s Incredible Adventures(思维)
思路:手模一下可以发现 ,全是 1 的时候 , 答案就是 n * n , 当不全是 1 的时候 , 需要找到环上最长的连续 1 的个数 , 假设为 y , 答案就是 1 * y , 2 * (y - 1) , …… , (y - 1) * 2 , y * 1 里面最大的。把环复制两边断环为链。
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int t , n;
string s;bool judge(string s){for(int i = 0 ; i < n ; i ++) if(s[i] == '0') return 0;return 1;
}signed main(){IOScin >> t;while(t --){cin >> s;n = s.size();int maxx = 0;int res = 0;if(judge(s)){res = n * n;}else{s = s + s;for(int i = 0 ; i < 2 * n ; i ++){if(s[i] == '0') s[i] = ' ';}stringstream cin(s);while(cin >> s){int now = s.size();maxx = max(maxx , now);}for(int i = 1 ; i <= maxx ; i ++){res = max(res , i * (maxx - i + 1));} }cout << res << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);
C. Constructive Problem(思维)
思路:这题的样例给的很全 , 手摸一下就能出来做法 , 首先求出当前序列的 mex , 假设为 x, 我们操作完之后序列的 mex 变成 x + 1 。我们分两种情况 : 第一种 :序列中原本有 x + 1 , 我们就要贪心的把含有 x + 1 的最小区间推平 , 然后检查操作后的 mex 是否是 x + 1 即可。第二种 :序列中没有 x + 1 , 这时候我们需要找一个不影响组成原来 mex 的元素进行推平 , 比如 0 1 1 2 2 4 5 ,012是影响 mex 的元素 , 多出来的 1245 显然对于 mex 没影响 , 选择一个执行区间推平操作即可。
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int t , n;
int a[N];signed main(){IOScin >> t;while(t --){cin >> n;map<int , int>mp;int res = 0;for(int i = 1 ; i <= n ; i ++) cin >> a[i] , mp[a[i]] = 1;for(int i = 0 ; ; i ++) if(mp[i] == 0){res = i;break;} res += 1;bool tag = 0;if(mp[res]){int l = 0 , r = 0;for(int i = 1 ; i <= n ; i ++) if(a[i] == res){l = i;break;}for(int i = n ; i >= 1 ; i --) if(a[i] == res){r = i;break;}for(int i = l ; i <= r ; i ++) a[i] = res - 1;mp.clear();for(int i = 1 ; i <= n ; i ++) mp[a[i]] = 1;int ans = 0;for(int i = 0 ; ; i ++) if(mp[i] == 0){ans = i;break;} if(res == ans) tag = 1;}else{int need = n - (res - 1);if(need) tag = 1;}if(tag) cout << "YES\n";else cout << "NO\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);
D. The Butcher(思维 + 模拟)
思路:对于每一个矩形 , 面积是确定的 , 且第一次切割的时候横切还是竖切 , 原本矩形另一维度的值会保留。我们求出切割后矩形长宽两个维度的最值 , 这样就能得出两组答案。(maxh , area / maxh) , (area / maxw , maxw). 现在只需要验证这两组答案即可。验证的过程就是模拟切割的过程 , 我们每次切割过后 , 当前矩形的一个长 / 宽 是会保留下来的 , 并且是剩余中最大的那个 , 用优先队列分别维护最大的 长 / 宽 ,这样我们就能确定每一步切割的是哪个块。
复杂度 nlogn
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int t , n ;
int area;
int a[N] , b[N];
bool vis[N];
int h , w;
set<PII>ans;void solve(int x , int y){int now_h = x , now_w = y;if(x * y != area) return ;for(int i = 1 ; i <= n ; i ++) vis[i] = 0;priority_queue<PII , vector<PII> , less<PII>> hx , wx;for(int i = 1 ; i <= n ; i ++){hx.push({a[i] , i});wx.push({b[i] , i});}for(int i = 1 ; i <= n ; i ++){while(vis[hx.top().se]) hx.pop();while(vis[wx.top().se]) wx.pop();int pos = -1;if(hx.top().fi == x) pos = hx.top().se;if(wx.top().fi == y) pos = wx.top().se;if(pos == -1) return ;if(hx.top().fi == x){y -= b[pos];}else{x -= a[pos];}vis[pos] = 1;}if(!(x * y)) ans.insert({now_h , now_w});
}signed main(){IOScin >> t;while(t --){cin >> n;area = 0;for(int i = 1 ; i <= n ; i ++){cin >> a[i] >> b[i];area += a[i] * b[i];}h = *max_element(a + 1 , a + 1 + n);w = *max_element(b + 1 , b + 1 + n);solve(h , area / h);solve(area / w , w);cout << ans.size() << "\n";for(auto [x , y] : ans) cout << x << " " << y << "\n";ans.clear();}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);
相关文章:
Codeforces Round 866 (Div 2)(A - D)
Codeforces Round 866 (Div. 2)(A - D) Dashboard - Codeforces Round 866 (Div. 2) - Codeforces A. Yura’s New Name(思维) 思路:枚举每个下划线 , 计算其前后需要补齐的 ‘^’ 个数 , 注意特判样例四的特殊情况…...
QTday3(QT实现文件对话框保存操作、实现键盘触发事件【WASD控制小球的移动】)
1.实现文件对话框保存操作 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }void Widget::on_fontBtn_clicked() {//调用QFo…...
WPF基础入门-Class8-资源基础
WPF基础入门 Class8-资源基础 前言:方便各种资源的集中管理和动态效果 静态引用:初始化的时候确定样式,后续不发生改变 动态引用:样式随着引用的内容一起改变 1、新建资源字典.xaml,创建一个边框颜色资源MyBrush和一…...
Axure RP PC电商平台Web端交互原型模板
Axure RP PC电商平台Web端交互原型模板。原型图内容齐全,包含了用户中心、会员中心、优惠券、积分、互动社区、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务等完整的电商体系功能架构和业务流程。 在设计尺寸方面,本套模板按照主流的…...
Ubuntu目录和linux内核文件用途
一,目录: 1./:根目录,是整个文件系统的起点 2./bin:binary 二进制可执行文件目录,包含用于系统启动和运行的基本命令 3./boot: 启动加载器目录,包含用于系统启动的内核和引导程序文件。 4./dev: device 设备文件目录&a…...
更快更强更稳定:腾讯向量数据库测评
向量数据库:AI时代的新基座 人工智能在无处不在影响着我们的生活,而人工智能飞速发展的背后是需要对越来越多的海量数据处理,传统数据库已经难以支撑大规模的复杂数据处理。特别是大模型的出现,向量数据库横空出世。NVIDIA CEO黄…...
【java web】JSP-Java Server Page
前言 这个框架我用得不多,感觉和python的django一样,前后端结合太紧密了,适合个人开发 get 明文请求,可以被直接收藏 post 密文请求 JSP Java Server Page(JSP)HTMLJava code 步骤: 1.…...
java文件命令行报错: 找不到或无法加载主类XXX报错及解决
前言 之前遇到过几次,后面稀里糊涂的解决了。今天详细记录一下,可能不全或有些错误,还请各位指正。 你要启动一个类的话首先要有类。 在这里,类有两种, 一个是带包名(package)的还有一个是没包…...
算法训练营day46|动态规划 part08:完全背包 (LeetCode 139. 单词拆分)
139. 单词拆分 (求排列方法) 题目链接🔥🔥 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没…...
Java网络编程(二)Socket 套接字(TCP和UDP),以及TCP的回显
Socket 套接字(TCP和UDP),以及TCP的回显 Socket 套接字数据报套接字UDPTCP流套接字编程TCP的长短连接实现一个简单回显服务器 Socket 套接字 我们软件工作者,着重编写的是应用层的代码,但是发送这个数据,我…...
C++ - 多态语法 - 虚函数使用介绍
多态简单介绍 多态就是多种形态,是不同的对象去完成同一个动作所产生的结果可能有多种。这种多种的形态我们称之为多态。 比如:我们在买票的时候的时候,可能有成人全价,儿童半价,军人免票等等。对于成人,儿…...
php获取客户端ip地址及ip所在国家、省份、城市、县区
摘要 获取客户端ip地址,然后使用这个ip地址获取所在的国家、省份、城市,可以在网站中实现IP属地,发布地等功能。 本文的获取IP地址信息均采自网络上免费的IP查询网站,通过其API或者网页HTML解析出的ip地址信息。 代码 <?p…...
Error: Port Library failed to initialize: -86
最近遇到一个很奇怪的错误,这里记录一下,以备以后再次遇到 Error: Port Library failed to initialize: -86 Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.背景是,就是一普…...
SOME/IP 支持两种序列化方式:TLV 和 TV
SOME/IP 是一种基于 IP 的可扩展面向服务的中间件协议,它可以在车载以太网中实现 ECU 之间的高效通信和互操作性。 SOME/IP 的序列化方式是指将数据结构或对象按照一定的规则转换成字节序列的过程,以便在网络中传输和解析。 SOME/IP 支持两种序列化方式:TLV 和 TV。 TLV是…...
Unity之3D物理导航系统
一 介绍 Unity自带寻路(导航)系统是unity官方自带的一种寻路系统。我们可以通过它来制作简单的寻路,比如可以制作点击某个位置,让角色自动的绕开障碍走到目标点的效果,比如可以制作敌人AI,让它可以通过NavMesh绕开障碍追击我方单…...
9.4黄金行情是否反转?今日多空如何布局?
近期有哪些消息面影响黄金走势?今日黄金多空该如何研判? 黄金消息面解析:周一(9月4日)亚市盘中,现货黄金震荡走高,延续上周涨势,一度刷新日内高点至1946.16美元/盎司。周三,ISM将发布服务业P…...
Win10下使用vim9
作为一个经常与文字打交道的Writer,你在学会Vim的基本操作之后,就一定会爱上Vim的。 以下是Windows10_64位(专业版)环境中安装、使用Vim9的全过程,分享一下: 一、下载、安装Vim9 去Vim官网去下载最新的Vi…...
Flink+Flink CDC版本升级的依赖问题总结
之前使用Flink1.13Flink CDC2.0同步MySQL数据,想测试一下最新的几个版本。但是各种依赖冲突的报错,经过一段时间的调试,终于解决,现在总结一下。 1、flink1.15前后jar包名称不一样 flink-streaming-java、flink-clients、flink-…...
Matlab论文插图绘制模板第112期—带阴影标记的图
之前的文章中,分享了Matlab带线标记的图: 进一步,本期分享的是带阴影标记的图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号…...
专业运动耳机哪个牌子好、专业运动耳机推荐
在进行运动时,倾听音乐实际上是一种放松大脑、放松身体的小技巧。毕竟运动是一个耗费体力最多的活动,整个过程也往往令人感到乏味。如果有音乐作伴,你的运动就会变得更加轻松愉快。那么,哪种耳机适合运动呢?我正好对此…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
