Welcome To Ke_scholar's|

Ke_scholar

园龄:2年2个月粉丝:30关注:10

2024-10-07 15:29阅读: 11评论: 0推荐: 0

SMU Autumn 2024 Personal Round 1

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;
}

本文作者:Ke_scholar

本文链接:https://www.cnblogs.com/Kescholar/p/18450143

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ke_scholar  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起