题目大意:题目中给了一种数的定义,根据定义,让判断一个给定的数是不是这种数。题中叫这种数为吉米数,定义如下:对序列1,2,3,,,,n,做n-1次SF变换(对该变换的解释在下文),如果能得到原序列,则n为吉米数。

SF变换:若n为偶数,以n=10为例,一次SF变换是这样的

    1,2,3,4,5,6,7,8,9,10—>1,2,3,4,5  6,7,8,9,10—>6,1,7,2,8,3,9,4,10,5  此为偶数的一次SF变换,第二次变换是基于新序列的,以此类推。

    若n为奇数,以n=9为例,一次SF变换是这样的

    1,2,3,4,5,6,7,8,9—>1,2,3,4  5,6,7,8,9—>5,1,6,2,7,3,8,4,9   此为奇数的一次SF变换,第二次变换也是基于新序列的,以此类推。

题目分析:根据题中的提示,偶数不是吉米数。如果是吉米数,则相应的序列中的任一元素的位置周期都是一样的,所以只需考虑1。最终找到1的位置有如下规律:pos=(2^t)%n,其中t为变换的次数。所以只需判断(2^(n-1))%n=1是否成立即可。

实际上还是幂取模!!!

代码如下:

 # include<iostream>
# include<cstdio>
# include<cstring>
# include<algorithm>
using namespace std;
# define ll long long
ll mypow(ll a,ll b,ll m)
{
if(b==)
return ;
if(b==)
return a%m;
ll u=mypow(a,b/,m);
u*=u;
u%=m;
if(b&)
u*=a;
return u%m;
}
bool is(ll x)
{
ll pos=mypow(,x-,x);
return pos==;
}
int main()
{
ll n;
while(scanf("%lld",&n)&&n!=-){
if(is(n))
printf("%lld is a Jimmy-number\n",n);
else
printf("%lld is not a Jimmy-number\n",n);
}
return ;
}

UVA-10710 Skyscraper Floors (找规律+幂取模)的更多相关文章

  1. UVA 11609 - Teams 组合、快速幂取模

    看题传送门 题目大意: 有n个人,选一个或者多个人参加比赛,其中一名当队长,如果参赛者相同,队长不同,也算一种方案.求一共有多少种方案. 思路: 排列组合问题. 先选队长有C(n , 1)种 然后从n ...

  2. 牛客小白月赛14 -A (找规律+除数取模)

    题目链接:https://ac.nowcoder.com/acm/contest/879/A 题意:有n个城市,编号1~n,k天,第一天位于城市1,要求最后一天在城市1,且相邻两天不在同一个城市,求方 ...

  3. UVa 11582 Colossal Fibonacci Numbers! 【大数幂取模】

    题目链接:Uva 11582 [vjudge] watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fil ...

  4. UVA 718 - Skyscraper Floors(数论)

    UVA 718 - Skyscraper Floors 题目链接 题意:在一个f层高的楼上,有e个电梯,每一个电梯有x,y表示y + k * x层都能够到,如今要问从a层是否能到达b层(中间怎么换乘电 ...

  5. UVa 11582 (快速幂取模) Colossal Fibonacci Numbers!

    题意: 斐波那契数列f(0) = 0, f(1) = 1, f(n+2) = f(n+1) + f(n) (n ≥ 0) 输入a.b.n,求f(ab)%n 分析: 构造一个新数列F(i) = f(i) ...

  6. UVa 11582 巨大的斐波那契数!(幂取模)

    https://vjudge.net/problem/UVA-11582 题意: 输入两个非负整数a.b和正整数n,你的任务是计算f(a^b)除以n的余数.f[0]=0,f[1]=1,f[i+2]=f ...

  7. HDU 1061.Rightmost Digit-规律题 or 快速幂取模

    Rightmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  8. HDU--杭电--4506--小明系列故事——师兄帮帮忙--快速幂取模

    小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  9. hdu 4506 小明系列故事——师兄帮帮忙【幂取模乱搞】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4506 http://acm.hust.edu.cn/vjudge/contest/view.action ...

随机推荐

  1. String内存分析,for-each,参数传递

    上午总结: 蓝白书P245 (一)Iterator用法 import java.util.*; public class HashSetTest{ public static void main(St ...

  2. 浅谈elasticsearch 集群

    elasticsearch 集群 摘要: elasticsearch 集群 搭建elasticsearch的集群 现在假设我们有3台es机器,想要把他们搭建成为一个集群 基本配置 每个节点都要进行这样 ...

  3. 20145318《网络对抗》注入shellcode及Return-to-libc

    20145318<网络对抗>注入shellcode及Return-to-libc 注入shellcode 知识点 注入shellcodeShellcode实际是一段代码(也可以是填充数据) ...

  4. 20165310_java_blog_week1.md

    2165310 <Java程序设计>第1周学习总结 教材学习内容总结 了解Java基本配置环境 学习Java命名.编译.运行规则 拓展学习包的编译.运行 熟悉Git的运用方式 教材学习中的 ...

  5. 瘋子C语言笔记 (string)

    1.strstr() 函数 搜索一个字符串在另一个字符串中的第一次出现.找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址:如果未找到所搜索的字符串,则返回NULL. 2.strcat() 函数 ...

  6. bzoj 2038 A-小Z的袜子[hose] - 莫队算法

    作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从 ...

  7. POJ1061 青蛙的约会(扩展欧几里得)题解

    Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事 ...

  8. RHEL7使用NAT方式上网

    1.首先,Windows7无法设置网络共享VMNet8的问题,是因为禁用了Firewall服务,设置为自动,启用即可:且需要启动VMWare的DHCP和NAT两个服务,这两个服务在我的机器上是关闭的, ...

  9. 【查看内存参数详解】Linux free -m 详细说明

    free 命令相对于top 提供了更简洁的查看系统内存使用情况:$ free                                       total            used   ...

  10. Spring security框架原理

    转自: http://www.blogjava.net/youxia/archive/2008/12/07/244883.html  在SpringSide 3的官方文档中,说安全框架使用的是Spri ...