Description

有编号从1到n的n个小朋友在玩一种出圈的游戏,编号为i+1的小朋友站在编号为i小朋友左边。编号为1的小朋友站在编号为n的小朋友左边。首先编号为1的小朋友开始报数,接着站在左边的小朋友顺序报数,直到数到某个数字K时就出圈。直到所有的小朋友都出圈,则游戏完毕。游戏过程如下图所示。

Input

第一行有一个正整数n, 2 <= n <= 20,第二行有n 个整数其中第i个整数表示编号为i 的小朋友第i个出圈。

Output

求最小的K,如果不存在,则输出一个单词“NIE”

Sample Input

4
1 4 2 3

Sample Output

5
 

Solution

exCRT比较裸的题了,注意特判一下答案为0的情况
应该会exCRT就会这个题了
还有我竟然因为爆int调了半天也可以说是很丢人了QAQ
我就知道应该直接用long long

Code

 #include<iostream>
#include<cstring>
#include<cstdio>
#define N (1001)
using namespace std; int n,x,q[N],m[N],a[N];
bool vis[N]; void exgcd(int a,int b,int &d,int &x,int &y)
{
if (!b){d=a; x=; y=; return;}
exgcd(b,a%b,d,y,x); y-=x*(a/b);
} int exCRT()
{
int M=m[],A=a[],d,x,y,t;
for (int i=; i<=n-; ++i)
{
exgcd(M,m[i],d,x,y);
if ((a[i]-A)%d) return -;
x*=(a[i]-A)/d; t=m[i]/d; x=(x%t+t)%t;
A=M*x+A; M=M/d*m[i]; A%=M;
}
A=(A%M+M)%M;
if (!A) A=M;
return A;
} int main()
{
scanf("%d",&n);
for (int i=; i<=n; ++i)
{
scanf("%d",&x);
q[x]=i;
} int now=,cnt=;
for (int i=; i<=n-; ++i)
{
m[i]=n-i+;
while ()
{
if (vis[now])
{
now=now%n+;
continue;
}
if (now==q[i])
{
a[i]=cnt;
vis[q[i]]=true;
cnt=;
break;
}
++cnt;
now=now%n+;
}
} int ans=exCRT();
if (ans==-) printf("NIE");
else printf("%d",ans);
}

BZOJ2976:[POI2002]出圈游戏(exCRT)的更多相关文章

  1. BZOJ2976 : [Poi2002]出圈游戏

    首先模拟一遍得到n个同余方程,然后用扩展欧几里得求出最小的可行解即可,时间复杂度$O(n^2)$. #include<cstdio> #define N 30 int n,i,j,k,x, ...

  2. BZOJ 2976: [Poi2002]出圈游戏 Excrt+set

    人数很少,可以直接用 $set$ 来模拟人的情况. 然后就能得到若干个方程,用 $excrt$ 进行合并即可. #include <set> #include <cmath> ...

  3. BZOJ 2976: [Poi2002]出圈游戏 HDU 5668 CRT

    2976: [Poi2002]出圈游戏 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2976 Description Input 中第一 ...

  4. 华为2013校招之哈工大威海 上机试题之一:报数问题:设有N 个人围坐一圈并按顺时针方向从1 到N 编号,从第S个人开始进行1 到M报数,报 数到第 M个人时,此人出圈,再从他的下一个人重新开始1 到 M的报数,如此进行下去直 到所有的人都出圈为止。现要打印出出圈次序。

    1.  报数游戏 问题描述: 设有N 个人围坐一圈并按顺时针方向从1 到N 编号,从第S个人开始进行1 到M报数,报 数到第 M个人时,此人出圈,再从他的下一个人重新开始1 到 M的报数,如此进行下去 ...

  5. 牛客网 江西财经大学第二届程序设计竞赛同步赛 D.绕圈游戏-(跳青蛙游戏)找数的所有因子就可以了

    链接:https://ac.nowcoder.com/acm/contest/635/D来源:牛客网 D.绕圈游戏 433为了帮ddd提升智商,决定陪他van特殊的游戏.433给定一个带有n个点的环, ...

  6. Java简单算法--出圈问题

    package cn.magicdu.algorithm; import java.util.LinkedList; import java.util.List; /** * 出圈问题,数到某个数字的 ...

  7. n人围圈报数,报3出圈

    题目:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位. Scanner scanner = new Scanner(System. ...

  8. 一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号

    <?php/** * [猴子选大王] * @param  [type] $m [猴子数] * @param  [type] $n [出局次数] * @return [type]    [desc ...

  9. 由n个已按1,2,3,.....,n编号的人围成一圈,从编号为1的人开始按1,2,3顺序循环报数,凡报到3者出圈,最后留一个人,问其编号是多少

    /************************************************************************* > File Name: only_one. ...

随机推荐

  1. zabbix CentOS7 配置安装

    一,LAMP+zabbix环境安装 官网: https://www.zabbix.com/download rpm -ivh https://mirrors.aliyun.com/zabbix/zab ...

  2. ubuntu系统在安装好mysql后,出现ERROR 2002(HY000: Can't to local MySQL server through socket '/var/run/mysqld/mysqld.sock')(2)(图文详解)

    不多说,直接上干货! 问题详情 我在写此博客之前,看了网上各种资料,写的太冗余和繁琐杂乱.最简单的解决方法莫过于我这篇博客.直接如下. 这是liux套接字网络的特性,win平台不会有这个问题. 解决方 ...

  3. java scoket http TCP udp

    http://blog.csdn.net/kongxx/article/details/7259436 TCP/UDP: 齐全:http://www.blogjava.net/Reg/archive/ ...

  4. IE中使用TerraExplorerPro ActiveX控件问题总结

    近段时间,由于工作需要,涉及到Skyline Web的二次开发,遇到一些问题: 问题1:IE中无法使用Skyline 提供的ActiveX Component 的API 解决方法:这个问题一般是没有正 ...

  5. 【SoapUI】http接口测试

    一.接口介绍 API(Application Programming Interface,应用程序编程接口) 1.硬件接口 USB接口 硬盘接口 SD卡接口 LAN口和WAN口 CONSOLE口 .. ...

  6. sp 数据拼接html table表转换xml,发邮件

    USE [BES_ADV] GO /****** Object: StoredProcedure [dbo].[RSP_FN_UNAPPLIED_Mail_Reminder] Script Date: ...

  7. Spring JdbcTemplate 使用总结

    1.查询Object public Classify queryClassifById(int id){ String sql="select * from t_classify where ...

  8. ATL模板库中的OLEDB与ADO

    上次将OLEDB的所有内容基本上都说完了,从之前的示例上来看OLEDB中有许多变量的定义,什么结果集对象.session对象.命令对象,还有各种缓冲等等,总体上来说直接使用OLEDB写程序很麻烦,用很 ...

  9. css之margin,padding的百分比

    注意:上下内边距与左右内边距一致:即上下内边距的百分数会相对于父元素宽度设置,而不是相对于高度. PS:而且是基于父元素内容的宽度(width属性的大小),不是基于父元素整个框架的宽度

  10. c++sizeof大全

    sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下.但当我总结的时候才发现,这个问题既可以简单,又可以 ...