博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5587 Array
阅读量:5268 次
发布时间:2019-06-14

本文共 1710 字,大约阅读时间需要 5 分钟。

题目链接:

Array

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

Total Submission(s): 339    Accepted Submission(s): 167

Problem Description
Vicky is a magician who loves math. She has great power in copying and creating.
One day she gets an array {1}。 After that, every day she copies all the numbers in the arrays she has, and puts them into the tail of the array, with a signle '0' to separat.
Vicky wants to make difference. So every number which is made today (include the 0) will be plused by one.
Vicky wonders after 100 days, what is the sum of the first M numbers.
 

 

Input
There are multiple test cases.
First line contains a single integer T, means the number of test cases.
(1T2103)
Next T line contains, each line contains one interger M. (1M1016)
 

 

Output
For each test case,output the answer in a line.
 

 

Sample Input
3 1 3 5
 

 

Sample Output
1 4 7
 

 

Source
 

题目大意:输入数字M,输出前M项和。

#include 
#include
#include
#include
#include
using namespace std;long long sum[1000];long long num[1000];void Init(){ sum[1]=1; num[1]=1; for(int i=2;i<=60;i++) { num[i]=num[i-1]*2+1; sum[i]=sum[i-1]*2+num[i-1]+1; }}long long Find(long long M){ if(M<=0) return 0; int k=lower_bound(num+1,num+55,M)-num; if(num[k]==M) return sum[k]; else return Find(M-num[k-1]-1)+sum[k-1]+M-num[k-1];}int main(){ int t; long long M; Init(); scanf("%d",&t); while(t--) { scanf("%lld",&M); long long ans=Find(M); printf("%lld\n",ans); } return 0;}

 

转载于:https://www.cnblogs.com/mengzhong/p/5007230.html

你可能感兴趣的文章
HIT1946 希尔伯特分形曲线(dfs)
查看>>
第二次团队冲刺第二天
查看>>
青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 2
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
SEH简单研究
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>
MySQL数据库 基本操作
查看>>
请大家规范电子邮件用法养成好的邮件习惯
查看>>
微信游戏和微信公众号小说如何有效做好域名防封,给大家分享我的有效经验...
查看>>
前端跨域知识总结
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>
关于java之socket输入流输出流可否放在不同的线程里进行处理
查看>>
目前为止用过的最好的Json互转工具类ConvertJson
查看>>
[Linux内存]linux内存学习(二)——分段和分页
查看>>
XHTML学习要点
查看>>