不太友好的一场。
题目链接:https://codeforces.com/contest/1214
A:
想了很久优美做法,发现还不如直接一发暴力正确。
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 int n, d, e; 21 22 int main() { 23 scanf("%d%d%d", &n, &d, &e); 24 int dollarUnit = d, euroUnit = e * 5, ans = n; 25 for (int numOfDollar = 0; numOfDollar <= n / dollarUnit; numOfDollar++) { 26 int remainRubles = n - numOfDollar * dollarUnit; 27 remainRubles -= remainRubles / euroUnit * euroUnit; 28 ans = min(ans, remainRubles); 29 } 30 for (int numOfEuro = 0; numOfEuro <= n / euroUnit; numOfEuro += 5) { 31 int remainRubles = n - numOfEuro * euroUnit; 32 remainRubles -= remainRubles / dollarUnit * dollarUnit; 33 ans = min(ans, remainRubles); 34 } 35 printf("%d ", ans); 36 return 0; 37 }
B:
比A简单多了的傻题。
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 int b, g, n; 21 22 int main() { 23 scanf("%d%d%d", &b, &g, &n); 24 ll ans = 0; 25 for (int i = 0; i <= b; i++) 26 if (n - i >= 0 && n - i <= g) ans++; 27 printf("%lld ", ans); 28 return 0; 29 }
C:
check一次看看是否合法即可。
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 const int maxn = 2e5 + 10; 21 int n; 22 char s[maxn]; 23 24 int main() { 25 scanf("%d", &n); 26 scanf("%s", s + 1); 27 if (n & 1) return puts("No"), 0; 28 stack<int>st; 29 while (!st.empty()) st.pop(); 30 for (int i = 1; i <= n; i++) { 31 if (s[i] == '(') st.push(0); 32 if (s[i] == ')') { 33 if (!st.empty() && st.top() == 0) st.pop(); 34 else st.push(1); 35 } 36 } 37 if (st.empty()) return puts("Yes"), 0; 38 else { 39 if ((int)st.size() != 2) return puts("No"), 0; 40 int tmp1 = st.top(), tmp2; 41 st.pop(); 42 tmp2 = st.top(); 43 if (tmp1 != tmp2) return puts("Yes"), 0; 44 else return puts("No"), 0; 45 } 46 return 0; 47 }
D:
大模拟。(跑了
E:
SB构造题。
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 const int maxn = 2e5 + 10; 21 22 pair<int, int>a[maxn]; 23 vector<int>s; 24 int n; 25 26 int main() { 27 scanf("%d", &n); 28 for (int i = 1; i <= n; i++) 29 scanf("%d", &a[i].first), a[i].second = 2 * i - 1; 30 sort(a + 1, a + n + 1); 31 reverse(a + 1, a + n + 1); 32 s.resize(1); 33 for (int i = 1; i <= n; i++) s.push_back(a[i].second); 34 for (int i = 1; i <= n - 1; i++) printf("%d %d ", a[i].second, a[i + 1].second); 35 for (int i = 1; i <= n; i++) { 36 int j = i + a[i].first - 1; 37 printf("%d %d ", a[i].second + 1, s[j]); 38 if (j == (int)s.size() - 1) s.push_back(a[i].second + 1); 39 } 40 return 0; 41 }