Created
June 8, 2021 11:23
-
-
Save 5teven1in/3023df5fd25effd145bbaed7782039d7 to your computer and use it in GitHub Desktop.
TOI202105 新手組
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std; | |
void print(const string &s, int start, int end, char dir) | |
{ | |
if (dir == '+') | |
{ | |
for (int i = start + 1; i < end; i++) | |
cout << s[i]; | |
} | |
else if (dir == '-') | |
{ | |
for (int i = end - 1; i > start; i--) | |
cout << s[i]; | |
} | |
} | |
int main() | |
{ | |
string s; | |
cin >> s; | |
vector<int> v_idx; | |
for (int i = 0; i < s.length(); i++) | |
{ | |
if (s[i] == '+' || s[i] == '-') | |
v_idx.push_back(i); | |
} | |
if (v_idx.empty()) | |
{ | |
cout << s; | |
return 0; | |
} | |
int idx = v_idx[0]; | |
char dir = '+'; | |
print(s, -1, idx, dir); | |
dir = s[idx]; | |
for (int i = 1; i < v_idx.size(); i++) | |
{ | |
print(s, idx, v_idx[i], dir); | |
idx = v_idx[i]; | |
dir = s[idx]; | |
} | |
if (idx != s.length() - 1) | |
print(s, idx, s.length(), dir); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std; | |
typedef pair<char, int> PCI; | |
bool cmp(const PCI &a, const PCI &b) | |
{ | |
if (a.second == b.second) | |
return a.first < b.first; | |
return a.second > b.second; | |
} | |
int main() | |
{ | |
string s; | |
cin >> s; | |
map<char, int> char_cnt; | |
for (auto &x : s) | |
{ | |
char_cnt[x]++; | |
} | |
vector<PCI> ans(char_cnt.begin(), char_cnt.end()); | |
sort(ans.begin(), ans.end(), cmp); | |
for (auto &x : ans) | |
{ | |
cout << x.first; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std; | |
int dx[] = {-1, 1, 0, 0}; | |
int dy[] = {0, 0, -1, 1}; | |
int main() | |
{ | |
int R, C; | |
cin >> R >> C; | |
int area[R + 5][C + 5] = {0}; | |
int ans[R + 5][C + 5] = {0}; | |
for (int i = 1; i <= R; i++) | |
{ | |
for (int j = 1; j <= C; j++) | |
cin >> area[i][j]; | |
} | |
for (int i = 0; i <= R + 1; i++) | |
{ | |
area[i][0] = 0; | |
area[i][C + 1] = 0; | |
} | |
for (int j = 0; j <= C + 1; j++) | |
{ | |
area[0][j] = 0; | |
area[R + 1][j] = 0; | |
} | |
memcpy(ans, area, sizeof(ans)); | |
for (int i = 1; i <= R; i++) | |
{ | |
for (int j = 1; j <= C; j++) | |
{ | |
if (area[i][j] != 0) | |
continue; | |
int z_cnt = 0; | |
int sum = 0; | |
for (int k = 0; k < 4; k++) | |
{ | |
int n_x = i + dx[k]; | |
int n_y = j + dy[k]; | |
sum += area[n_x][n_y]; | |
if (!area[n_x][n_y]) | |
z_cnt++; | |
} | |
ans[i][j] = (z_cnt == 4) ? 0 : sum / (4 - z_cnt); | |
} | |
} | |
for (int i = 1; i <= R; i++) | |
{ | |
for (int j = 1; j <= C; j++) | |
{ | |
cout << ans[i][j] << " "; | |
} | |
cout << endl; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment