zoukankan      html  css  js  c++  java
  • 贪心 + 找规律 之 hdu 5014 Number Sequence

    /*
    关键:贪心 + 找规律
    0 1 2 3 4 5 6
    肯定先从大的开始去找(贪心):
    6:110 ---> 1:001  ==>  6^1 = 7
    结果发现:
    5: 101 ---> 2:010  ==>  5^2 = 7
    4:100 ---> 3: 011  ==>  4^3 = 7
     
    若 x ---> y,则区间 [x, y] 的所有值均可找到与其相匹配的数字。。。
    */
     1 #include <iostream>
     2 #include <cstdlib>
     3 #include <cstdio>
     4 #include <cstring>
     5 using namespace std;
     6 typedef __int64 int64;
     7 const int MAX_N = 100005;
     8 int ini[MAX_N], N, ans[MAX_N];
     9 int64 sum;
    10 
    11 void Ini() {
    12     ini[0] = 1;
    13     for (int i = 1; i < MAX_N; ++i) {
    14         int myCount = 0;
    15         int tmp = i;
    16         while (tmp) {
    17             ++myCount;
    18             tmp >>= 1;
    19         }
    20         ini[i] = ((1 << myCount) - 1);
    21     }
    22 }
    23 
    24 void Dfs(int n) {
    25     if (n <= 0) return;
    26     int tmp = (ini[n] ^ n);
    27     for (int i = n; i >= tmp; --i) {
    28         ans[i] = n + tmp - i;
    29     }
    30     Dfs(tmp - 1);
    31 }
    32 
    33 int main() {
    34     //freopen("input.txt", "r", stdin);
    35     Ini();
    36     while (~scanf("%d", &N)) {
    37         for (int i = 0; i <= N; ++i) ans[i] = 0;  // 一定要初始化,否则 WA
    38         sum = 0;
    39         Dfs(N);
    40         int tmp;
    41         for (int i = N; i >= 0; --i) {
    42             sum += (int64)(ans[i] ^ i);
    43         }
    44         printf("%I64d
    ", sum);
    45         for (int i = 0; i <= N; ++i) {
    46             scanf("%d", &tmp);
    47             printf("%d", ans[tmp]);
    48             if (i != N) {
    49                 printf(" ");
    50             }
    51         }
    52         printf("
    ");
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    Atitit. 衡量项目规模 包含的类的数量 .net java类库包含多少类 多少个api方法??
    Drawable 中getIntrinsicWidth
    js播放音乐
    Parcelable和Parcel
    标题栏和状态栏
    android振动效果的实现
    Android位置服务和Google地图API初解
    TranslateAnimation详解
    android真机调试
    常见的Android图标大小
  • 原文地址:https://www.cnblogs.com/shijianming/p/4140801.html
Copyright © 2011-2022 走看看