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带线标记的图: 进一步,本期分享的是带阴影标记的图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号…...
专业运动耳机哪个牌子好、专业运动耳机推荐
在进行运动时,倾听音乐实际上是一种放松大脑、放松身体的小技巧。毕竟运动是一个耗费体力最多的活动,整个过程也往往令人感到乏味。如果有音乐作伴,你的运动就会变得更加轻松愉快。那么,哪种耳机适合运动呢?我正好对此…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...
