首页 > 其他分享 >SMU Autumn 2024 Personal Round 1

SMU Autumn 2024 Personal Round 1

时间:2024-10-07 15:35:12浏览次数:1  
标签:2024 int SMU long Autumn -- while solve using

SMU Autumn 2024 Personal Round 1

前言

拉了,后面有空再补补。

A. Lex String

思路

排序后取最小,记录连续取了几个,不要超过 \(k\) 个即可。

代码

#include <bits/stdc++.h>

using namespace std;

using i64 = long long;

void solve() {

	int n, m, k;
	cin >> n >> m >> k;

	string a, b;
	cin >> a >> b;

	sort(a.begin(), a.end(), greater<>());
	sort(b.begin(), b.end(), greater<>());

	string c = "";
	int o = 0, p = 0;
	while (n && m) {
		if (a[n - 1] < b[m - 1] && o < k || p >= k) {
			c += a[n - 1];
			n --, o ++;
			p = 0;
		} else {
			c += b[m - 1];
			m --, p ++;
			o = 0;
		}
	}

	cout << c << '\n';

}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int t;
	cin >> t;
	while (t--) {
		solve();
	}

	return 0;
}

B - Creep

思路

前面用01或者10串填满,后面放剩下的。

代码

#include <bits/stdc++.h>

using namespace std;

using i64 = long long;

void solve() {

	int a[2];
	cin >> a[0] >> a[1];

	int n = a[0] + a[1] , k = a[0] > a[1] ? 0 : 1;
	string s = "01";
	for (int i = 0; i < n; i ++) {
		if (a[0] && a[1]) {
			cout << s[k];
			a[k] --;
			k ^= 1;
		} else {
			cout << s[k];
		}
	}

	cout << '\n';

}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int t;
	cin >> t;
	while (t--) {
		solve();
	}

	return 0;
}

C. Mystic Permutation

思路

数据小,直接暴搜即可。

代码

#include <bits/stdc++.h>

using namespace std;

using i64 = long long;

void solve() {

	int n;
	cin >> n;

	vector<int> p(n + 1);
	for (int i = 1; i <= n; i ++) {
		cin >> p[i];
	}

	bool ok = 0;
	vector<int> ans(n + 1), vis(n + 1);
	auto dfs = [&](auto && self, int pos)->void{
		if (ok) return;

		if (pos == n + 1) {
			ok = 1;
			for (int i = 1; i <= n; i ++) {
				cout << ans[i] << " \n"[i == n];
			}
			return ;
		}

		for (int i = 1; i <= n; i ++) {
			if (ok) break;
			if (i != p[pos] && !vis[i]) {
				ans[pos] = i;
				vis[i] = 1;
				self(self, pos + 1);
				vis[i] = 0;
			}
		}
	};

	dfs(dfs, 1);

	if (!ok)
		cout << "-1\n";
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int t;
	cin >> t;
	while (t--) {
		solve();
	}

	return 0;
}

标签:2024,int,SMU,long,Autumn,--,while,solve,using
From: https://www.cnblogs.com/Kescholar/p/18450143

相关文章

  • 2024.7.26 集训笔记
    单调栈给定一个长度为\(n\)的数列\(a\),对每个数字求出其右/左边第一个值大于等于它的数字的位置。考虑从左到右扫整个序列,维护一个栈,里面存放可能成为答案的数字,当遍历到一个新的数\(a_i\)的时候,可以发现栈中\(\leqa_i\)的数就再也不可能成为答案了,那就把它们弹掉,此时......
  • 20222427 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    1.实验内容(1)本周学习内容1.学习缓冲区溢出的基本原理。2.重温栈与堆的概念以及执行流程。3.逐步熟悉Linux系统对文件的处理流程,掌握基础的汇编与反汇编语言。(2)本周实验任务1.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。2.利用foo函数的Bof漏洞,构造一个攻......
  • 2024 Noip 做题记录(四)
    \(\text{ByDaiRuiChen007}\)Round#13-2024.10.1A.[ARC165D]CompareProblemLink题目大意判断是否存在一个长度为\(n\)的字符串\(S\),满足\(m\)个限制\((a,b,c,d)\),要求\(S[a,b]\)字典序小于\(S[c,d]\)。数据范围:\(n,m\le2000\)。思路分析从一些必要条......
  • 2024熵密杯wp
    第一部分:初始谜题这一部分算是开胃菜,形式也更像平时见到的CTF题目,三个题目都是python加密的,做出其中任意一个就可以进入第二部分,也就是一个更类似真实情境的大型密码渗透系统。但每个初始谜题都是有分数的,所以就算开了第二部分也当然要接着做。每个题目也都有前三血的加成,一血5%,二......
  • 2024高校网络安全管理运维赛 wp
    0x00前言本文是关于“2024高校网络安全管理运维赛”的详细题解,主要针对Web、Pwn、Re、Misc以及Algorithm等多方向题目的解题过程,包含但不限于钓鱼邮件识别、流量分析、SQLite文件解析、ssrf、xxe等等。如有错误,欢迎指正。0x01Misc签到给了一个gif,直接在线分帧得到synt{fvtava-dh......
  • 20241006
    BacktoSchool'24P1-Kicking按照题意模拟即可#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e5+5;intn,m,k;charc;vector<int>sum[2][N];vector<int>a[N];signedmain(){cin>>......
  • # 2024-2025-1 20241301 《计算机基础与程序设计》第二周学习总结
    这个作业属于哪个课程<2024-2025-1-计算机基础与程序设计>这个作业要求在哪里<2024-2025-1计算机基础与程序设计第一周作业>这个作业的目标<概括性地了解计算机系统,解决为什么要学习编程的问题>作业正文https://www.cnblogs.com/HonJo/p/18449597教材学习内......
  • 2024-2025-1计算机程序与设计第二周学习总结20241420姚金济
    <班级链接>(2024-2025-1-计算机基础与程序设计<作业要求链接>2024-2025-1计算机基础与程序设计第二周作业|作业正文|本博客链接教材学习内容总结(前者AI完成,后者自己完成,AI参考:kimi智能助手)计算机科学概论:由于文件内容较多,我将列出核心内容的概要:第1章全景图计算机系统:计算......
  • 中国农业大学公布2024级研究生新生大数据
    来源:中国农大......
  • 2024.10.6训练记录
    下午cfA到!B签到题,考场还是写挂了,今天码力差。挂在while动指针的时候没有判右边界,似。唐诗程度不亚于数组开小。C1猜出来结论是第一次出现需要按照一开始的顺序就能过。C2把一开始的排列映射到[1,n]。修改时用set动态维护每个数第一次出现的位置。把第一次出现位置的......