HDU 5587 Array 规律+递归

news/2024/12/22 9:48:38/
HDU 5587
题意:初始序列a为{1},操作:在序列a末尾添加一个0之后,复制一遍0前面的数 然后将0之后的数+1(包括0).
现在对序列a重复操作100次.Q次询问 每次询问一个m 求出序列a前m个数之和, Q<=2e3,m<=1e16.


初始长度为1 每次操作后序列长度*2+1 len[i]=2^i(i+1) -1
容易知道第i次操作后 序列的和为 s[i]=2*s[i-1]+len[i-1] 第i次添加2^i个数字 总和f[i]=s[i-1]+2^i.
前m个数=f[1]+f[2]+...f[i] + r 

因为第i+1段可以递归分解 剩下r个数递归求解即可.

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=5e2+5,M=59;
ll n,pw2[N],f[N],s[N];
void init()
{pw2[0]=1;for(int i=1;i<M;i++)pw2[i]=pw2[i-1]*2ll;f[0]=1,s[0]=1;for(int i=1;i<M;i++){s[i]=s[i-1]*2ll+pw2[i];f[i]=s[i-1]+pw2[i];//	printf("%d %lld\n",i,f[i]);}
}
ll calc(int i,ll x)
{if(x==0)return 0;if(x==pw2[i])return f[i];if(x<pw2[i-1])return calc(i-1,x);//  pw2[i-1]=<x<pw2[i]return f[i-1]+calc(i-1,x-pw2[i-1])+x-pw2[i-1]; 
}
int main()
{int T;init();cin>>T;while(T--){scanf("%lld",&n);int id=0;ll ans=0,sum=0;while(sum+pw2[id]<n)sum+=pw2[id],++id;id--;for(int i=0;i<=id;i++)ans+=f[i];ans+=calc(id+1,n-sum);printf("%lld\n",ans);}return 0;
}



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

相关文章

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开路

半球电磁炉EO/E2/E3/E4/E5故障问题

EO 锅具检测 E2 炉面温度传感器故障 E3 高电压保护 E4 低电压保护 E5 炉面超温保护