HDU 5587(Array-BigInteger)

news/2024/12/31 1:14:38/

一开始有一个数列{1}。每过一天,将他当天的数列复制一遍,放在数列尾,并在两个数列间用0隔开。将当天新产生的所有数字(包括0)全加1。这个数列的前M项和是多少?

推公式

注意BigInteger类的写法

import java.io.*;   
import java.util.*;   
import java.math.*;  
public class Main{  static BigInteger g[] = new BigInteger[2000];  static BigInteger b2 = new BigInteger("2");  static BigInteger p2[] = new BigInteger[2000];  public static void main(String[] arg){  Scanner cin = new Scanner(System.in);  p2[1]= new BigInteger("2");for(int i=2;i<=1000;i++) p2[i]=p2[i-1].multiply(b2);  g[1] = new BigInteger("1");for(int i=2;i<=1000;i++) g[i]=g[i-1].multiply(b2).add(p2[i-1]);  int T=cin.nextInt();  while ((T--)>0) {  BigInteger m = cin.nextBigInteger();  BigInteger ans = new BigInteger("0");  while(m.compareTo(BigInteger.ZERO)==1) {int k=1;while (p2[k+1].subtract(BigInteger.ONE).compareTo(m)<=0) ++k;ans = ans.add(g[k]);m = m.subtract(p2[k].subtract(BigInteger.ONE));if (m.compareTo(BigInteger.ONE)>=0) {m = m.subtract(BigInteger.ONE);ans = ans.add(BigInteger.ONE);}ans = ans.add(m);}System.out.println(ans);}  }  
}  

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

相关文章

HDU 5587 Array (规律)

题意: 话说中文题目里有hint看hint就懂了 第一项永远为数字1&#xff0c;因此样例1输出1 第二天先复制一次&#xff0c;用0隔开&#xff0c;得到1,0,1&#xff0c;再把产生的数字加1&#xff0c;得到1,1,2&#xff0c;因此样例2输出前3项和1124. 第三天先得到1,1,2,0,1,1,2&…

hdu 5587 Array(高效)

题目链接&#xff1a;hdu 5587 Array 代码 #include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int maxn 55; typedef unsigned long long ll;ll N, cnt[maxn5], sum[maxn5];ll solve (ll n) {int t maxn;ll ret 0,…

HDU 5587:Array

Array Accepts: 118 Submissions: 232 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) 问题描述 Vicky是个热爱数学的魔法师&#xff0c;拥有复制创造的能力。 一开始他拥有一个数列{1}。每过一天&#xff0c;他将他当天的数列复制一遍…

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的配置、编译和…