zoukankan      html  css  js  c++  java
  • UVA 10718 Bit Mask

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 #define sc3(x,y,z)  scanf("%lld%lld%lld", &x, &y, &z)
     6 #define pf(x)    printf("%lld
    ",x)
     7 #define FOR(i,b,e)    for(int i=b;i<=e;i++)
     8 #define FOR1(i,b,e)    for(int i=b;i>=e;i--)
     9 #define CL(x,y)      memset(x,y,sizeof(x))
    10 using namespace std;
    11 typedef long long ll;
    12 ll bit[35];
    13 int a[35];
    14 void init()
    15 {
    16     bit[0] = 1;
    17     FOR(i,1,31)
    18     {
    19         bit[i] = 2 * bit[i-1];
    20     }
    21 }
    22 int main()
    23 {
    24     ll N, L, U, MAX;
    25     init();
    26 //    cout << bit[0] << endl;
    27     while(~sc3(N, L, U))
    28     {
    29         MAX = 0;
    30         FOR(i,0,31)
    31         {
    32             a[i] = N % 2;
    33             N /= 2;
    34         }
    35         FOR1(i,31,0)
    36         {
    37             MAX += bit[i];
    38             if((a[i] == 0 && MAX > U) || (MAX > L && a[i] == 1))//后面的条件是考虑可适合范围中最小的max值 
    39                 MAX -= bit[i];
    40         }
    41         pf(MAX);
    42     }
    43     return 0;
    44 }
    View Code

    主要考虑的是二进制问题,还有其中合适范围内的最小的ans值,是一道不错的思维题

  • 相关阅读:
    uva1610 Party Games
    uva1442 Cav
    uva1609 Foul Play
    uva1608 Non-boring sequences
    uva12174 滑动窗口+预处理
    uva 1451 数形结合
    light oj 1336 sigma function
    找常用词(字符串处理)问题
    指定排序问题
    完数问题
  • 原文地址:https://www.cnblogs.com/ghostTao/p/4393972.html
Copyright © 2011-2022 走看看