51nod1379 索函数

果断打表找规律。然后看得出来是2^k-1之后又不知道怎么求出k有什么卵用。。。

http://blog.csdn.net/guhaiteng/article/details/52094210 %%%%神犇的讲解非常详细!

#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<cmath>
using namespace std;
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define clr(x,c) memset(x,c,sizeof(x))
#define ll long long
ll read(){
	ll x=0;char c=getchar();
	while(!isdigit(c)) c=getchar();
	while(isdigit(c)) x=x*10+c-‘0‘,c=getchar();
	return x;
}
const int mod=1e9+7;
ll Pow(ll a,ll b){
	ll ans=a;--b;
	while(b){
		if(b&1) ans=(ans*a)%mod;
		a=a*a%mod;b>>=1;
	}
	return ans;
}
ll f[91];
int main(){
	int T=read();
	f[0]=0;f[1]=1;rep(i,2,90) f[i]=f[i-1]+f[i-2];
	while(T--){
		ll n=read();
		if(!n) puts("0");
		else if(n<=90){
			ll len=log(f[n])/log(2);
			printf("%lld\n",(Pow(2,len+1)-1+mod)%mod);
		}else{
			ll len=n*log((1+sqrt(5))/2)/log(2)-log(sqrt(5))/log(2);
			printf("%lld\n",(Pow(2,len+1)-1+mod)%mod);
		}
	}
	return 0;
}

  

1379 索函数

基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题

 收藏

 关注

Fib[0]=0,Fib[1]=1,Fib[n]=Fib[n-1]+Fib[n-2] if n>1.

定义索函数Sor(n)=Fib[0]| Fib[1] |Fib[2]|…|Fib[n].

给定整数n,要求计算Sor(n)%1,000,000,007(1e9+7).

Input

第1行:给出一个整数T,表示有T组数据。(1<=T<=10000)
第2行到T+1行,每行一个整数n。(0<=n<=10^10)

Output

对于每个测试用例,输出结果占一行。

Input示例

2
1
2

Output示例

1
1
时间: 2024-11-05 21:50:09

51nod1379 索函数的相关文章

深入理解js 闭包

要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. Js代码 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量. Js代码 function f1(){ var n=999; } alert(n); // error 这里有一个地方需要注意,函数内部声明变量的时候

c#.net常用字符串函数 字符创常用方法

Compare 比较字符串的内容,考虑文化背景(场所),确定某些字符是否相等 CompareOrdinal 与Compare一样,但不考虑文化背景 Format 格式化包含各种值的字符串和如何格式化每个值的说明符 IndexOf 定位字符串中第一次出现某个给定子字符串或字符的位置 IndexOfAny 定位字符串中第一次出现某个字符或一组字符的位置 LastIndexOf 与IndexOf一样,但定位最后一次出现的位置 LastIndexOfAny 与IndexOfAny,但定位最后一次出现的位

字体函数 -- GetDeviceCaps

函数功能:该函数检索指定设备的设备指定信息. 函数原型:int GetDeviceCaps(HDC hdc, int nlndex): 参数: 1.hdc:设备上下文环境的句柄. 2.nIndex:指定返回项,该参数取下列一值.(C++) DRIVERVERSION:设备驱动程序版本. TECHNOLOGY:设备技术,它可以是下列一值: DT_PLOTTER:矢量绘图仪:DT_RASDISPLAY:光栅显示器: DT_RASPRINTER:光栅打印机:DT_RASCAMERA:光栅照相机: DT

数字在排序数组中出现的起始索引号

题目如下: 给定一个升序的整数数组,查找某一个值在数组中出现的索引号,例如,输入数组2,3,3,4,4,5:查找的数是3,则返回1,2.时间复杂度要求为O(logN). 初次拿到这个题目可以立即想到用二分查找来做,先比较中间的数和要查找的数,如果关键字(要查找的数)小于中间的数,那么在数组的左半部分继续查找,如果关键字大于中间的数,那么在数组的右半部分继续查找,如果关键字和中间的数相等,那么先比较中间数字的前一个数字是否和关键字相等,如果相等,继续用关键字和前一个数字的前一个数字比较,如果不等,

JavaScript学习总结(二)——闭包、IIFE、apply、函数与对象

目录 一.闭包(Closure) 1.1.闭包相关的问题 1.2.理解闭包 二.对象 2.1.对象常量(字面量) 2.2.取值 2.3.枚举(遍历) 2.4.更新与添加 2.5.对象的原型 2.6.删除 2.7.封装 三.函数 3.1.参数对象 (arguments) 3.2.构造函数 3.3.函数调用 3.3.1.call 3.3.2.apply 3.3.3.caller 3.3.4.Callee 3.5.立即执行函数表达式 (IIFE) 3.5.1.匿名函数与匿名对象 3.5.2.函数与函数

PHP【函数】

目录:[PHP函数].[PHP数组] 一.PHP常用函数(和JS一样)函数的四要素:①返回类型②函数名③参数类型④函数体因为PHP是弱类型语言,所以可以不用写返回类型,但是其他三个要素都是必须要写的. 1.最简单的函数写法 function show() { echo "hello"; } show(); 2.有返回值的函数就是在函数体里面要加return.return:返回. function show() { return "hello"; } echo sho

php中函数不确定参数个数时获取所有参数

func_get_arg(),func_get_args()和func_num_args()的用法 这三个函数呢,都是以func_打头的,顾名思义,是跟php的函数有关的.我们在写类的时候也经常用到这几个函数:注意,这三个函数只能用在函数内部:否则会报错: $number = func_num_args(); 返回INT //返回函数调用时,给出参数的数量: $para = func_get_arg(n); //可以返回第N-1位参数的值,因为引索的起始是0 $arr = func_get_ar

大话重构连载12:你不能没有保险索

通过前面的描述你已经对重构中"小步快跑"的开发模式有了一个清楚的认识.学会和习惯小步快跑的开发模式,对于重构工作极其重要,因为它让这种大范围.大幅度修改代码的重构工作变得不再像以往那样让人胆战心惊.究其原因,虽然从结果上是在大范围.大幅度调整,但每一步却是小范围.小福度调整,并且能保证每一步都是正确的. 然而,这里有一个非常重要的假设条件,那就是"保证每一步都是正确的",这是怎么保证的呢?就这个问题,我们需要展开来认真讨论讨论. 毫无疑问,系统重构就其结果来看,是在

jQuery使用工具函数

1. 什么是工具函数 在jQuery中,工具函数是指直接依附于jQuery对象.针对jquery对象本身定义的说法,即全局性的函数,我们统称为工具函数,或Utilities函数.它们有一个明显的特征,一般情况下,采用如下的格式进行调用: $.函数名()或jquery.函数() 2.工具函数的分类 根据工具函数处理对象的不同,可以将其分为下列几大类别:浏览器的检测.数组和对象的操作.字符串操作.测试操作.URL操作. 1)浏览器的检测 在浏览器检测中,又可分为浏览器类型与特征的检测,前者获取浏览器