HDU 5587:Array

news/2024/12/22 0:10:38/

Array

 
 Accepts: 118
 
 Submissions: 232
 Time Limit: 2000/1000 MS (Java/Others)
 
 Memory Limit: 131072/131072 K (Java/Others)
问题描述
Vicky是个热爱数学的魔法师,拥有复制创造的能力。
一开始他拥有一个数列{1}。每过一天,他将他当天的数列复制一遍,放在数列尾,并在两个数列间用0隔开。Vicky想做些改变,于是他将当天新产生的所有数字(包括0)全加1。Vicky现在想考考你,经过100天后,这个数列的前M项和是多少?。
输入描述
输入有多组数据。
第一行包含一个整数T,表示数据组数。T. \left( 1 \leq T \leq 2 * {10}^{3} \right)(1T2103)
每组数据第一行包含一个整数M. \left( 1\leq M \leq {10}^{16} \right)(1M1016)
输出描述
对于每组数据输出一行答案.
输入样例
3
1
3
5
输出样例
1
4
7
Hint
第一项永远为数字11,因此样例1输出11
第二天先复制一次,用0隔开,得到{1,0,1},再把产生的数字加1,得到{1,1,2},因此样例2输出前3项和1+1+2=41+1+2=4.
第三天先得到{1,1,2,0,1,1,2},然后得到{1,1,2,1,2,2,3},因此样例3输出前5项和1+1+2+1+2=71+1+2+1+2=7

一做这种题就懵,一做这种题就懵。。。。。

递归或者循环,找规律,把问题化简啊。。。。

代码:

#pragma warning(disable:4996)  
#include <iostream>  
#include <algorithm>  
#include <cmath>  
#include <vector>  
#include <string>  
#include <cstring>  
using namespace std;typedef long long ll;
ll m;ll solve(ll x)
{ll sum = 0;while (x > 0){ll res = 1;ll cnt = 1;while (x > 2 * cnt + 1)//找到特定的节点{res = 2 * res + cnt + 1;//这个节点的值,等于原值*2(因为重复了一下)+cnt(全部加了1)+(增加了一个1)cnt = (cnt << 1) | 1;//第几个节点}sum += res;x -= cnt;sum += x;x--;}return sum;
}int main() 
{int t;scanf("%d", &t);while (t--) {cin >> m;cout << solve(m) << std::endl;}
}





http://www.ppmy.cn/news/336706.html

相关文章

HDU 5587 Array 规律+递归

HDU 5587 题意:初始序列a为{1},操作:在序列a末尾添加一个0之后,复制一遍0前面的数 然后将0之后的数1(包括0). 现在对序列a重复操作100次.Q次询问 每次询问一个m 求出序列a前m个数之和, Q<2e3,m<1e16. 初始长度为1 每次操作后序列长度*21 len[i]2^i(i1) -1 容易知道第i次操…

hdu 5587 Array

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

E3

https://portal.office.com/SubscriptionDetails?OfferIdC18B235E-8366-48b8-AE41-6E596C44944D&adminportal1

E3-1230V3和E3 1231V3有什么区别

E3-1230V3跟1231V3区别为&#xff1a;CPU主频不同、超频不同、支持技术不同。 一、CPU主频不同 选E3-1230V3还是E3 1231V3这些点很重要 看过你就懂了 https://list.jd.com/list.html? 1、E3-1230V3&#xff1a;E3-1230V3的CPU主频为3300MH。 2、E3-1231V3&#xff1a;E3-1231…

芯驰(E3-gateway)开发板环境搭建以及调试遇到问题的解决

1-Windows下环境配置 可以在Windows上使用命令行或者IAR IDE编译SSDK项目。Windows编译依赖的工具已经包含在 prebuilts/windows 目录中&#xff0c;包括编译器、Python和命令行工具。 1.1.1 CMD SSDK集成 msys 工具&#xff0c;可以在Windows命令行中完成SDK的配置、编译和…

E3商城的介绍

一.E3商城介绍&#xff1a; 宜立方网上商城是一个综合性的B2C平台&#xff0c;类似京东商城、天猫商城。会员可以在商城浏览商品、下订单&#xff0c;以及参加各种活动。 管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。 客服可以在后台管理系统中处理用户的询…

英特尔至强E3、E5、E7处理器有什么区别呢?

原文地址&#xff1a;http://www.dellzmd.com/a/news/knowledge/2014/0522/569.html 首先&#xff0c;Intel E3&#xff0c;E5&#xff0c;E7代表了3个不同档次的至强CPU&#xff0c;至强“E系列”的这种命名方式有些类似桌面上的Core i3&#xff0c;i5&#xff0c;i7&#xff…

电磁炉指示灯标示

我在别处看到这方面的电磁炉出现字母的代表的意思 整理了一下&#xff0c;你对比看一下吧啊&#xff0c;我就不一个一个说了 E0--------无锅 E1--------NTC开路 E2--------NTC短路 E3--------IGBTNTC开路 E4--------IGBTNTC短路 E7--------风扇短路保护 E8--------CT开路