Codeforces Round #583 (Div.1+Div.2)

 ̄綄美尐妖づ 提交于 2019-11-29 07:01:06

不太友好的一场。

题目链接: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\n", ans);
36     return 0;
37 }
View Code

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\n", ans);
28     return 0;
29 }
View Code

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 }
View Code

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!