陶陶摘苹果

校门外的树

采药

以上三道都不是重点

循环

题目描述

乐乐是一个聪明而又勤奋好学的孩子。他总喜欢探求事物的规律。一天,他突然对数的正整数次幂产生了兴趣。

众所周知,2的正整数次幂最后一位数总是不断的在重复2,4,8,6,2,4,8,6……我们说2的正整数次幂最后一位的循环长度是4(实际上4的倍数都可以说是循环长度,但我们只考虑最小的循环长度)。类似的,其余的数字的正整数次幂最后一位数也有类似的循环现象:

循环 循环长度

2 2、4、8、6

4

3 3、9、7、1

4

4 4、6 2

5 5 1

6 6 1

7 7、9、3、1

4

8 8、4、2、6

4

9 9、1 2

这时乐乐的问题就出来了:是不是只有最后一位才有这样的循环呢?对于一个整数n的正整数次幂来说,它的后k位是否会发生循环?如果循环的话,循环长度是多少呢?

注意:

1. 如果n的某个正整数次幂的位数不足k,那么不足的高位看做是0。

2. 如果循环长度是L,那么说明对于任意的正整数a,n的a次幂和a + L次幂的最后k位都相同。

输入输出格式

输入格式:

输入文件circle.in只有一行,包含两个整数n(1 <= n < 10^100)和k(1 <= k <= 100),n和k之间用一个空格隔开,表示要求n的正整数次幂的最后k位的循环长度。

输出格式:

输出文件circle.out包括一行,这一行只包含一个整数,表示循环长度。如果循环不存在,输出-1。

输入输出样例

输入样例#1:

32 2
输出样例#1:

4

说明

对于30%的数据,k <= 4;

对于全部的数据,k <= 100。

NOIP2005普及组第四题

依照题意累乘,设原数是n,假设乘了x次后,最后一位(第L位)的数与最开始相同了,那么就要开始计算倒数第二位(L-1位)的循环节。

由于L位至少要乘x次才能循环,所以算L-1位时,至少要乘n^x次才能让L位再重复(L-1位循环而L位不同是没有意义的)。

以此类推,每找到一层循环,在找下一层时就可以每次直接乘n^x^y^...,运行效率会高很多。

具体实现要用到高精度。

这代码估计是高精乘法常数写挂了,用时近1000ms

 #include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std;
int t=;
unsigned int n=,k;
unsigned int xh[];
int num;//记录有多少层
char s[];
bool flag=,flag2=;
struct node{
unsigned int v[];
int s;
}a,b,c,bas,ans,nn;
node multiple(const node a1,const node b1){ //高精度乘法部分
int i,j,x=;
if(a1.s==&&a1.v[]==)return a1;
if(b1.s==&&b1.v[]==)return b1;
node c1={};
for(i=;i<= && i<a1.s;i++){
for(j=;j<= && j<b1.s;j++){
c1.v[i+j]+=a1.v[i]*b1.v[j];
c1.v[i+j+]+=c1.v[i+j]/;
c1.v[i+j]%=;
}
c1.s=i+j;
if(c1.v[i+j]!=)c1.s++;
}
if(c1.s>k) c1.s=k+;
return c1;
} int main(){
int i,j;
scanf("%s%d",s,&k);
c.s=strlen(s);
ans.v[]=;
ans.s=;
for(i=;i<c.s;i++) c.v[i]=s[c.s-i-]-'';
bas=c;//原数备份,用作比较
a=c;
b=c;
int k1;
for(k1=;k1<k;k1++){
num=;
b=bas;
// c=bas;
do{
b=multiple(a,b);
num++;
}while(num< && b.v[k1]!=bas.v[k1]);
if(bas.v[k1]!=b.v[k1]){
printf("-1");
return ;
}
b=a;
for(j=;j<num-;j++)
a=multiple(a,b); nn.s=;
nn.v[]=num;
ans=multiple(ans,nn);
}
i=;
while(ans.v[i]==)i--;
for( ;i>=;i--)printf("%d",ans.v[i]);
return ;
}

[NOIP2005] 普及组 循环的更多相关文章

  1. NOIP2005普及组第4题 循环

    NOIP2005普及组第4题 循环 时间限制: 1 Sec  内存限制: 128 MB提交: 27  解决: 6[提交][状态][讨论版][命题人:外部导入] 题目描述 乐乐是一个聪明而又勤奋好学的孩 ...

  2. NOIP2005普及组第3题 采药 (背包问题)

    NOIP2005普及组第3题 采药 时间限制: 1 Sec  内存限制: 128 MB提交: 50  解决: 23[提交][状态][讨论版][命题人:外部导入] 题目描述 辰辰是个天资聪颖的孩子,他的 ...

  3. 动态规划 洛谷P1048 [NOIP2005 普及组] 采药

    洛谷P1048 [NOIP2005 普及组] 采药 洛谷的一个谱架-的题目,考的是01背包问题,接下来分享一下我的题解代码. AC通过图: 我的代码: 1 //动态规划 洛谷P1048 [NOIP20 ...

  4. 【动态规划】Vijos P1104 采药(NOIP2005普及组第三题)

    题目链接: https://vijos.org/p/1104 题目大意: T时间,n个物品,每个耗时ti,可获得收益ci,求最大收益. 题目思路: [动态规划] 01背包裸题.一维二维都过了,放个一维 ...

  5. [NOIP2005普及组]采药(01背包)

    题目描述 描述 辰辰是个很有潜能.天资聪颖的孩子,他的梦想是称为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到个到处都是草药的山洞里对他说 ...

  6. 题解【洛谷P1046】[NOIP2005普及组] 陶陶摘苹果

    [NOIP2005] 陶陶摘苹果 首先,我们用一个数组s[11]存储每个苹果的高度. 然后,用a表示陶陶的身高. 接着,用a+30与s[i]比较,大于则计数器加一. 最后,输出计数器的值即可. #in ...

  7. 采药 2005年NOIP全国联赛普及组&疯狂的采药

     时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望 ...

  8. NOIP2002-2017普及组题解

    虽然普及组一般都是暴力省一,但是有一些题目还是挺难的qwq个人觉得能进TG的题目会在前面打上'*' NOIP2002(clear) #include<bits/stdc++.h> usin ...

  9. NOIP2012 普及组 T3 摆花——S.B.S.

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...

随机推荐

  1. 440 K-th Smallest in Lexicographical Order 字典序的第K小数字

    给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字.注意:1 ≤ k ≤ n ≤ 109.示例 :输入:n: 13   k: 2输出:10解释:字典序的排列是 [1, 10, 11, 1 ...

  2. yum 安装报错:*epel: mirrors.aliyun.comError: xzcompressionnot available

    环境背景:epel源下载地址: http://mirrors.aliyun.com/Centos内核内核版本[root@nfs01 ~]# uname -r2.6.32-642.el6.x86_64= ...

  3. [转]如何在 TFS 中使用 Git

    本文转自 http://www.cnblogs.com/stg609/p/3651688.html 对 Charley Blog 的代码进行版本控制的想法由来已久,在代码建立之初其实已经使用过 TFS ...

  4. ReactJS-2-props vs state

    rops理解: 大多数组件都可以在创建的时候被不同的参数定制化,这些不同的参数就叫做props.props的流向是父组件到子组件. 子组件Comment,是一条评论组件,父组件CommentList, ...

  5. 从0开始搭建SQL Server 2012 AlwaysOn 第一篇(AD域与DNS)

    随着业务发展,公司需要提高数据安全与性能需求,所以需要对新技术预研(先采坑),做技术积累: 了解相关AlwaysOn 故障转移集群(热备),数据路由(ICX),Moebius(莫比斯数据路由) 决定测 ...

  6. SQLServer性能优化专题

    SQLServer性能优化专题 01.SQLServer性能优化之----强大的文件组----分盘存储(水平分库) http://www.cnblogs.com/dunitian/p/5276431. ...

  7. php常用的一些代码

    1.获取用户真实ip function getIP() { if (getenv("HTTP_X_FORWARDED_FOR")) { // 这个提到最前面,作为优先级,nginx ...

  8. Swift Intermediate Language (SIL)

    Swift Intermediate Language (SIL) https://github.com/apple/swift/blob/master/docs/SIL.rst#witness-me ...

  9. ssh设置免秘钥登录

    系统:CentOS7.2 需求:A服务器的fab用户需要使用www用户免秘钥登录到B服务器 换句话说,就是在A服务器的fab用户下,ssh    www@B服务ip   -p  端口  ,然后登录过去 ...

  10. CAD嵌套打印(网页版)

    当用户需要打印两个CAD控件的图纸时,可以采用嵌套打印实现.点击此处在线演示. 实现嵌套打印功能,首先将两个CAD控件放入网页中,js代码如下: <p align="center&qu ...