首页 > 其他 > 详细

Codeforces Round #618 (Div. 2)

时间:2020-02-10 11:08:49      阅读:53      评论:0      收藏:0      [点我收藏+]

题目链接:https://codeforces.com/contest/1300


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 const int maxn = 101;
21 int n, a[maxn];
22 
23 int main() {
24     int t; scanf("%d", &t);
25     while (t--) {
26         int ans = 0, sum = 0;
27         scanf("%d", &n);
28         for (int i = 1; i <= n; i++) {
29             scanf("%d", &a[i]);
30             if (!a[i]) {
31                 a[i] = 1, ans++;
32             }
33             sum += a[i];
34         }
35         if (!sum) ans++;
36         printf("%d\n", ans);
37     }
38     return 0;
39 }
View Code

B:

白给

技术分享图片
 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, a[maxn];
22 
23 int main() {
24     int t; scanf("%d", &t);
25     while (t--) {
26         scanf("%d", &n);
27         n = n * 2;
28         for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
29         sort(a + 1, a + 1 + n);
30         printf("%d\n", a[n / 2 + 1] - a[n / 2]);
31     }
32     return 0;
33 }
View Code

C:

技术分享图片
 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 = 1e5 + 10;
21 int n, a[maxn];
22 
23 int main() {
24     scanf("%d", &n);
25     for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
26     for (int j = 30; ~j; j--) {
27         int cnt = 0, pos;
28         for (int i = 1; i <= n; i++)
29             if ((a[i] >> j) & 1) {
30                 cnt++;
31                 pos = i;
32             }
33         if (cnt == 1) {
34             printf("%d ", a[pos]);
35             for (int i = 1; i <= n; i++) {
36                 if (i != pos) printf("%d ", a[i]);
37             }
38             puts("");
39             return 0;
40         }
41     }
42     for (int i = 1; i <= n; i++) printf("%d ", a[i]);
43     puts("");
44     return 0;
45 }
View Code

E:

技术分享图片
 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 = 1e6 + 10;
21 int n, pos[maxn], p = 0;
22 ll a[maxn];
23 
24 int main() {
25     a[0] = 0;
26     scanf("%d", &n);
27     for (int i = 1; i <= n; i++) {
28         int x; scanf("%d", &x);
29         a[i] = a[i - 1] + x;
30     }
31     for (int i = 1; i <= n; i++) {
32         while (p && 1.0 * (a[pos[p]] - a[pos[p - 1]]) / (pos[p] - pos[p - 1]) - 1.0 * (a[i] - a[pos[p - 1]]) / (i - pos[p - 1]) > 1e-12)
33             p--;
34         pos[++p] = i;
35     }
36     for (int i = 1; i <= p; i++) {
37         double x = 1.0 * (a[pos[i]] - a[pos[i - 1]]) / (pos[i] - pos[i - 1]);
38         for (int j = pos[i - 1]; j < pos[i]; j++) printf("%.10f\n", x);
39     }
40     return 0;
41 }
View Code

 

Codeforces Round #618 (Div. 2)

原文:https://www.cnblogs.com/JHSeng/p/12289951.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!