题意:开始序列{1};

一次变换{1,1,2};
两次变换{1,1,2,1,2,2,3}
。。。
求s[n];
题解:打表 S1,S2,S4,S8,S16,S32。。。。。。
公式 S[n]=S[最近的比其小的2的?次方]+S[n-最近的比其小的2的?次方]+n-n-最近的比其小的2的?次方;
复杂度log(n);

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<string>
  5. #include<queue>
  6. #include<algorithm>
  7. #include<stack>
  8. #include<cstring>
  9. #include<vector>
  10. #include<list>
  11. #include<set>
  12. using namespace std;
  13. #define ll __int64
  14. int scan()
  15. {
  16. int res = , ch ;
  17. while( !( ( ch = getchar() ) >= '' && ch <= '' ) )
  18. {
  19. if( ch == EOF ) return << ;
  20. }
  21. res = ch - '' ;
  22. while( ( ch = getchar() ) >= '' && ch <= '' )
  23. res = res * + ( ch - '' ) ;
  24. return res ;
  25. }
  26. ll a[];
  27. ll pow1(ll x, ll y)
  28. {
  29. ll num=;
  30. for(ll i=;i<y;i++)
  31. {
  32. num*=x;
  33. }
  34. return num;
  35. }
  36. ll hehe(ll x)
  37. {
  38. a[]=;
  39. a[]=;
  40. ll i,sum=;
  41. for(i=;i<=x;i++)
  42. {
  43. a[i]=sum+pow1(,i)-i;
  44. sum+=a[i];
  45. }
  46. return a[x];
  47. }
  48. ll erfen(ll x)
  49. {
  50. ll i;
  51. if(x==)
  52. return ;
  53. if(x==)
  54. return ;
  55. ll num=;
  56. for(i=;;i++)
  57. {
  58. num*=;
  59. if(num>=x)
  60. break;
  61. }
  62. if(num==x)
  63. return hehe(i);
  64. else
  65. return erfen(num/)+erfen(x-num/)+x-num/;
  66. }
  67. int main()
  68. {
  69. ll x,y,z,i,t;
  70. scanf("%I64d",&x);
  71. while(x--)
  72. {
  73. scanf("%I64d",&y);
  74. printf("%I64d\n",erfen(y));
  75. }
  76.  
  77. return ;
  78. }

hdu 5587 规律的更多相关文章

  1. hdu 5587 Array

    题目链接:hdu 5587 前两周 bc 上的题了,因为赶大作业所以没有去打,看了下官方给出的思路,感觉好强大~~竟然能转化成求二进制数 1 的个数: 然后数位 dp 就行了, #include< ...

  2. HDU 2582 规律 素因子

    定义$Gcd(n)=gcd(\binom{n}{1},\binom{n}{2}...\binom{n}{n-1})$,$f(n)=\sum_{i=3}^{n}{Gcd(i)}$,其中$(3<=n ...

  3. HDU 5587——Array——————【规律】

    Array Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Sub ...

  4. hdu 5587 Array 数学题

    Array Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5587 De ...

  5. hdu 5351 规律+大数

    题目大意:定义了一种fib字符串,问第n个fib串的前m个字母前后相等串的最大长度,大约就是这样的 其实主要读完题意的时候并没有思路,但是列几个fib字符串就会发现,除了fib1以外,所有串的前面都是 ...

  6. HDU 5587:Array

    Array  Accepts: 118  Submissions: 232  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 131072/ ...

  7. hdu 5587 Array 二分

    Array Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Problem ...

  8. HDU 5308 规律+模拟

    给出N个数字N,要把全部数字用完.使用+-*/最后变为24.中间运算能够有有浮点数 对于1-14直接打表 15以上的能够通过13个同样数字得到24.然后使后面的数所有运算为0相加就可以 贴一发官方题解 ...

  9. HDU 5976 Detachment 打表找规律

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5976 Detachment Time Limit: 4000/2000 MS (Java/Other ...

随机推荐

  1. laravel数据库的创建和迁移

    数据库建立及迁移 Laravel 5 把数据库配置的地方改到了 `learnlaravel5/.env`,打开这个文件,编辑下面四项,修改为正确的信息: ? 1 2 3 4 5 6 7 DB_HOST ...

  2. Java中Properties类的使用

    1.properties介绍 java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值&quo ...

  3. [转]AngularJS的$resource

    转自:http://blog.csdn.net/violet_day/article/details/17403207 $http $http服务是基于$q服务的,提供了promise封装,它接受一个 ...

  4. tar+gzip

    tar打gzip包: tar -czvf sourceDir.tar.gz sourceDir tar查看压缩包内容: tar -tvf sourceDir.tar.gz tar解压缩包crontab ...

  5. Zend Studio实用快捷键一览表

    CTRL+B | 重构项目CTRL+D | 删除一行CTRL+E | 搜索已打开的文件名CTRL+F | 打开本文件的搜索/替换 ,只搜索当前文件CTRL+H | 打开搜索替换窗口 ,可搜索整个磁盘. ...

  6. js中RHS与LHS区别

    为什么区分RHS与LHS是一件重要的事情? 因为在变量没有声明(在任何作用域都找不到该变量的情况下),这两种查询的行为是不一样的. function foo (a) { console.log(a + ...

  7. java 面试每日一题6

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5 ...

  8. Android调试常用的工具简单介绍

    配置Android环境的时候,我们需要安装sdk.在sdk的目录下: platform-tools 目录下的adb tool下的: ddms.bat adb :可以cd 当前目录,然后使用相应的命令, ...

  9. USB wifi调试笔记

    本文以realtek 8192CU WiFi模块为例,介绍USB wifi在Jelly Bean 4.1的调试笔记. 1.WIFI打不开现象概述 WiFi打不开是指您在UI的settings下选中Wi ...

  10. 【转】Program Files (x86)文件夹是干什么的

    转载地址:http://leonax.net/p/2373/what-program-files-x86-folder-for/ 今天在微博上看到有人问这个问题.在装好64位的Windows之后,能在 ...