zoukankan      html  css  js  c++  java
  • wenbao与合肥网络赛

    啦啦啦。。。只是签到题而已

    异或密码

    http://acm.hdu.edu.cn/showproblem.php?pid=5968

     1 #include <iostream>
     2 #include <string.h>
     3 #include <stdio.h>
     4 using namespace std;
     5 int n, t, m, a[105], b[2050], x;
     6 void lala(){
     7     for(int i = 2; i <= n; i++){
     8         int sum = 0;
     9         for(int j = 0; j < n; j++){
    10             if(j < i-1){
    11                 sum ^= a[j];
    12             }else if(j == i-1){
    13                 sum ^= a[j];
    14                 b[sum] = i;
    15             }else{
    16                 sum = sum ^a[j-i]^a[j];
    17                 b[sum] = i;
    18             }
    19         }
    20     }
    21 }
    22 int main(){
    23     scanf("%d", &t);
    24     while(t--){
    25         scanf("%d", &n);
    26         for(int i = 0; i < n; i++){
    27             scanf("%d", &a[i]);
    28             b[a[i]] = 1;
    29         }
    30         lala();
    31         scanf("%d", &m);
    32         for(int j = 0; j < m; j++){
    33             scanf("%d", &x);
    34             for(int i = 0; ; i++){
    35                 if(x+i < 2050 && b[x+i] && x-i >= 0 && b[x-i]) {
    36                     printf("%d
    ", max(b[x+i], b[x-i]));
    37                     break;
    38                 }
    39                 if(x+i < 2050 && b[x+i]){
    40                     printf("%d
    ", b[x+i]);
    41                     break;
    42                 }
    43                 if(x-i >= 0 && b[x-i]){
    44                     printf("%d
    ", b[x-i]);
    45                     break;
    46                 }
    47             }
    48         }
    49         printf("
    ");
    50         memset(b, 0, sizeof(b));
    51     }
    52     return 0;
    53 }

    最大位或

    http://acm.hdu.edu.cn/showproblem.php?pid=5969

     1 #include <iostream>
     2 #include <string.h>
     3 #include <cmath>
     4 #include <stdio.h>
     5 using namespace std;
     6 #define ll long long
     7 int n, flag;
     8 ll l, r, sum;
     9 int a[66], b[66];
    10 int main(){
    11     scanf("%d", &n);
    12     while(n--){
    13         scanf("%lld %lld", &l, &r);
    14         if(l == r) printf("%lld
    ", l);
    15         else{
    16             memset(a, 0, sizeof(a));
    17             memset(b, 0, sizeof(b));
    18             int i = 0, j = 0;
    19             sum = 0;
    20             while(l){
    21                 a[i] = l%2, i++;
    22                 l >>= 1;
    23             }
    24             while(r){
    25                 b[j] = r%2, j++;
    26                 r >>= 1;
    27             }
    28             int len = max(i, j);
    29             for(int k = len - 1; k >= 0; k--){
    30                 if(a[k] == b[k]){
    31                     if(a[k] == 1){
    32                         sum += (ll)pow(2.0, k);
    33                     }
    34                 }else{
    35                     sum += (ll)pow(2.0, k+1) -1;
    36                     break;
    37                 }
    38             }
    39             printf("%lld
    ", sum);
    40         }
    41     }
    42     return 0;
    43 }

    只有不断学习才能进步!

  • 相关阅读:
    Python学习---文件操作的学习1208
    Python实例---三级菜单的实现[high]
    Python实例---三级菜单的实现[low]
    Python学习---Python下[set集合]的学习
    Python学习---深浅拷贝的学习
    Python学习---Python下[字符串]的学习
    Python学习---Python下[字典]的学习
    Python实例---简单购物车Demo
    Python学习---Python下[元组]的学习
    Python学习---Python下[列表]的学习
  • 原文地址:https://www.cnblogs.com/wenbao/p/6058613.html
Copyright © 2011-2022 走看看