BZOJ 4173: 数学

4173: 数学

Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 462  Solved: 227
[Submit][Status][Discuss]

Description

Input

输入文件的第一行输入两个正整数 。

Output

如题

Sample Input

5 6

Sample Output

240

HINT

N,M<=10^15

Source

[Submit][Status][Discuss]

据说单个欧拉函数$phi(N)$可以在$O(\sqrt{N})$的时间内求出来,所以只关心$\sum_{k\in S(n,m)}{\phi{k}}$是什么。看下PoPoQQQ。

n%k+m%k≥k等价于⌊n+mk⌋−⌊nk⌋−⌊mk⌋=1 
无视掉前面的φ(n)∗φ(m)的话答案就是 
∑n%k+m%k≥kφ(k) 
=∑n+mk=1φ(k)∗⌊n+mk⌋−∑nk=1φ(k)∗⌊nk⌋−∑mk=1φ(k)∗⌊mk⌋

那么∑nk=1φ(k)∗⌊nk⌋又是什么呢? 
∑ni=1i=∑ni=1∑k|iφ(k)=∑nk=1φ(k)∗⌊nk⌋

因此答案为φ(n)∗φ(m)∗(∑n+mi=1i−∑ni=1i−∑mi=1i)=φ(

 1 #include <cstdio>
 2
 3 typedef long long lnt;
 4
 5 __inline lnt phi(lnt n)
 6 {
 7     lnt r = n;
 8
 9     for (lnt i = 2; i*i <= n; ++i)
10         if (n % i == 0)
11         {
12             r = (r / i) * (i - 1);
13             while (n % i == 0)n /= i;
14         }
15
16     if (n != 1)r = (r / n) * (n - 1);
17
18     return r;
19 }
20
21 const lnt mod = 998244353LL;
22
23 lnt n, m;
24
25 signed main(void)
26 {
27     scanf("%lld%lld", &n, &m);
28     printf("%lld\n",
29         ((phi(n) % mod) * (phi(m) % mod) % mod)
30     *    ((n % mod) * (m % mod) % mod) % mod);
31 }

@Author: YouSiki

时间: 2024-10-07 05:29:44

BZOJ 4173: 数学的相关文章

[BZOJ 4173]数学【欧拉函数】

[Description] (1<=n,m<=10^15) Read More >> http://codeplay0314.is-programmer.com/posts/101200.html 版权声明:本文为博主原创文章,未经博主允许不得转载.

【bzoj 4173】数学

Description Input 输入文件的第一行输入两个正整数 . Output 如题 Sample Input 5 6 Sample Output 240 HINT N,M<=10^15 题解: 之前做的,今天突然留了,想起了就补上. 首先对于 m%k+n%k>=k 那么设m=a1*k+b1,n=a2*k+b2;  m%k+n%k>=k ===> (a1+a2)*k+b1+b2>=(a1+a2+1)*k   即 (a1*k+b1)+(a2*k+b2)>=(a1+a

BZOJ 2326 数学作业

矩阵快速幂. #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; struct matrix { long long a[4][4]; long long n,m; }a,b; long long n,m,l=1,r=10; long long mmul(long long a,

BZOJ 4173 数论

思路: $(m%k+n%k>=k) *phi(k)$ $我们不妨设n=q_1k+r_1 m=q_2k+r$2 $n+m=(q_1+q_2)k+r1+r2$ ${\lfloor}\frac{n+m}{k}{\rfloor}-{\lfloor}\frac{m}{k}{\rfloor}-{\lfloor}\frac{n}{k}{\rfloor}=(m%k+n%k>=k)$ $原式=phi(k)*({\lfloor}\frac{n+m}{k}{\rfloor}-{\lfloor}\frac{m}{k}

【BZOJ-4173】数学 欧拉函数 + 关于余数的变换

4173: 数学 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 306  Solved: 163[Submit][Status][Discuss] Description Input 输入文件的第一行输入两个正整数 . Output 如题 Sample Input 5 6 Sample Output 240 HINT N,M<=10^15 Source Solution 数论好题,开始无从下手,推导后感觉新姿势++ 题目大意:求$\varphi(

联赛之前的题表(已完成)汇总(可能有遗漏)

联赛之前的搞搞(其实是懒得分类) 博弈论 poj3537 poj1704 hdu5996两个插头 HDU1693 Eat the Trees COGS1283. [HNOI2004] 邮递员kdtree板子1941: [Sdoi2010]Hide and Seek旋转卡壳 pj2187凸包 cogs896 bzoj2829 信用卡凸包莫比乌斯反演基础 bzoj 4173 zhao gui lv bzoj 3529 mobiwus bzoj 4407 mobiwus bzoj 2818 mobiw

矩阵乘法专题4——bzoj 2326 [HNOI2011] 数学作业 题解

转载请注明:http://blog.csdn.net/jiangshibiao/article/details/24963747 [原题] 2326: [HNOI2011]数学作业 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 853  Solved: 473 [Submit][Status] Description [分析]我们按数字的位数来划分.对于K位数,我们就可以专门设计一个矩阵来计算. 然后就是注意细节了. [代码] #include

BZOJ 1696 [Usaco2007 Feb]Building A New Barn新牛舍 数学

题意:链接 方法:数学+模拟 解析: 首先这类问题不是第一次见了,所以直接知道拿x的中位数.y的中位数. 这题就是讨论情况很的烦. 题中有个限制,给出待求和的点不能选取. 所以假设奇数个点,求出x中位数,y中位数. 检验x,y是否存在待求和的点集里,如存在则推断四种情况. 推断的四种情况各自是(x-1,y),(x+1,y),(x,y-1),(x,y+1),次优解一定存在于这四种情况中,这个应该很好理解? 假设不存在于原点集中.则直接求和. 假设偶数个点,则讨论全部x可取值以及y可取值就可以,建议

【BZOJ 2326】 [HNOI2011]数学作业

2326: [HNOI2011]数学作业 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1100  Solved: 625 [Submit][Status] Description 矩阵乘法. 可以用类似于秦九韶算法,把被取模的数拆开. 如123%m=(((1%m)*10+2)%m*10+3)%m 我们发现对于位数相同的数的计算方法是一样的,想到矩阵乘法. 对于1位的数: matrix x=10^1  0  0 1       1  0 0