codeforces#320ABCD

来源:互联网 发布:免费制作广告软件 编辑:程序博客网 时间:2024/05/17 02:27

题目
A

#include <cstdio>#include <iostream>using namespace std;int main(){    unsigned int n;    cin >> n;    int  cc = 0;    while(n){        if(n&1){            cc++;        }        n >>= 1;    }    cout << cc << endl;    return 0;}

B

#include <cstdio>#include <iostream>using namespace std;int d[805];int a[805][805];int x[1000005];int y[1000005];int main(){    int n;    cin >> n;    int m = 2*n;    for(int i = 1;i <= m;i++){        for(int j = 1;j < i;j++){            scanf("%d",&a[i][j]);            x[a[i][j]] = i;            y[a[i][j]] = j;        }    }    for(int i = 1000000;i >= 1;i--){        if(!d[x[i]] && !d[y[i]]){            d[x[i]] = y[i];            d[y[i]] = x[i];        }    }//  for(int i = 1;i <= m;i++){//      int mi = 0;//      if(!d[i]){//          for(int j = i+1;j <= m;j++){//              if(!d[j] && a[j][i] > mi){//                  mi = a[j][i];//                  d[i] = j; //              }//          }//          cout << i << mi << endl; //          d[d[i]] = i;//      }//  }//      for(int i = 1;i <= m;i++){        if(i!=1){            printf(" ");        }        printf("%d",d[i]);    }    cout << endl;    return 0;}

C

#include <cstdio>#include <iostream>#include <cmath>using namespace std;#define INF 1000000001.0int main(){    int a,b;    cin >> a >> b;    int x = a-b;    int y = a+b;    double ans = INF;    if(a > b){        int c =  floor(x/b);        if(c > 0){            if(c&1){                if(c > 1)                    ans = x*1.0/(c-1);              }            else{                ans = x * 1.0 /c;            }           }        c = floor(y/b);        if(c & 1){            if(c >= 3){                ans = min(ans,y*1.0/(c-1));            }        }        else{            if(y >= 2)            ans = min(ans,y*1.0/c);        }        if(ans < INF)            printf("%.11f\n",ans);        else{            printf("%.11f\n",-1.0);        }    }    else if(a == b){        printf("%d\n",a);    }    else{        cout << -1 << endl;    }    return 0;}#include <cstdio>#include <iostream>#include <cmath>using namespace std;#define INF 1000000001.0int main(){    int a,b;    cin >> a >> b;    int x = a-b;    int y = a+b;    double ans = INF;    if(a > b){        int c =  floor(x/b);        if(c > 0){            if(c&1){                if(c > 1)                    ans = x*1.0/(c-1);              }            else{                ans = x * 1.0 /c;            }           }        c = floor(y/b);        if(c & 1){            if(c >= 3){                ans = min(ans,y*1.0/(c-1));            }        }        else{            if(y >= 2)            ans = min(ans,y*1.0/c);        }        if(ans < INF)            printf("%.11f\n",ans);        else{            printf("%.11f\n",-1.0);        }    }    else if(a == b){        printf("%d\n",a);    }    else{        cout << -1 << endl;    }    return 0;}

D

#include <cstdio>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;LL l[200005];LL a[200005];LL r[200005];int main(){    int n,k,x;    cin >> n >>k >>x;    for(int i = 1;i <= n;i++){        scanf("%lld",&a[i]);    }    for(int i = 1;i <= n;i++){        l[i] = l[i-1]|a[i];    }    for(int i = n;i >= 1;i--){        r[i] = r[i+1]|a[i];    }    LL ans = 0;    for(int i = 1;i <= n;i++){        for(int j = 0;j < k;j++){            a[i]*= x;               }        ans = max(ans,a[i]|l[i-1]|r[i+1]);    }    cout<< ans << endl;    return 0;}
0 0
原创粉丝点击