Infoplane in Tina Town

Time Limit: 14000/7000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)

Total Submission(s): 805    Accepted Submission(s): 168

Problem Description
There is a big stone with smooth surface in Tina Town. When people go towards it, the stone surface will be lighted and show its usage. This stone was a legacy and also the center of Tina Town’s calculation and control system. also,
it can display events in Tina Town and contents that pedestrians are interested in, and it can be used as public computer. It makes people’s life more convenient (especially for who forget to take a device).



Tina and Town were playing a game on this stone. First, a permutation of numbers from
1
to n
were displayed on the stone. Town exchanged some numbers randomly and Town recorded this process by macros. Town asked Tine,”Do you know how many times it need to turn these numbers into the original permutation by executing this macro? Tina didn’t know the
answer so she asked you to find out the answer for her.



Since the answer may be very large, you only need to output the answer modulo
3∗230+1=3221225473
(a prime).
 
Input
The first line is an integer
T
representing the number of test cases. T≤5



For each test case, the first line is an integer n
representing the length of permutation. n≤3∗106



The second line contains n
integers representing a permutation A1...An.
It is guaranteed that numbers are different each other and all
Ai
satisfies ( 1≤Ai≤n
).
 
Output
For each test case, print a number
ans
representing the answer.
 
Sample Input
2
3
1 3 2
6
2 3 4 5 6 1
 
Sample Output
2
6
 
Source
 
Recommend
hujie   |   We have carefully selected several similar problems for you:  5395 

pid=5394" target="_blank">5394 5393 

pid=5390" target="_blank">5390 5389 

给出一个序列,求变换几次能够回到原来的位置。比方 1 3 2 ,3 不在原来的位置,变到3位置。次数加1,2变到2,次数+1.得到2.。

做法就是分解循环长度。然后求下最小公倍数。

可是不能直接用lcm求最小公倍数。

。我们能够考虑用质数分解来求,即公共的质因子乘每一个数本身的质因子。

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> using namespace std; typedef long long ll;
typedef unsigned long long ull;
int a[3000010];
int vis[3000010];
int b[3000010];
const ll mod=3221225473;
inline int read()
{
char ch;
for (ch=getchar(); ch<48||ch>57;) ch=getchar();
int d=0;
for (; ch>47&&ch<58; ch=getchar()) d=d*10+ch-48;
return d;
}
ll gcd(ll a,ll b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
ll lcm(ll a,ll b)
{
return a/gcd(a,b)*b;
}
int main()
{
int t,n,i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=1; i<=n; i++)
a[i]=read();
memset(vis,0,sizeof(vis));
memset(b,0,sizeof(b));
for(i=1; i<=n; i++)
{
if(!vis[i])
{ int t=i;
int s=0;
while(!vis[t])
{
s++;
vis[t]=1;
t=a[t];
}
for(j=2; j*j<=s; j++)
{
int cnt=0;
while(s%j==0)
{
cnt++;
s/=j;
}
b[j]=max(b[j],cnt); //统计公共的质因子。 }
if(s>1)
b[s]=max(b[s],1);
}
}
// cout<<lcm(121,11)<<endl;
ull ans=1;
for(i=2; i<=n; i++)
for(j=1; j<=b[i]; j++)
ans=ull(ans)*i%mod;
cout<<ans<<endl;
}
}

HDU 5392 Infoplane in Tina Town的更多相关文章

  1. hdu 5392 Infoplane in Tina Town(数学)

    Problem Description There is a big stone with smooth surface in Tina Town. When people go towards it ...

  2. hdoj 5392 Infoplane in Tina Town

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5392 #include<stdio.h> #include<cstring> ...

  3. hdu5392 Infoplane in Tina Town(LCM)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Infoplane in Tina Town Time Limit: 14000/ ...

  4. HDU 5391Z ball in Tina Town 数论

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5391 bc:  http://bestcoder.hdu.edu.cn/contests/c ...

  5. hdu 5391 Zball in Tina Town(打表找规律)

    问题描述 Tina Town 是一个善良友好的地方,这里的每一个人都互相关心. Tina有一个球,它的名字叫zball.zball很神奇,它会每天变大.在第一天的时候,它会变大11倍.在第二天的时候, ...

  6. HDU 5391 Zball in Tina Town【威尔逊定理】

    <题目链接> Zball in Tina Town Problem Description Tina Town is a friendly place. People there care ...

  7. hdu 5391 Zball in Tina Town 威尔逊定理 数学

    Zball in Tina Town Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Oth ...

  8. HDU.5394.Trie in Tina Town(回文树)

    题目链接 \(Description\) 给定一棵\(Trie\).求\(Trie\)上所有回文串 长度乘以出现次数 的和.这里的回文串只能是从上到下的一条链. 节点数\(n\leq 2\times ...

  9. HDU 5391 Zball in Tina Town (打表,水)

    题意: Tina有一个球,它的名字叫zball.zball很神奇,它会每天变大.在第一天的时候,它会变大1倍.在第二天的时候,它会变大2倍.在第n天的时候,它会变大n倍.zball原来的体积是1.Ti ...

随机推荐

  1. JavaScript--改变 HTML 样式

    HTML DOM 允许 JavaScript 改变 HTML 元素的样式.如何改变 HTML 元素的样式呢? 语法: Object.style.property=new style; 注意:Objec ...

  2. ACM算法目录

    数据结构 栈,队列,链表 •哈希表,哈希数组 •堆,优先队列 双端队列 可并堆 左偏堆 •二叉查找树 Treap 伸展树 •并查集 集合计数问题 二分图的识别 •平衡二叉树 •二叉排序树 •线段树 一 ...

  3. 了解MySQL的字符集

    在数据库中,字符乱码属于常见.多发问题.鉴于本人水平顶多只能归于不入流之类,写这篇文章时内心诚惶诚恐,实在担心误导大家.内容仅供参考,若有错误,请各位及时指出,我也好学习提高! MySQL的字符集有4 ...

  4. Spring Boot (25) RabbitMQ消息队列

    MQ全程(Message Queue)又名消息队列,是一种异步通讯的中间件.可以理解为邮局,发送者将消息投递到邮局,然后邮局帮我们发送给具体的接收者,具体发送过程和时间与我们无关,常见的MQ又kafk ...

  5. Java&Xml教程(三)使用DOM方式修改XML文件内容

    DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素.删除元素.修改元素值.修改元素属性等操作. 我们的XML文件,内容如下: employee.xml <?xml version= ...

  6. 初学者Android studio安装

    学习过java基础,最近趁着大量课余时间想学习Android开发.百度很多资料Android studio,由Google开发的开发工具,那就不需要再多说.对于初学者的我来说,一定足够用了.此文主要介 ...

  7. WPF中的两个绑定场景

    1. 如何在诸如ListBox这样的项中绑定父类数据上下文. <ListBox Grid.Row=" ItemsSource="{Binding Entries}" ...

  8. IOS7升级攻略

    1) Select the main view, set the background color to black (or whatever color you want the status ba ...

  9. iview中Modal弹窗做form表单验证相关问题

    在modal中初始化状态,点击确定弹窗消失. 有的时候表单验证就不希望立刻消失 在iview官网中有自定义页头页脚 可以直接自定义使用 另一种验证写法 serform: { ctCatelogue: ...

  10. Eclipse安装和使用TFS

    第一步下载Tfs插件 去微软官网下载https://www.microsoft.com/en-us/download/details.aspx?id=4240 点击 选择下载 随便放置到一个本地或者服 ...