Bryce1010模板

先找到数组A中的循环节,再找到数组B中的循环节,如果B中的循环节是A中循环节的循环因子,说明可以配对,结果累积起来。

#include<bits/stdc++.h>
using namespace std; const int MAXN=1e6+10;
const int MOD=1e9+7;
#define LL long long LL a[MAXN],b[MAXN];
LL num1[MAXN],num2[MAXN];
int main()
{
LL n,m;
LL ca=1;
while(scanf("%lld%lld",&n,&m)==2)
{
memset(num1,0,sizeof(num1));
memset(num2,0,sizeof(num2)); for(int i=0;i<n;i++)scanf("%lld",&a[i]);
for(int i=0;i<m;i++)scanf("%lld",&b[i]); //首先求a的循环节
//i===f(a[i])
//num[i]表示都i个循环节的长度
LL tot=0;
for(int i=0;i<n;i++)
{
if(a[i]==-1)continue; tot++;
LL ii=i;
while(a[ii]!=-1)
{
num1[tot]++;
LL t=ii;
ii=a[ii];
a[t]=-1;
} } //求b的循环节,num2[i]表示长度为i的循环节的数量 for(int i=0;i<m;i++)
{
if(b[i]==-1)continue;
LL len=0;
LL ii=i;
while(b[ii]!=-1)
{
len++;
LL t=ii;
ii=b[ii];
b[t]=-1;
}
num2[len]++;
} //开始匹配,如果长度相同则匹配成功,累积
LL sum=1;
for(int i=1;i<=tot;i++)
{
LL cnt =0;
//cout<<num1[i]<<endl;
for(int j=1;j<=num1[i];j++)
{
if(num1[i]%j==0)
{
cnt=(cnt+num2[j]*j)%MOD;
//cout<<cnt<<num1[i]<<endl;
}
}
sum=(sum*cnt)%MOD;
}
printf("Case #%lld: %lld\n",ca++,sum%MOD); } return 0;
}

F - Function的更多相关文章

  1. js Function()构造函数

    var scope="global";    function constructFunction(){        var scope="local";   ...

  2. Function构造函数

    使用Function构造函数, 也能够创建函数, 和使用关键字function定义函数有几点区别: 使用function关键字这样定义函数: var f = function(x,y) {return ...

  3. JavaScript自运行函数(function(){})()的理解

    今天打开JQuery源文件(jquery-1.8.3), 看到JQuery的初始化过程是这样的 (function( window, undefined ) { // .... })( window ...

  4. JS原型的问题Object和Function到底是什么关系

    var F = function(){}; Objcert.prototype.a = function(){}; Function.prototype.b = function(){}; F 既能访 ...

  5. JS特殊函数(Function()构造函数、函数直接量)区别介绍

    函数定义 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 函数的构造语法有这三种: 1.function functionName(arg0, ...

  6. function foo(){}、(function(){})、(function(){}())等函数区别分析

    前面一段时间,看到(function(){}),(function(){}())这些函数就犯晕,不知道它到底是什么意思,为什么函数外要加小括号,函数后要加小括号,加和不加到底有什么区别……一直犯迷糊, ...

  7. Function, Predicate

    Function, Predicate的使用 Function用于把一种类型的对象转化为另一种类型的对象.Predicate用于判断某个对象是否符合一定条件. 一.Function和Functions ...

  8. commonJS — 函数操作(for Function)

    for Function github: https://github.com/laixiangran/commonJS/blob/master/src/forFunction.js 代码 /** * ...

  9. 译文:javascript function中的this

    个人理解+google翻译.如有错误,请留言指正.原文来自MDN: this 简介 Javascript中一个函数的this关键字的行为相对其它语言有些不同.在严格模式和非严格模式间也有区别. 在大多 ...

随机推荐

  1. 【APUE】关于信号的一些常用函数

    kill和raise函数 #include <signal.h> int kill(pid_t pid,int signo); int raise(int signo);//两个函数返回值 ...

  2. php monolog 的写日志到unix domain socket 测试终于成功

    在另外一个客户端执行 php s.php后, 通过nc -lU /tmp/tg.sck 建立的unix domain socket 有接收到消息. <?php require 'vendor/a ...

  3. SQL 通用数据类型

    SQL 通用数据类型 数据类型定义列中存放的值的种类. SQL 通用数据类型 数据库表中的每个列都要求有名称和数据类型.Each column in a database table is requi ...

  4. Scrum 常见错误实践 之 形式化的站会

    站会作为一个团队最容易实施的敏捷实践,为广大team leader和老板们所喜欢,但大部分程序员却很抵触.其主要原因就是很多时候站会都流于形式,没能帮助团队成员解决问题.改进效率. 一种常见的情况就是 ...

  5. 解决运行scrapy是报错No module named cryptography,解决cryptography的安装问题,解决libffi的安装问题

    在linux下配置完运行是出现ImportError: No module named cryptography.hazmat.bindings.openssl.binding的错误.原因是crapt ...

  6. java移位运算符实验程序:&lt;&lt;(左移)、&gt;&gt;(带符 号右移)和&gt;&gt;&gt;(无符号右移)

    public class txs { static void leftbit(){ int i;               //整型长度为32位                           ...

  7. 计算机体系结构的铁律(iron law)

    计算机体系结构的铁律可由下面公式来描写叙述: 从Programmer的角度来看,处理器的性能就是运行程序的耗费的时间.所以用Time/Program来刻画处理器性能.而这个简单的公式背后是有很丰富的内 ...

  8. 大话设计模式C++实现-第19章-组合模式

    一.UML图 关键词:Leaf是叶子,Composite是非叶子节点,Composite包括Leaf. 二.概念 组合模式(Composite):将对象组合成树形结构以表示"部分-总体&qu ...

  9. Wiz笔记发布博客工具无法获取分类修复

    使用Wiz笔记可以很方便的将笔记发布到博客,而且支持markdwon书写,并且可以很方便的通过复制粘贴来插入图片. 用法:http://blog.wiz.cn/wiz-plugin-blog-writ ...

  10. 2016/2/25 onchange 应用

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...