博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 5587 Array 数学题
阅读量:5042 次
发布时间:2019-06-12

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

Array

Time Limit: 20 Sec

Memory Limit: 256 MB

题目连接

http://acm.hdu.edu.cn/showproblem.php?pid=5587

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

HINT

 

题意

题解:

数学题(:

首先我们先用找规律算出第i天一共能得到的和是多少:g(i)=g(i-1)+2^(i-1)

然后我们就可以递归求解了,不断地利用2的幂来进行递归

代码:

#include
#include
#include
#include
#include
using namespace std;vector
Q;long long ans = 0;long long g[230];void solve(long long k){ if(k<=0)return; int p = --upper_bound(Q.begin(),Q.end(),k)-Q.begin(); ans+=g[p]+k-Q[p]; solve(k-Q[p]-1);}int main(){ long long T=2; Q.push_back(0); for(int i=1;i<=59;i++) { Q.push_back(T-1);//2^i-1 T*=2; } g[1]=1;long long tmp=2; for(int i=2;i<=Q.size();i++) { g[i]=2*g[i-1]+tmp;//存的是第i天的答案 tmp=tmp*2; } int t;scanf("%d",&t); for(int i=1;i<=t;i++) { long long x;scanf("%I64d",&x); ans = 0; solve(x); printf("%I64d\n",ans); }}

 

转载于:https://www.cnblogs.com/qscqesze/p/5005369.html

你可能感兴趣的文章
JQuery(一)安装&选择器 样式篇
查看>>
浏览器的DNS缓存查看和清除
查看>>
浏览器跨域问题
查看>>
HTML5 input控件 placeholder属性
查看>>
使用JAVA如何对图片进行格式检查以及安全检查处理
查看>>
html5实现移动端下拉刷新(原理和代码)
查看>>
iPhone开发中从一个视图跳到另一个视图有三种方法:
查看>>
pytho logging
查看>>
一个Java程序员应该掌握的10项技能
查看>>
c#英文大小写快捷键
查看>>
tpframe免费开源框架又一重大更新
查看>>
一.go语言 struct json相互转换
查看>>
什么是架构设计
查看>>
程序员学习能力提升三要素
查看>>
PHP 微信错误状态返回码说明
查看>>
【4.1】Python中的序列分类
查看>>
ubuntu 移动文件
查看>>
Easy Mock
查看>>
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
Python内置函数(29)——help
查看>>