mirror of
https://git.sb/baoshuo/OI-codes.git
synced 2024-12-25 17:32:01 +00:00
第三届“图灵杯”趣味网络邀请赛 (中级)
This commit is contained in:
parent
66dedd2b6f
commit
8ba6ad7ebc
26
XJOI/contest/21med/A/A.cpp
Normal file
26
XJOI/contest/21med/A/A.cpp
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int n, p;
|
||||||
|
string s;
|
||||||
|
stack<pair<char, int>> st;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
cin >> n >> p >> s;
|
||||||
|
s = ' ' + s;
|
||||||
|
for (int i = 1; i < s.size(); i++) {
|
||||||
|
if (s[i] == '{') {
|
||||||
|
st.push(make_pair(s[i], i));
|
||||||
|
} else if (st.top().second == p) {
|
||||||
|
cout << i << endl;
|
||||||
|
exit(0);
|
||||||
|
} else if (i == p) {
|
||||||
|
cout << st.top().second << endl;
|
||||||
|
exit(0);
|
||||||
|
} else {
|
||||||
|
st.pop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
52
XJOI/contest/21med/B/B.cpp
Normal file
52
XJOI/contest/21med/B/B.cpp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int t, a, cnt, prime[100005];
|
||||||
|
bool flag, is_prime[1000005];
|
||||||
|
|
||||||
|
int eratosthenes(int n) {
|
||||||
|
int p = 0;
|
||||||
|
for (int i = 0; i <= n; i++) is_prime[i] = 1;
|
||||||
|
is_prime[0] = is_prime[1] = 0;
|
||||||
|
for (int i = 2; i <= n; i++) {
|
||||||
|
if (is_prime[i]) {
|
||||||
|
prime[p++] = i;
|
||||||
|
if (1ll * i * i <= n) {
|
||||||
|
for (int j = i * i; j <= n; j += i) {
|
||||||
|
is_prime[j] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
long long binpow(long long a, long long b, long long m) {
|
||||||
|
a %= m;
|
||||||
|
long long res = 1;
|
||||||
|
while (b > 0) {
|
||||||
|
if (b & 1) res = res * a % m;
|
||||||
|
a = a * a % m;
|
||||||
|
b >>= 1;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
cin >> t;
|
||||||
|
cnt = eratosthenes(1000000);
|
||||||
|
while (t--) {
|
||||||
|
flag = false;
|
||||||
|
cin >> a;
|
||||||
|
for (int i = 0; i < cnt; i++) {
|
||||||
|
if (binpow(a, prime[i], 10) % 10 == binpow(prime[i], a, 10) % 10) {
|
||||||
|
cout << prime[i] << endl;
|
||||||
|
flag = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!flag) cout << -1 << endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
33
XJOI/contest/21med/C/C.cpp
Normal file
33
XJOI/contest/21med/C/C.cpp
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int n;
|
||||||
|
long long ans, cnt, x;
|
||||||
|
pair<long long, long long> q[300005];
|
||||||
|
|
||||||
|
bool cmp(pair<long long, long long> a, pair<long long, long long> b) {
|
||||||
|
return (a.first - b.first) * (a.second + b.second) > (a.first + b.first) * (a.second - b.second);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
cin >> n;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
cin >> q[i].first >> q[i].second;
|
||||||
|
}
|
||||||
|
sort(q, q + n, cmp);
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
cnt += abs(2 * q[i].second * x + q[i].second * q[i].first);
|
||||||
|
x += q[i].first;
|
||||||
|
}
|
||||||
|
ans = max(ans, cnt);
|
||||||
|
x = 0;
|
||||||
|
cnt = 0;
|
||||||
|
for (int i = n - 1; i >= 0; i--) {
|
||||||
|
cnt += abs(2 * q[i].second * x + q[i].second * q[i].first);
|
||||||
|
x += q[i].first;
|
||||||
|
}
|
||||||
|
ans = max(ans, cnt);
|
||||||
|
cout << ans << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user