URAL 1117 - Hierarchy(递推或递归)
来源:互联网 发布:linux新建文件命令 编辑:程序博客网 时间:2024/04/30 11:17
数据量不大,可以递推出所有1——2^k的结果,然后可以把过程分解
首先找到比n小的最大的2^k,然后从2^k继续计算,2^k到n即可转化为1到n-2^k
从i到j的时间可表示成从1到i的时间和从1到j的时间的差的绝对值。
#include <stdio.h>#define LL long longLL d[35];void init(){ d[1]=0; d[2]=0; for(int i=3;i<=31;i++) { d[i]=d[i-1]*2+2*(i-2); } for(int i=1;i<=31;i++) { d[i]+=(i-1); }}LL abs(LL a,LL b){return a-b>0?a-b:b-a;}LL solve(LL x){ LL ans=0; LL k=x; for(int i=31;i>=0;i--) { if(x>=(1LL<<i)) { x-=1LL<<i; ans+=d[i]; if(x>0)ans+=i-1; } } return ans;}int main(){ LL a,b; LL k,t; init(); scanf("%I64d%I64d",&a,&b); printf("%I64d\n",abs(solve(b),solve(a))); return 0;}
- URAL 1117 - Hierarchy(递推或递归)
- URAL 1081 Binary Lexicographic Sequence (递推 + 递归)
- Ural 1117 Hierarchy
- URAL - 1117 Hierarchy(找规律)
- URAL 1225-Flags(规律递推)
- URAL 递推
- URAL 1225 递推
- URAL 1017. Staircases(递推)
- Ural 1309 Dispute (递推)
- URAL 1079 Maximum 递推
- URAL 1117. Hierarchy
- 整数划分问题(递归&递推)
- ACM(递归递推—A)
- ACM(递归递推—B)
- ACM(递归递推—C)
- ACM(递归递推—D)
- ACM(递归递推—E)
- ACM(递归递推—F)
- mesh和wifi
- Java解析JavaScript数据
- Java中对Map(HashMap,TreeMap,Hashtable,LinkedHashMap等)的排序
- IE iframe 跨域问题的解决办法
- IOS学习笔记29—提示框第三方库之MBProgressHUD
- URAL 1117 - Hierarchy(递推或递归)
- AIX sendmail 通过其他邮箱发送邮件
- struts2中常用的常量介绍
- java千万级别数据生成文件思路和优化
- SRM 586 DIV2 500
- iOS 扁平化 UI 库 FlatUIKit
- struts2文件上传大小
- list.h分析
- easy 51 pro 2.0宇宙版成功编译.