zoukankan      html  css  js  c++  java
  • ACDream

    先上题目:

    Xor pairs

    Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
    SubmitStatus

    Problem Description

    long long ans = 0;
    for(int i = 1; i <= n; i ++)
        for(int j = i + 1; j <= n; j ++)
           for(int k = j + 1; k <= n; k ++)
               if((i ^ j ^ k) == 0) ans ++;

    Input

    约10000组数据,每组数据一行n (1 <= n <= 10^9)

    Output

    对于每组数据,输出一行,ans

    Sample Input

    10
    11
    12

    Sample Output

    10
    13
    17

      第一眼看输入只有一个数字,然后就有输出,这有很大几率是找规律。
      打表以后发现好像规律还不是很明显,将相邻的两项相减,然后就找到规律了:0,1,0,1,2,3,0,1,2,3,4,5,6,7,0,``````
      然后就是构造函数了,思路是先求出距离输入的n最近的2的次幂求和的那个幂数,然后求出每一个以2的次幂-1为终结的等差数列的和,求出以后再加上多出来的那一部分等差数列,就可以得到的数了。中间可能还需要一点小的调整。

    上代码:

     1 /*
     2 * this code is made by sineatos
     3 * Problem: 1183
     4 * Verdict: Accepted
     5 * Submission Date: 2014-07-31 14:59:31
     6 * Time: 8MS
     7 * Memory: 1088KB
     8 */
     9 #include <cstdio>
    10 #include <cstring>
    11 #include <algorithm>
    12 #define MAX 100002
    13 #define ll long long
    14 using namespace std;
    15  
    16 int main()
    17 {
    18     ll n,i,c,r;
    19     while(~scanf("%lld",&n))
    20     {
    21         if(n<2) printf("0
    ");
    22         else if(n==3) printf("1
    ");
    23         else
    24         {
    25             ll sum=0;
    26             c=0;
    27             for(i=1; (c+i)<n; i<<=1)
    28             {
    29                 c+=i;
    30                 sum+=i*(i-1)/2;
    31             }
    32             r=n-c;
    33             sum+=(1+(r-1))*(r-1)/2;
    34             printf("%lld
    ",sum);
    35         }
    36     }
    37  
    38     return 0;
    39 }
    /*Xor pairs*/


  • 相关阅读:
    Django学习之
    Django学习之
    Django学习之
    .NET 获取客户端的操作系统版本、浏览器版本和IP地址
    C#读取XML文件并取值
    C#设计模式之抽象工厂
    C#设计模式之工厂方法
    Jquery表单提交后获取返回Json值
    .Net自带缓存Cache的使用
    EasyUI第一章Application之Basic CRUD(增删改查)
  • 原文地址:https://www.cnblogs.com/sineatos/p/3883842.html
Copyright © 2011-2022 走看看