AtCoder Beginner Contest 395

https://atcoder.jp/contests/abc395

Signed-off-by: Frederick Chen <seventeen@ohdragonboi.cn>
This commit is contained in:
Frederick Chen 2025-04-19 10:11:24 +08:00
parent ebb7f9ba04
commit c2e6cadefa
4 changed files with 183 additions and 0 deletions

View File

@ -0,0 +1,37 @@
#include <bits/stdc++.h>
#define lo long long
#define INF INT_MAX
#define LLM LONG_LONG_MAX
#define endl "\n"
using namespace std;
/*
toothless. #17
@fredcss_dev
*/
int n, a[1000005], b[1000005];
bool f[100000005];
signed main()
{
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
b[i] = a[i];
if (!f[a[i]]) f[a[i]] = 1;
else {
cout << "No";
return 0;
}
}
sort(a + 1, a + 1 + n);
for (int i = 1; i <= n; i++) {
if (a[i] != b[i]) {
cout << "No";
return 0;
}
}
cout << "Yes";
return 0;
}

View File

@ -0,0 +1,42 @@
#include <bits/stdc++.h>
#define lo long long
#define InF InT_MAX
#define LLM LOnG_LOnG_MAX
#define endl "\n"
using namespace std;
/*
toothless. #17
@fredcss_dev
*/
int n;
void wczffl_503()
{
vector<vector<char>> grid(n, vector<char>(n, '.'));
for (int i = 1; i <= n; ++i) {
int j = n + 1 - i;
if (i > j) continue;
char fillChar = (i % 2 == 1) ? '#' : '.';
for (int k = i - 1; k < j; ++k) {
for (int l = i - 1; l < j; ++l) {
grid[k][l] = fillChar;
}
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cout << grid[i][j];
}
cout << endl;
}
}
signed main() {
cin >> n;
wczffl_503();
return 0;
}

View File

@ -0,0 +1,49 @@
#include <bits/stdc++.h>
#define lo long long
#define INF INT_MAX
#define LLM LONG_LONG_MAX
#define endl "\n"
using namespace std;
/*
toothless. #17
@fredcss_dev
*/
int wczffl_503(int N, vector<int>& A) {
for (int i = 0; i < N - 1; ++i) {
if (A[i] == A[i + 1]) {
return 2;
}
}
unordered_map<int, vector<int>> pos;
for (int i = 0; i < N; ++i) {
pos[A[i]].push_back(i);
}
int mn = INT_MAX;
for (const auto& entry : pos) {
const vector<int>& vt = entry.second;
if (vt.size() < 2) continue;
for (size_t i = 0; i < vt.size() - 1; ++i) {
int now = vt[i + 1] - vt[i] + 1;
if (now < mn) {
mn = now;
}
}
}
return (mn != INT_MAX) ? mn : -1;
}
int N;
signed main() {
cin >> N;
vector<int> A(N);
for (int i = 0; i < N; ++i) {
cin >> A[i];
}
int res = wczffl_503(N, A);
cout << res;
return 0;
}

View File

@ -0,0 +1,55 @@
// 这个代码尚未正确,仅作参考价值
#include <bits/stdc++.h>
#define lo long long
#define INF INT_MAX
#define LLM LONG_LONG_MAX
#define endl "\n"
using namespace std;
/*
toothless. #17
@fredcss_dev
*/
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int N, Q;
cin >> N >> Q;
vector<int> pigeon_to_nest(N + 1);
vector<unordered_set<int>> nest_to_pigeons(N + 1);
for (int i = 1; i <= N; ++i) {
pigeon_to_nest[i] = i;
nest_to_pigeons[i].insert(i);
}
for (int q = 0; q < Q; ++q) {
int type;
cin >> type;
if (type == 1) {
int a, b;
cin >> a >> b;
int current_nest = pigeon_to_nest[a];
nest_to_pigeons[current_nest].erase(a);
pigeon_to_nest[a] = b;
nest_to_pigeons[b].insert(a);
} else if (type == 2) {
int a, b;
cin >> a >> b;
swap(nest_to_pigeons[a], nest_to_pigeons[b]);
for (int pigeon : nest_to_pigeons[a]) {
pigeon_to_nest[pigeon] = a;
}
for (int pigeon : nest_to_pigeons[b]) {
pigeon_to_nest[pigeon] = b;
}
} else if (type == 3) {
int a;
cin >> a;
cout << pigeon_to_nest[a] << endl;
}
}
return 0;
}