CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!)

B. AB Flipping

老规矩,自己要模拟一遍样例,发现样例还不够,就自己构造样例,这样做着做着就会有思路。

分析:假如现在有这样一个字符串 BBBAABABBAAA。会发现前三个和后三个一定是不会被操作的,因为不会满足si = 'A',si+1 = 'B'。然后自己模拟,会发现中间的所有位置一定会可以被操作。

#include<assert.h>
#include<cstdio>
#include<set>
#include<list>
#include<queue>
#include<math.h>
#include<stdlib.h>
#include<string>
#include<string.h>
#include <stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<sstream>
#include<stack>
#include <utility>
#include<map>
#include <vector>#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define inf 0x3f3f3f3f
//2147483647//#define int long long
//#include <bits/stdc++.h>
typedef long long ll;
#include<iostream>
using namespace std;const int N = 1e6 + 10;void solve() {int n; cin >> n;string s; cin >> s;int sz = s.size();int cnt = 0;for (int i = 0; i < sz; i++) {if (s[i] == 'B') cnt++;else break;}for (int i = sz - 1; i >= 0; i--) {if (s[i] == 'A') cnt++;else break;}//cout << "答案:";cout << max(0, n - 1 - cnt) << endl;
}signed main()
{int t; cin >> t;while (t--) {solve();}return 0;
}

C. Matching Arrays

Example

input

Copy

 

7

1 0

1

2

1 1

1

2

3 0

2 4 3

4 1 2

3 1

2 4 3

4 1 2

3 2

2 4 3

4 1 2

3 3

2 4 3

4 1 2

5 2

6 4 5 6 2

9 7 9 1 1

output

Copy

YES
2
NO
NO
YES
2 4 1
YES
4 1 2
NO
YES
1 9 9 7 1

分析:因为可以ai对应的bi是可以自己决定的,这代表原有的数组a,b的顺序不重要,只要在输出的时候知道ai对应的bi是什么即可。所以我们对a和b进行预排序,对a排降序,对b排升序。

我们贪心地想,如果1<=i<=x  && ai>bi,i>x && ai<=bi,那么就一定YES。反之就是NO。

这样的话ai对应的bi就可以找到了,那么如何输出呢?因为刚刚对a排序,我们现在要“反排序”,使a变回原来的样子,该怎么做?

将a定义成结构体,其中有index存每个元素的原下标,再定义一个cmp用于“反排序“就行。

int b[N];
struct Node {int index;int val_a;int val_b;}a[N];bool cmp1(Node e1, Node e2) {return e1.val_a < e2.val_a;
}
bool cmp2(Node e1, Node e2) {return e1.index < e2.index;
}void solve() {int n, x; cin >> n >> x;for (int i = 1; i <= n; i++) {cin >> a[i].val_a;a[i].index = i;}for (int i = 1; i <= n; i++) cin >> b[i];sort(a + 1, a + 1 + n, cmp1);sort(b + 1, b + 1 + n);int f = 1;for (int i = 1; i <= x; i++) {if (a[n - x + i].val_a <= b[i]) {f = 0;break;}else {a[n - x + i].val_b = b[i];}}for (int i = 1; i <= n-x; i++) {if (a[i].val_a > b[x + i]) {f = 0;break;}else {a[i].val_b = b[x + i];}}sort(a + 1, a + 1 + n, cmp2);//cout << "答案:";if (!f) cout << "NO" << endl;else {cout << "YES" << endl;//cout << "答案:";for (int i = 1; i <= n; i++) {if (i != 1) cout << " ";cout << a[i].val_b;}cout << endl;}}signed main() {int t; cin >> t;while (t--) {solve();}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/206378.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git-2

1.分离头指针情况下的注意事项 分离头指针指的是变更没有基于某个branch去做&#xff0c;所以当进行分支切换的时候&#xff0c;在分离头指针上产生的commit&#xff0c;很可能会被git当作垃圾清理掉&#xff0c;如果你认为是重要的内容&#xff0c;切记需要绑定分支 2.进一步…

人工智能基础_机器学习050_对比sigmoid函数和softmax函数的区别_两种分类器算法的区别---人工智能工作笔记0090

可以看到最上面是softmax的函数对吧,但是如果当k = 2 那么这个时候softmax的函数就可以退化为sigmoid函数,也就是 逻辑斯蒂回归了对吧 我们来看一下推导过程,可以看到上面是softmax的函数 可以看到k=2 表示,只有两个类别对吧,两个类别的分类不就是sigmoid函数嘛对吧,所以说 …

关闭vscode打开的本地服务器端口

vscode开了本地的一个端口“8443”当本地服务器端口&#xff0c;然后随手把VScode一关&#xff0c;后来继续做发现8443端口已经被占用了。   原来&#xff0c;即便关闭了编译器VScode&#xff0c;服务器依然是被node.exe运行着的。那这个端口怎么才能关掉呢&#xff1f;   …

vue3中toRef创建一个ref对象

为源响应式对象上的某个属性创建一个 ref对象, 二者内部操作的是同一个数据值, 更新时二者是同步的 区别ref: 拷贝了一份新的数据值单独操作, 更新时相互不影响 应用: 当要将 某个prop 的 ref 传递给复合函数时&#xff0c;toRef 很有用 父组件代码: <template><…

第十五届蓝桥杯(Web 应用开发)模拟赛 2 期-大学组(详细分析解答)

目录 1.相不相等 1.1 题目要求 1.2 题目分析 1.3 源代码 2.三行情书 2.1 题目要求 2.2 题目分析 2.3 源代码 3.电影院在线订票 3.1 题目要求 3.2 题目分析 3.3 源代码 4.老虎坤&#xff08;不然违规发不出来&#xff09; 4.1 题目要求 4.2 题目分析 4.3 源代码 …

Go语言网络爬虫工程经验分享:pholcus库演示抓取头条新闻的实例

网络爬虫是一种自动从互联网上获取数据的程序&#xff0c;它可以用于各种目的&#xff0c;如数据分析、信息检索、竞争情报等。网络爬虫的实现方式有很多&#xff0c;不同的编程语言和框架都有各自的优势和特点。在本文中&#xff0c;我将介绍一种使用Go语言和pholcus库的网络爬…

excel单元格内换行按什么快捷键

如果我们使用excel软件的时候&#xff0c;因为一些日常的操作太过繁琐想要简化自己的操作步骤的话&#xff0c;其实是有很多快捷方式在其中的。那么对excel单元格内换行按什么快捷键这个问题&#xff0c;据小编所知我们可以在表格中使用Alt Enter来进行换行。详细内容就来看下…

奇异值分解SVD(Singular Value Decomposition)

原理 奇异值分解是让机器从大量数据集中提取出关键信息的重要手段。&#xff08;矩阵中的泰勒公式&#xff0c;哈哈&#xff09; 思考&#xff1a;如果就矩阵的本质是线性变换而言的话&#xff0c;那A矩阵分解后是不是相当与先进行旋转→放缩→旋转呢&#xff1f; 求解奇异值的…

E云管家微信群聊机器人开发

请求URL&#xff1a; http://域名地址/modifyGroupRemark 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wId是String登录实例标识chatRo…

linux获得帮助_如何查看命令的用法、作用

Linux获得帮助 多层次的帮助&#xff1a; whatis command --help man and info /usr/share/doc/ Red Hat documentation 、Ubuntu documentation 软件项目网站 其它网站 搜索 whatis 使用数据库来显示命令的简短描述。 [rootlocalhost ~]# whatis rm rm (1) …

腾讯云双11活动最后一天,错过再等一年!

腾讯云双11活动已经进入尾声&#xff0c;距离活动结束仅剩最后一天&#xff0c;记得抓住这次上云好时机&#xff0c;错过这次&#xff0c;就要等到下一年才能享受到这样的优惠力度了&#xff01; 活动地址&#xff1a; 点此直达腾讯云双11活动主会场 活动详情&#xff1a; 1…

Linux中tar命令的几个高级用法

在Linux世界中&#xff0c;Tar命令是一把解密归档世界的魔法工具。无论是打包、压缩还是解压&#xff0c;Tar命令都能胜任。本文将生动地介绍Tar命令的基本用法&#xff0c;并深入探讨五个常用选项&#xff0c;帮助读者在Linux系统中灵活运用这个强大的工具。 一、命令概述 Ta…

【开源】基于Vue和SpringBoot的数字化社区网格管理系统

项目编号&#xff1a; S 042 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S042&#xff0c;文末获取源码。} 项目编号&#xff1a;S042&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、开发背景四、系统展示五、核心源码5…

在Pycharm中创建项目新环境,安装Pytorch

在python项目中&#xff0c;很多项目使用的各类包的版本是不一致的。所以我们可以对每个项目有专属于它的环境。所以这个文章就是教你如何创建新环境。 一、创建新环境 首先我们需要去官网下载conda。然后在Pycharm下面添加conda的可执行文件。 用conda创建新环境。 二、…

Unity之NetCode多人网络游戏联机对战教程(10)--玩家动画同步

文章目录 前言NetworkAnimation服务端权威客户端权威 前言 这次的动画同步与位置同步&#xff0c;可以说实现思路是一样的&#xff0c;代码相似度也非常高 NetworkAnimation 如果直接挂载这个脚本只有Host&#xff08;服务端&#xff09;才可以同步&#xff0c;Client是没有…

显示器校准软件BetterDisplay Pro mac中文版介绍

BetterDisplay Pro mac是一款显示器校准软件&#xff0c;可以帮助用户调整显示器的颜色和亮度&#xff0c;以获得更加真实、清晰和舒适的视觉体验。 BetterDisplay Pro mac软件特点 - 显示器校准&#xff1a;可以根据不同的需求和环境条件调整显示器的颜色、亮度和对比度等参数…

【Web】攻防世界 难度3 刷题记录(1)

目录 ①lottery ②ics-05 ③mfw ④simple_js ⑤fakebook 感觉自己对一些综合题的熟练度不太够&#xff0c;专项训练一下 ①lottery 抽奖赚钱&#xff0c;钱够9990000可买flag 随便输一串数字抓包&#xff0c;然后查看到一个post请求&#xff0c;api.php,题目里面有附件…

什么是AI PC:人工智能电脑?

大家好啊&#xff0c;我是董董灿。 今天在一个群聊里&#xff0c;聊到了关于 AI PC (人工智能电脑)的话题。 之前看到过关于 AI PC 的新闻&#xff0c;说的是联想集团董事长兼CEO杨元庆在一次演讲中提到了 AI PC 的概念&#xff0c;并且绘声绘色的描绘了AI PC 的发展前景。 下…

Gartner发布2024 年十大战略技术趋势

Gartner发布2024 年十大战略技术趋势 1. AI信任、风险和安全管理&#xff08;AI Trust, Risk and Security Management&#xff09;2.持续威胁暴露管理&#xff08;Continuous Threat Exposure Management&#xff09;3.可持续技术&#xff08;Sustainable Technology&#xff…

Golang开发之------ Beego框架

1.安装go&#xff08;配置环境变量&#xff09; 2.安装gorm&#xff08;Goland编辑器举例&#xff09;&#xff1a; go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct 3.初始化项目&#xff08;首先需要在工作目录新建bin文件夹&#xff0c;pkg文件…