HENUOJ部分蓝桥题目

这篇博客介绍了多个编程挑战,包括01字串的生成,Fibonacci数列的求余数问题,FJ的字符串规律,Hankson的趣味题,Huffman树的构造费用,JAM计数法,以及K好数的计算。每个挑战都给出了输入输出格式,例子和解题提示,涉及递归、动态规划和数据结构等概念。
摘要由CSDN通过智能技术生成

01字串

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 
00000 
00001 
00010 
00011 
00100 
请按从小到大的顺序输出这32种01串。

Input

本试题没有输入。

Output

输出32行,按从小到大的顺序每行一个长度为5的01串。

Examples

Input

Output

00000
00001
00010
00011
<以下部分省略>
Time limit 1 second
Memory limit 128 MB

采用模拟的方法,从末位往前修改,如果末位是0,改为1就行了,如果末位是1,把该位该为0,进行对前一位的修改,重复以上操作,五位一回车

以下代码:

#include<iostream>
using namespace std;
int main(){
	int a[6]={0};
	for(int k=1;k<=5;k++){
			cout<<a[k];
	}
	cout<<endl;
	for(int j=1;j<32;j++){
		for(int k=5;k>=0;k--){
			if(a[k]==1){
				a[k]=0;
				//k--;
				//cout<<"k="<<k<<' ';
			}
			else if(a[k]==0){
				a[k]=1;
				break;
			}
		}
		//cout<<"********"<<j<<"*******"<<endl; 
		for(int k=1;k<=5;k++){
			cout<<a[k];
		}
		cout<<endl; 
	}
}

 


 

Fibonacci数列

Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

Input

输入包含一个整数n。

Output

输出一行,包含一个整数,表示Fn除以10007的余数

Examples

Input

10

Output

55

Input

22

Output

7704

Hint

说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

数据规模与约定 
1 <= n <= 1,000,000。

Time limit 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值