Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 386  Solved: 296
[Submit][Status][Discuss]

Description

Mato同学最近正在研究一种矩阵,这种矩阵有n行n列第i行第j列的数为gcd(i,j)。
例如n=5时,矩阵如下:
1 1 1 1 1
1 2 1 2 1
1 1 3 1 1
1 2 1 4 1
1 1 1 1 5
Mato想知道这个矩阵的行列式的值,你能求出来吗?

Input

一个正整数n mod1000000007
n<=1000000

Output

n行n列的Mato矩阵的行列式。

Sample Input

5

Sample Output

16

HINT

 

Source

Orz PoPoQQQ

高斯消元之后发现对角线是欧拉函数。。

然后就做完了。

// luogu-judger-enable-o2
#include<cstdio>
#include<algorithm>
#define LL long long
using namespace std;
const int MAXN = 1e7 + , mod = 1e9 + ;
int N;
LL ans = ;
int prime[MAXN], tot, vis[MAXN], phi[MAXN];
void GetPhi(int N) {
phi[] = ;
for(int i = ; i <= N; i++) {
if(!vis[i]) prime[++tot] = i, phi[i] = i - ;
for(int j = ; j <= tot && i * prime[j] <= N; j++) {
vis[i * prime[j]] = ;
if(i % prime[j] == ) phi[i * prime[j]] = phi[i] * prime[j];
else phi[i * prime[j]] = phi[i] * phi[prime[j]];
}
}
}
int main() {
scanf("%d", &N);
GetPhi(1e6 + );
for(int i = ; i <= N; i++) ans = (1ll * ans * phi[i]) % mod;
printf("%lld", ans);
return ;
}
/*
123 321
*/

BZOJ3288: Mato矩阵(欧拉函数 高斯消元)的更多相关文章

  1. 【bzoj1778】[Usaco2010 Hol]Dotp 驱逐猪猡 矩阵乘法+概率dp+高斯消元

    题目描述 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44,850)条由两 ...

  2. CF917D. Stranger Trees & TopCoder13369. TreeDistance(变元矩阵树定理+高斯消元)

    题目链接 CF917D:https://codeforces.com/problemset/problem/917/D TopCoder13369:https://community.topcoder ...

  3. CF917D Stranger Trees【矩阵树定理,高斯消元】

    题目链接:洛谷 题目大意:给定一个$n$个节点的树$T$,令$ans_k=\sum_{T'}[|T\cap T'|=k]$,即有$k$条边重合.输出$ans_0,ans_1,\ldots,ans_{n ...

  4. 【Luogu】P3317重建(高斯消元+矩阵树定理)

    题目链接 因为这个专门跑去学了矩阵树定理和高斯消元qwq 不过不是很懂.所以这里只放题解 玫葵之蝶的题解 某未知dalao的矩阵树定理 代码 #include<cstdio> #inclu ...

  5. HDU4549 M斐波那契数列 矩阵快速幂+欧拉函数+欧拉定理

    M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Sub ...

  6. HDU 3221 矩阵快速幂+欧拉函数+降幂公式降幂

    装载自:http://www.cnblogs.com/183zyz/archive/2012/05/11/2495401.html 题目让求一个函数调用了多少次.公式比较好推.f[n] = f[n-1 ...

  7. HDU 4549 矩阵快速幂+快速幂+欧拉函数

    M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Sub ...

  8. POJ-2888 Magic Bracelet(Burnside引理+矩阵优化+欧拉函数+逆元)

    Burnside引理经典好题呀! 题解参考 https://blog.csdn.net/maxwei_wzj/article/details/73024349#commentBox 这位大佬的. 这题 ...

  9. 数学基础IV 欧拉函数 Miller Rabin Pollard's rho 欧拉定理 行列式

    找了一些曾经没提到的算法.这应该是数学基础系最后一篇. 曾经的文章: 数学基础I 莫比乌斯反演I 莫比乌斯反演II 数学基础II 生成函数 数学基础III 博弈论 容斥原理(hidden) 线性基(h ...

随机推荐

  1. Kudu安装(官网推荐的步骤)(installing Kudu using parcels or packages)

    不多说,直接上干货! Kudu安装前的建议说明(博主推荐) Kudu官网推荐的步骤: 本篇博文是installing Kudu using parcels or packages的方式. http:/ ...

  2. REST与DDD

    之前在为什么要使用MVC+REST+CQRS架构我曾经提出DDD是核心,REST是壳的观点,我想在这里详细谈谈我的思路. 今天正好看看到老外一篇博文Why REST is so important:按 ...

  3. poj 3140 树形去边差异最小

    http://poj.org/problem?id=3140 依然是差异最小问题,不过这次是去边.思路是这样的,先记录每个点的子节点个数,然后遍历每个边. 有两个问题要注意: abs可能会出编译适配问 ...

  4. 在页面rem布局中用到的js代码

    在你的页面加入以下代码,就初步搞定了 function fontSize() { var view_width = document.getElementsByTagName('html')[0].g ...

  5. GitHub webstorm 及 README.md 姿势

    README.md 语法格式: 规范的README文件开头都写上一个标题,这被称为大标题. 标题: #一级标题 ##二级标题 ###三级标题 ####四级标题 #####五级标题 ######六级标题 ...

  6. Struts2_结果类型_resulttype_1

    看下面的例子: 一般使用4种:dispatcher(容器内跳转到JSP页面).redirect(重定向到jsp页面).chain(容器内跳转到另一个Action).redirectAction(重定向 ...

  7. c++基础(积少成多)

    1.#include<string> #include<iostream> 这是引用头文件: 2.Using namespace std; 这是引用命名空间,防止同一个命名空间 ...

  8. 搭建Web开发环境JavaEE_Eclipse

    1. 下载和安装1.1 下载JDK在Java官方网站下载最新版本的 Java SE:  http://www.oracle.com/technetwork/java/javase/downloads/ ...

  9. U深度U盘启动盘制作工具怎么用?U深度U盘启动盘制作工具使用教学

    U深度u盘启动盘制作工具是一款强大的启动盘制作软件,对于新手用户来说,由于软件专业度很高,想一下就上手是比较困难的.所以这里给大家分享一篇U深度u盘启动盘制作工具的使用教程. 使用教程: 第一步:安装 ...

  10. MVC:控制器名与被调用模型名称发生冲突的解决方案

    控制器名与被调用的模型名发生了冲突: 有两种解决方案: (1)将被调用的模型类名进行修改 例如: (2)对被调用的模型进行起一个别名 以上 加油ヾ(◍°∇°◍)ノ゙