B. Swap and Reverse

news2024/10/7 16:22:14

Problem - B - Codeforces

思路:这个题想复杂了,对于第一个条件,我们发现其实就是可以对所有的奇数位置之间任意交换,所有的偶数位置之间任意交换,对于第二个条件来说,如果k为奇数是没有意义的,因为交换完之后的位置与交换之前的位置的奇偶性相同,没有意义,如果k为偶数,那么我们发现可以交换相邻的两个,比如我们将1,k交换一下,将2到k+1交换一下,就能够吧1,2交换,并且对于所有的奇数都能够变到1,所有的偶数都能够变到2(通过第一个条件),那么我们就能够吧任意的两个奇偶不同的进行交换,所有就相当于能够对整个序列排序了

// Problem: B. Swap and Reverse
// Contest: Codeforces - Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)
// URL: https://codeforces.com/contest/1864/problem/B
// Memory Limit: 256 MB
// Time Limit: 1000 ms

#include<bits/stdc++.h>
#include<sstream>
#include<cassert>
#define fi first
#define se second
#define i128 __int128
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> PII;
const double eps=1e-7;
const int N=1e5+7 ,M=5e5+7, INF=0x3f3f3f3f,mod=1e9+7,mod1=998244353;
const long long int llINF=0x3f3f3f3f3f3f3f3f;
inline ll read() {ll x=0,f=1;char c=getchar();while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {x=(ll)x*10+c-'0';c=getchar();} return x*f;}
inline void write(ll x) {if(x < 0) {putchar('-'); x = -x;}if(x >= 10) write(x / 10);putchar(x % 10 + '0');}
inline void write(ll x,char ch) {write(x);putchar(ch);}
void stin() {freopen("in_put.txt","r",stdin);freopen("my_out_put.txt","w",stdout);}
bool cmp0(int a,int b) {return a>b;}
template<typename T> T gcd(T a,T b) {return b==0?a:gcd(b,a%b);}
template<typename T> T lcm(T a,T b) {return a*b/gcd(a,b);}
void hack() {printf("\n----------------------------------\n");}

int T,hackT;
int n,m,k;
char str[N];
struct tree{
	struct Node{
		int l,r;
		int sum;
		int add;
	};
	vector<Node> tr;
	
	void init(vector<Node> &tr) {
		vector<Node> vis(N*4);
		tr=vis;
	}
	
	void pushup(int u) {
		tr[u].sum=tr[u<<1].sum+tr[u<<1|1].sum;
	}
	
	void pushdown(int u) {
		if(tr[u].add!=0) {
			tr[u<<1].sum+=(tr[u<<1].r-tr[u<<1].l+1)*tr[u].add;
			tr[u<<1|1].sum+=(tr[u<<1|1].r-tr[u<<1|1].l+1)*tr[u].add;
			tr[u<<1].add+=tr[u].add;
			tr[u<<1|1].add+=tr[u].add;
			tr[u].add=0;
		}
	}
	
	void build(int u,int l,int r) {
		if(l==r) tr[u]={l,r,0,0};
		else {
			tr[u]={l,r};
			int mid=tr[u].l+tr[u].r>>1;
			build(u<<1,l,mid),build(u<<1|1,mid+1,r);
			
			pushup(u);
		}
	}
	
	void modify(int u,int l,int r,int c) {
		if(tr[u].l>=l&&tr[u].r<=r) {
			tr[u].sum+=(tr[u].r-tr[u].l+1)*c;
			tr[u].add+=c;
		}else {
			pushdown(u);
			int mid=tr[u].l+tr[u].r>>1;
			if(l<=mid) modify(u<<1,l,r,c);
			if(r>mid) modify(u<<1|1,l,r,c);
			
			pushup(u);
		}
	}
	
	int query(int u,int x) {
		if(tr[u].l==x&&tr[u].r==x) return tr[u].sum;
		else {
			pushdown(u);
			
			int mid=tr[u].l+tr[u].r>>1;
			if(x<=mid) return query(u<<1,x);
			else return query(u<<1|1,x);
		}
	}
};

void solve() {
	n=read(),k=read();
	
	vector<char> a,b;
	scanf("%s",str+1);
	
	for(int i=1;i<=n;i++) {
		if(i%2==1) a.push_back(str[i]);
		else b.push_back(str[i]);
	}
	
	sort(a.begin(),a.end());
	sort(b.begin(),b.end());
	vector<char> ans;
	
	int la=0,lb=0;
	for(int i=1;i<=n;i++) {
		if(i%2==1) ans.push_back(a[la++]);
		else ans.push_back(b[lb++]);
	}

	if(k%2==0) sort(ans.begin(),ans.end());
	
	for(auto &it:ans) printf("%c",it);
	printf("\n");
}   

int main() {
    // init();
    // stin();
	// ios::sync_with_stdio(false); 

    scanf("%d",&T);
    // T=1; 
    while(T--) hackT++,solve();
    
    return 0;       
}          

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年12月 C/C++(七级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;走迷宫 一个迷宫由R行C列格子组成&#xff0c;有的格子里有障碍物&#xff0c;不能走&#xff1b;有的格子是空地&#xff0c;可以走。 给定一个迷宫&#xff0c;求从左上角走到右下角最少需要走多少步…

跑得快的快递和跑得慢的快递差在哪些环节?

快递速度是现代物流的核心竞争力之一&#xff0c;对于电商行业和消费者而言&#xff0c;快捷、高效的快递服务意味着更好的购物体验和更高的客户满意度。大家都有过这样的经历&#xff1a;有时候我们选择了跑得快的快递公司&#xff0c;包裹几乎可以说是眨眼间就到达了目的地&a…

​SIGIR 2023 | 用于序列推荐的多兴趣预训练框架

©PaperWeekly 原创 作者 | 唐作立 单位 | 武汉大学硕士生 研究方向 | 推荐系统 引言 在推荐系统中&#xff0c;由于用户具备多种兴趣的特点&#xff0c;使用多兴趣学习&#xff08;Multi-interest Learning&#xff09;对用户进行建模能够带来显著的性能提升&#xff0c;…

【2023集创赛】加速科技杯二等奖作品:基于ATE的电源芯片测试设计与性能分析

本文为2023年第七届全国大学生集成电路创新创业大赛&#xff08;“集创赛”&#xff09;加速科技杯二等奖作品分享&#xff0c;参加极术社区的【有奖征集】分享你的2023集创赛作品&#xff0c;秀出作品风采&#xff0c;分享2023集创赛作品扩大影响力&#xff0c;更有丰富电子礼…

自然语言处理 微调大模型ChatGLM-6B

自然语言处理 微调大模型ChatGLM-6B 1、GLM设计原理2、大模型微调原理1、P-tuning v2方案2、LORA方案 1、GLM设计原理 bert的主要任务是随机的去除掉某个单词&#xff0c;使用上下文将其预测出来&#xff08;相当于完形填空任务&#xff09;&#xff1b; GPT的主要任务是根据前…

idea配置gitLab

前言&#xff1a;网上有很多类似的文章&#xff0c;但描述不够详细 步骤1&#xff1a;安装git 如果安装成功再次点击TEST按钮展示如下&#xff1a;git版本 步骤2&#xff1a;idea配置gitlab 查看当前项目管理的 远程仓库再git的地址&#xff0c;该地址可是gitLab的&#xff0…

基于sonar 的C#静态代码扫描使用总结

1.原理简介 C#语言接入Sonar代码静态扫描相较于Java、Python来说&#xff0c;相对麻烦一些。Sonar检测C#代码时需要预先编译&#xff0c;而且C#代码必须用MSbuid进行编译&#xff0c;如果需要使用SonarQube对C#进行代码质量分析&#xff0c;则需要Sonar-Scanner-MSBuild和MSBu…

WorldCoin 运营数据,业务安全分析

WorldCoin 运营数据&#xff0c;业务安全分析 Worldcoin 的白皮书中声明&#xff0c;Worldcoin 旨在构建一个连接全球人类的新型数字经济系统&#xff0c;由 OpenAI 创始人 Sam Altman 于 2020 年发起。通过区块链技术在 Web3 世界中实现更加公平、开放和包容的经济体系&#…

PHP 影院售票管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页代码

一、源码特点 PHP 影院售票管理系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 https://download.csdn.net/download/qq_41221322/88297676 PHP 影院售票管理系统Dr…

OpenCV(十九):模板匹配

1.模板匹配&#xff1a; OpenCV提供了一个模板匹配函数&#xff0c;用于在图像中寻找给定模板的匹配位置。 2.图像模板匹配函数matchTemplate void matchTemplate( InputArray image, InputArray templ, OutputArray result, int method, InputArray mask noArray() ); image…

小程序上传文件

wx.chooseImage({success (res) {const tempFilePaths res.tempFilePathswx.uploadFile({url: https://example.weixin.qq.com/upload, //仅为示例&#xff0c;非真实的接口地址filePath: tempFilePaths[0],name: file,formData: {user: test},success (res){const data res.…

GEE:空气污染指数 (API)计算

作者:CSDN @ _养乐多_ 本文记录了基于以下公式计算的空气污染指数代码: API = 0:7(NO2)+ 0:15(SO2)+ 0:1(O3)+ 0:05(CO) 计算空气污染指数 (API)。 文章目录 一、完整代码二、完整连接一、完整代码 var roi = table;var dataset_NO2 = ee.ImageCollection(

Python读取xls文件

Python读取xls文件 1、这里面有个问题在读取xlsx的时候有点问题&#xff0c;汇报异常&#xff0c;要把文件名字改成xls import xlrd import os def getdata():file_path os.path.dirname(os.path.abspath(__file__))base_path os.path.join(file_path, 1.xls)book xlrd.op…

Yolov5改进算法之添加Res2Net模块

目录 1. Res2Net介绍 1.1 Res2Net的背景和动机 1.2 Res2Net的基本概念 2. YOLOV5添加Res2Net模块 Res2Net&#xff08;Residual Resolution Network&#xff09;是一种用于图像处理和计算机视觉任务的深度卷积神经网络架构。它旨在解决传统的ResNet&#xff08;Residual Ne…

在职博士|中国社科院-英国斯特灵创新与领导力管理博士之中方课程《变革领导力》

在职博士|中国社科院-英国斯特灵创新与领导力管理博士之中方课程《变革领导力》 在职博士|中国社科院-英国斯特灵创新与领导力管理博士之中方课程《变革领导力》 本次课程的主讲老师是现任中国社会科学院人口与劳动经济研究所研究员、人力资源研究室主任&#xff0c;中国社会科…

虹科产线实时数采检测方案——高速采集助力智能化升级

01 产线数采检测相关技术背景 1.1 典型场景 对于产线数采检测&#xff0c;让我们从典型的工厂场景开始介绍。 每个工位都有上位机监控下方的PLC控制器。指令、执行单元和作用对象的状态通过内置传感器进行采集和测量&#xff0c;反馈给PLC实现闭环控制。 工业4.0和智能制…

快速学会git版本管理——上传gitee仓库

首先在gitee右上角有一个新建仓库 创建之后打开自己想要上传的文件 右键打开 Git Bash Here 接下来会弹出git的窗口 首先先初始化仓库 用git命令 git init 然后用git add . 上传所有文件上传到暂存区(上一篇文章说过add是单个文件&#xff0c;add . 是所有文件) 没有显示错误 …

内存泄漏分析

一、什么是内存泄漏&#xff1f; 内存泄漏是指在程序运行过程中&#xff0c;分配给程序的内存空间在不需要时没有被正确释放或回收的情况。 二、Java层内存泄漏。 Android应用程序中Java层常见的内存泄漏情况&#xff1a; Context引用泄漏&#xff1a;Android中的Context是…

【Flutter】Flutter 使用 flutter_rating_bar 实现评分条指示器

【Flutter】Flutter 使用 flutter_rating_bar 实现评分条指示器 文章目录 一、前言二、简介三、安装和基本使用四、实际业务中的用法五、完整示例六、总结 一、前言 大家好&#xff0c;我是小雨青年&#xff0c;很高兴与大家分享 Flutter 中的一个非常实用的组件&#xff1a;f…

马斯克谈 Facebook 不开源算法

导读虽然马斯克与扎克伯格的 “八角笼中” 之约没有达成&#xff0c;但很显然&#xff0c;马斯克并不打算就此罢休。既然没能在线下大战一场&#xff0c;那自然不会错过在线上 “出招” 的机会。 他转发了一则推文&#xff0c;并说道&#xff1a;“在地球上&#xff0c;Facebo…