玲珑杯”ACM比赛 Round #4 E -- array【DP】

Start Time:2016-11-05 12:00:00 End Time:2016-11-05 17:00:00 Refresh Time:2016-11-06 21:43:46 Private

E -- array

Time Limit:3s Memory Limit:64MByte

Submissions:465Solved:140

DESCRIPTION

2 array is an array, which looks like:
1,2,4,8,16,32,64......1,2,4,8,16,32,64......
a1=1  | ai+1ai=2a1=1  | ai+1ai=2
Give you a number array, and your mission is to get the number of subsequences ,which is 2 array, of it.
Note: 2 array is a finite array.

INPUT
There are multiple test cases.The first line is a number T ( T 10T ≤10), which means the number of cases.For each case, two integer n(1n105)n(1≤n≤105).The next line contains nn numbers ai(1ai109)ai(1≤ai≤109)
OUTPUT
one line - the number of subsequence which is 2 array.(the answer will % 109+7% 109+7)
SAMPLE INPUT
241 2 1 241 2 4 4
SAMPLE OUTPUT
54

       

        没想到DP就直接做了,官方题解:注意到109109范围内的22的幂次只有3030个,所以我们定义dp[30]dp[30]这样一个dp数组,dp[i]dp[i]表示以2i2i为结尾的满足条件的子序列的个数。枚举每一个数来转移,复杂度O(32n)O(32n)


AC代码:

#include<cstdio>
#include<cstring>

typedef long long LL;
const int MOD=1e9+7;

LL p[44],a[44];

int main()
{
	p[1]=1; 
	for(int i=2;i<=33;++i) {
     	p[i]=p[i-1]<<1; //printf("%lld %lld\n",i,p[i]);	
	}
	int T; scanf("%d",&T);
	while(T--) {
		int N; scanf("%d",&N);
		memset(a,0,sizeof(a));
		for(int i=0;i<N;++i) {
			int tem=0; 
			scanf("%d",&tem);
			if(tem==1) {
				a[1]=(a[1]+1)%MOD; 
				continue;
			}
			for(int j=2;j<33;++j) {
				if(tem==p[j]) {
					//printf("11111111\n");
					a[j]=(a[j]%MOD+a[j-1]%MOD)%MOD;
					break;
				}
				else if(tem<p[j] ) break;
			}
		}
		LL ans=0;
		for(int i=1;i<=32;++i)  ans=(ans+a[i])%MOD;
		printf("%lld\n",ans); 
	}
	return 0;
}


内容概要:本文详细介绍了QY20B型汽车起重机液压系统的设计过程,涵盖其背景、发展史、主要运动机构及其液压回路设计。文章首先概述了汽车起重机的类和发展历程,强调了液压技术在现代起重机中的重要性。接着,文章深入析了QY20B型汽车起重机的五大主要运动机构(支腿、回转、伸缩、变幅、起升)的工作原理及相应的液压回路设计。每个回路的设计均考虑了性能要求、功能实现及工作原理,确保系统稳定可靠。此外,文章还详细计算了支腿油缸的受力、液压元件的选择及液压系统的性能验算,确保设计的可行性和安全性。 适合人群:从事工程机械设计、液压系统设计及相关领域的工程师和技术人员,以及对起重机技术感兴趣的高等院校学生和研究人员。 使用场景及目标:①为从事汽车起重机液压系统设计的工程师提供详细的参考案例;②帮助技术人员理解和掌握液压系统设计的关键技术和计算方法;③为高等院校学生提供学习和研究起重机液压系统设计的实用资料。 其他说明:本文不仅提供了详细的液压系统设计过程,还结合了实际工程应用,确保设计的实用性和可靠性。文中引用了大量参考文献,确保设计依据的科学性和权威性。阅读本文有助于读者深入了解汽车起重机液压系统的设计原理和实现方法,为实际工程应用提供有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值