AtCoder Beginner Contest 395
https://atcoder.jp/contests/abc395 Signed-off-by: Frederick Chen <seventeen@ohdragonboi.cn>
This commit is contained in:
parent
ebb7f9ba04
commit
c2e6cadefa
37
atcoder/abc395/A_Strictly_Increasing.cpp
Normal file
37
atcoder/abc395/A_Strictly_Increasing.cpp
Normal 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;
|
||||
}
|
42
atcoder/abc395/B_Make_Target.cpp
Normal file
42
atcoder/abc395/B_Make_Target.cpp
Normal 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;
|
||||
}
|
49
atcoder/abc395/C_Shortest_Duplicate_Subarray.cpp
Normal file
49
atcoder/abc395/C_Shortest_Duplicate_Subarray.cpp
Normal 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;
|
||||
}
|
55
atcoder/abc395/D_Pigeon_Swap(WA).cpp
Normal file
55
atcoder/abc395/D_Pigeon_Swap(WA).cpp
Normal 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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user