【HDU6038】Function(循环节+计数)
来源:互联网 发布:事情正在起变化 知乎 编辑:程序博客网 时间:2024/04/27 22:23
记录一个菜逼的成长。。
2017 Multi-University Training Contest - Team 1
题目链接
题目大意:
给你长度为
求有多少种函数满足
笔记(官方题解
考虑置换
那么
而如果
答案就是
#include <bits/stdc++.h>using namespace std;#define rep(i,l,r) for( int i = l; i <= r; i++ )#define rep0(i,l,r) for( int i = l; i < r; i++ )#define ALL(v) (v).begin(),(v).end()#define cl(a,b) memset(a,b,sizeof(a))#define clr clear()#define pb push_back#define mp make_pair#define fi first#define se secondtypedef long long LL;typedef pair<int,int> PII;const int INF = 0x3f3f3f3f;const int MOD = 1e9 + 7;const int maxn = 100000 + 10;int a[maxn],b[maxn],vis[maxn];int cnt[maxn],fa[maxn];int main(){ int cas = 1,n,m; while(~scanf("%d%d",&n,&m)){ rep(i,1,n)scanf("%d",a+i),a[i]++; rep(i,1,m)scanf("%d",b+i),b[i]++; cl(vis,0); int len = 0; //计算a的循环节 rep(i,1,n){ int l = 0,ind = a[i]; while(!vis[a[ind]]){ vis[a[ind]] = 1; l++;ind = a[ind]; } if(l)fa[len++] = l; } cl(vis,0);cl(cnt,0); //统计b的循环节的长度数量 rep(i,1,m){ int l = 0,ind = b[i]; while(!vis[b[ind]]){ vis[b[ind]] = 1; l++;ind = b[ind]; } if(l)cnt[l]++; } LL ans = 1; rep0(i,0,len){ int num = fa[i]; LL sum = 0; int k = sqrt(num + 0.5); for( int j = 1; j <= k; j++ ){ if(num % j == 0){ sum += j * cnt[j]; sum %= MOD; if(num/j != j){ sum += num/j * cnt[num/j]; sum %= MOD; } } } ans = ans * sum % MOD; } printf("Case #%d: %lld\n",cas++,ans); } return 0;}
阅读全文
0 0
- 【HDU6038】Function(循环节+计数)
- hdu6038 Function
- HDU6038 Function
- HDU6038-Function 思维+组合问题
- HDU6038-Function(置换群)
- hdu6038
- hdu6038
- HDU6038——Function(图论,tarjan)
- hdu6038-思维-2017多校(2)-Function
- HDU 6038 Function (2017多校1 -- 找循环节计数)
- 2017多校第一场1006 function(HDU6038)
- hdu 6038 Function 循环节
- HDU6038 Functions
- HDU 6038 Function 找循环节
- HDU 6038 Function(找循环节)
- HDU 6038 Function(置换->循环节)
- linux shell 循环计数
- js gridview 循环计数
- java设计把两个字符串的值交换 而不使用中间变量
- Codeforces837D
- Uploading pictures from Ionic 3 to Spring Boot
- EOPLL ET 第一次写,请大神们帮忙纠错
- 织梦dedecms自定义功能函数(2):将人名币数字转换成大写输出
- 【HDU6038】Function(循环节+计数)
- 网站安全-前端XSS攻击和防御
- CodeForces
- 初学 shiro —— 登录认证与授权
- ios 整型 位数
- 开源|基于TensorFlow的聊天机器人-ErGo
- Maven详解(三)------ Maven工程目录介绍
- Spark源码分析之worker节点启动driver和executor
- 一个微信投票系统的投票限制实现