wenbao与数论(大白书)
最大公约数之和
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=26&problem=2421&mosmsg=Submission+received+with+ID+18788108
输入n 输出gcd(i,j) 1<=i<j<=n总和
1 #include <iostream> 2 using namespace std; 3 #define REP(i, x, n) for(int i = x; i < n; i++) 4 #define ll long long 5 const int maxn = 4000005; 6 int phi[maxn], p[maxn]; 7 ll f[maxn], s[maxn]; 8 bool vis[maxn]; 9 void Euler(int n){ 10 int i, j, k, cnt = 0; 11 phi[1] = 1; 12 for (i = 2; i < n; ++i){ 13 if (!vis[i]){ 14 p[cnt++] = i; 15 phi[i] = i - 1; 16 } 17 for (j = 0; j < cnt && i * p[j] < n; ++j){ 18 vis[i * p[j]] = true; 19 if (i % p[j]) phi[i * p[j]] = phi[i] * phi[p[j]]; 20 else { 21 phi[i * p[j]] = phi[i] * p[j]; 22 break; 23 } 24 } 25 } 26 } 27 int main(){ 28 Euler(maxn); 29 REP(i, 1, maxn){ 30 for(int j = i*2; j < maxn; j += i){ 31 f[j] += i * phi[j/i]; 32 } 33 } 34 s[2] = f[2]; 35 REP(i, 3, maxn) s[i] = s[i-1] + f[i]; 36 int n; 37 while(scanf("%d", &n) && n){ 38 printf("%lld\n", s[n]); 39 } 40 return 0; 41 }
只有不断学习才能进步!
转载于:https://www.cnblogs.com/wenbao/p/6407414.html
wenbao与数论(大白书)相关推荐
- 大白书 1.3节 高效算法设计举例
大白书 1.3节 高效算法设计举例 例题 17 UVA 11462 简单题,注意那个数值的范围是100以内就可以了. #include <cstdio> #include <cstr ...
- 大白书中无向图的点双联通分量(BCC)模板的分析与理解
对于一个无向图,如果任意两点至少存在两条点不重复(除起点和终点外无公共点)的路径,则这个图就是点双联通. 这个要求等价于任意两条边都存在于一个简单环(即同一个点不能在圈中出现两次)中,即内部无割点. ...
- 紫书的训练计划——一点点来,坚持到底!
先做 第10章3 数论的一点补充. 然后趁热温习 10.1 和10.2 (可能会有重的题目) (期望,概率的题目还要过段时间回来补坑) 然后 第7.8.1,8.2 章做暴力求解和高效算法(可以 ...
- POJ 3154 Graveyard【多解,数论,贪心】
Graveyard Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 1707 Accepted: 860 Specia ...
- 数论基础之中国剩余定理(附证明)
前言 一直觉得中国剩余定理很难,因为怕麻烦一直没有去搞,直到区域赛网络赛在即,直到--退役赛在即.(果然DDL是原生动力,可能是爱得不够深吧)学了一下,觉得其实也没那么难,如果理解不了证明的话,看懂每 ...
- 洛谷---数学---数论
洛谷---数学---数论 http://www.luogu.org 单看 数学 数论 的书,纯理论,看不进,决定还是从做题开始,不明白的地方再看书,以上机训练,促进看书,同样 从 简单--->难 ...
- Uvalive 3523 - Knights of the Round Table (双连通分量+二分图)
题目链接 https://vjudge.net/problem/UVALive-3523 [题意] 有n个骑士经常举行圆桌会议,每次圆桌会议应至少有3个人参加且人数必须是奇数,相互憎恨的骑士不能坐在圆 ...
- UVa 11732 (Tire树) strcmp() Anyone?
这道题也是卡了挺久的. 给出一个字符串比较的算法,有n个字符串两两比较一次,问一共会有多少次比较. 因为节点会很多,所以Tire树采用了左儿子右兄弟的表示法来节省空间. 假设两个不相等的字符串的最长公 ...
- UVA11825: Hackers' Crackdown (状压dp)
题意:有n台计算机,每台有n种服务.每台计算机有m个邻居,停止某台计算某个服务时,它邻居的相应服务也会停止,现在每台计算机可以选择停止其中一项服务,目标是让尽量多的服务停止(所有计算机都停止该服务). ...
最新文章
- B-tree结构菜单的递归查询
- Web访问RabbitMQ
- 测试无线节能信标与主控器之间的控制功能
- 【AHOI2005】病毒检测
- scala简单学习---1
- 循环神经网络-Dropout
- Python 学习笔记(3)对txt文件的读与写操作(下)
- 11.InfluxDB引擎原理
- 电脑显示无法连接sql服务器,他人的电脑为什么无法连接我电脑上的sql sever服务器...
- Python Tricks(二十)—— 阶乘的极简实现
- Ubuntu16.04 LTS无法开启无线网开关的解决方法(联想Y7000)
- 苹果开发者账号双重认证
- php 786.00,美國佛羅裡達州區號786
- 【数据挖掘】啤酒与尿布
- 我这些年我用过的12 个企业级开源系统,亲测非常好用,非常适合公司开发
- 成为软件工程师之前,你必须了解这些
- CDN 缓存与浏览器缓存
- 题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度。 程序的输入是一个整数,表示华氏温度。输出对
- markdown中关于空格缩进的问题
- 中西宗教精神之比较研究
热门文章
- leetcode 144. Binary Tree Preorder Traversal ----- java
- Cordic的学习之硬件实现
- qemu a fast and portable dynamic translator——大致翻译
- 如何使用Windows OVERLAPPED优化你的应用
- 基于SkyEye的覆盖率测试
- 2021-06-01 深入分析偏向锁、轻量级锁和重量级锁
- java fastdfs 压测_利用jmeter+JAVA对RPC的单接口(dubbo接口等)进行性能测试,零基础(2)...
- (43)生成时钟Generated Clock简介
- (60)UART外设驱动发送驱动(五)(第12天)
- (34)System Verilog引用包中定义的类(失败)