首页 > 其他 > 详细

Codeforces Round #636 (Div. 3) A-D

时间:2020-04-23 20:08:28      阅读:71      评论:0      收藏:0      [点我收藏+]

A

一个等比数列求和的变形

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int mod = 1e9+7;
ll a[110];
int main()
{
    int t;
    cin >> t;
    a[0]=1;
    for(int i=1;i<=68;i++)
    {
        a[i]=a[i-1]*2;
    }
    while(t--)
    {
        int n;
        cin >> n;
        for(int i=2;i<=68;i++)
        {
            if(n%(a[i]-1)==0)
            {
                cout<< n/(a[i]-1)<<endl;
                break;
            }
        }
    }
    return 0;
}

B

只要这个数可以整除4,就可以,对应的奇数都比对应偶数减一,最后一个奇数加回来就可以

技术分享图片
 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 typedef  long long ll;
 5 
 6 int main()
 7 {
 8     int t;
 9     cin >> t;
10     while(t--)
11     {
12         ll n;
13         scanf("%lld",&n);
14         ll m = n/2;
15         if(m%2)
16         {
17             cout<<"NO"<<endl;
18             continue;
19         }
20         else{
21             cout<<"YES"<<endl;
22             for(int i=2;i<=n;i+=2)
23             {
24                 printf("%d",i);
25                 if(i!=n)printf(" ");
26             }
27             for(int i=1;i<n-1;i+=2)
28             {
29                  printf(" %d",i);
30             }
31             printf(" %d",n-1+m);
32             cout<<endl;
33         }
34     }
35     return 0;
36 }
View Code

C

直接遍历一遍就出答案了

技术分享图片
 1 #include  <bits/stdc++.h>
 2 
 3 using namespace std;
 4 typedef long long ll;
 5 const int N = 2e5+10;
 6 ll a[N];
 7 ll b[N];
 8 int main()
 9 {
10     int t;
11     cin >> t;
12     while(t--)
13     {
14         int n;
15         scanf("%d",&n);
16         for(int i=1;i<=n;i++)
17         {
18             scanf("%lld",&a[i]);
19             b[i]=-1e18;
20         }
21          b[1] = a[1];
22          int flag=1,cun=1;
23         for(int i=2;i<=n;i++)
24         {
25             if(b[cun]*a[i]>0)
26             {
27                 b[cun] = max(b[cun],a[i]);
28             }
29             else{
30                 cun++;
31                 b[cun] = a[i];
32             }
33         }
34         ll sum =0;
35         for(int i=1;i<=cun;i++)
36         {
37             sum+=b[i];
38         }
39         cout<< sum<<endl;
40     }
41     return 0;
42 }
View Code

D

待更新。。。。。。

Codeforces Round #636 (Div. 3) A-D

原文:https://www.cnblogs.com/wsxmmfby-jy/p/12762996.html

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