FZU 1591 Coral的烦恼
Problem Description
程序设计课的老师给Coral布置了一道题:用T(n)表示所有能整除n的正整数之和,对于给定的数字n,记S(n)=T(1)+T(2)+…+ T(n)。你的任务就是帮助Coral求出S(n)。
Input
本题有多组输入数据,你必须处理到EOF为止。
每组数据输入仅一行一个整数n (1<=n<231)。
Output
输出一行一个数字S(n)。
有种 O(N)的算法 for(i = 1; i <= N; i++) sum(i*(n/i));
意思就是 枚举每个 因子总共出现的次数乘以该因子 比如 在100 中 2会被计算 50次 3会被计算33次 那么 2*50 + 3*33就是 因子2和因子3在n=100时的总和 但是我们可以将复杂度简化到 sqrt(N);
对于给定的 N,记 sq = sqrt(N);
对于 1<= i < sq,计算
sum(i*(n/i)),这样得到了答案的一部分(对于小于 sq 的因子 i 乘以所有可能的个数,再加起来)。
那么 >= sq 的因子 j
呢?
我们可以统计自 j 到 N 的数中,某因子出现 1 次的数(肯定是连续的)的个数,出现 2 次的数(肯定是连续的)的个数,。。。。。。
比如
N = 12;sq = 3;
那么因子 1,2,3 招致的和就是 1* 12 + 2*6 + 3* 4 = 36。
自 4 到 12 ,该因子 出现 1 次的数是 7,8,9,10,11,12;和是 (7+ 12) * 6/2 = 57;
该因子出现 2 次的数是 5,6,和是 (5+6) * 2 = 22;
该因子出现 3 次的数是 4,和是 12。
那么出现 ii 次的数是 (N/(1+ii), N/ii]。
转自 http://218.245.3.161/2011/03/08/5687 #include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <stdio.h>
#include <string.h>
using namespace std;
#define maxm 100010
#define maxn 1000110
int main()
{
int n;
int i;
__int64 ans=;
__int64 l,r;
while(scanf("%d",&n)!=EOF){
ans=;
for(i=;i*i<=n;i++){
l=n/(i+)+,r=n/i;
if(l>i)
ans+=(l+r)*(r-l+)/*i;
ans+=(n/i)*i;
}
printf("%I64d\n",ans);
}
return ;
}
FZU 1591 Coral的烦恼的更多相关文章
- FOJ 1591 —— Coral的烦恼
#include<stdio.h> int main() { __int64 n,i,sum,l,r; while(scanf("%I64d",&n)!=EOF ...
- FZU 2090 旅行社的烦恼 floyd 求无向图最小环
题目链接:旅行社的烦恼 题意是求无向图的最小环,如果有的话,输出个数,并且输出权值. 刚刚补了一发floyd 动态规划原理,用了滑动数组的思想.所以,这个题就是floyd思想的变形.在k从1到n的过程 ...
- 跟我一起学.NetCore之Swagger让前后端不再烦恼及界面自定义
前言 随着前后端分离开发模式的流行,接口对接.联调成为常事,前端同事会经常问:我需要调哪个接口?这个接口数据格式是啥?条件都传啥? 对于一些紧急接口可能会采取沟通对接,然后补文档,其他的都会回一句:看 ...
- 【热门技术】EventBus 3.0,让事件订阅更简单,从此告别组件消息传递烦恼~
一.写在前面 还在为时间接收而烦恼吗?还在为各种组件间的消息传递烦恼吗?EventBus 3.0,专注于android的发布.订阅事件总线,让各组件间的消息传递更简单!完美替代Intent,Handl ...
- CPU阿甘之烦恼
转自“码农翻身”公共号,原文地址CPU阿甘之烦恼 总结:(程序加载到内存运行的演变过程) 内存存放程序.OS负责加载程序到内存.CPU负责运行内存中的程序 1.串行:加载一个完整程序到内存,CPU运行 ...
- FZU 2137 奇异字符串 后缀树组+RMQ
题目连接:http://acm.fzu.edu.cn/problem.php?pid=2137 题解: 枚举x位置,向左右延伸计算答案 如何计算答案:对字符串建立SA,那么对于想双延伸的长度L,假如有 ...
- FZU 1914 单调队列
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1914 题意: 给出一个数列,如果它的前i(1<=i<=n)项和都是正的,那么这个数列是正的,问这个 ...
- ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】
FZU 2105 Digits Count Time Limit:10000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- BZOJ 1005 [HNOI2008] 明明的烦恼(组合数学 Purfer Sequence)
题目大意 自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为 1 到 N 的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为 N( ...
随机推荐
- 首次push本地代码到github上出现的问题及解决方案
刚创建的github版本库,在push代码时出错: $ git push -u origin masterTo git@github.com:******/Demo.git ! [rejected] ...
- dll 入口函数
http://support.microsoft.com/kb/815065/zh-cn // SampleDLL.cpp // #include "stdafx.h" #defi ...
- float2int
flaot转int时,会直接舍弃小数为,但是当把f所在的地址的数据当成int解析时,就是另外的情况了. #include<iostream> using namespace std; in ...
- mac下SVN上传.a静态库文件
在mac下很多svn管理工具默认都不能上传.a文件,但是用命令行可以解决此问题. 打开终端,cd 进入到需要上传的.a文件所在的文件夹. 确保 ls能看到.a文件 然后使用命令,如:svn add l ...
- Xamarin for Visual Studio 3.11.658 Alpha 版 破解补丁
注意:此版本为 Alpha 版,版本迭代较频繁,仅供尝鲜 前提概要 全新安装请参考 安装 Xamarin for Visual Studio. 最新稳定版请参考 Xamarin for Visual ...
- 6.5 THUSC 考试题解
QAQ 由于并没有数据,而且没有A掉的是提交答案题目,所以并没有修改 QAQ 只能放题解了,代码还没有拿到,不过在清华听了一波习题讲评的安利 第一题 成绩单 先说暴力分 对于单调序列来说最优决策一定是 ...
- BZOJ 3720 gty的妹子树
块状树裸题 块状树: 首先对树进行分块,分出的每一块都是一个连通块 通常的分块的方式如下: 1.父亲所在块不满,分到父亲所在块中 2.父亲所在块满,自己单独开一个块 (貌似有更为优越的分块方式? 注意 ...
- 在sklearn上读取人脸数据集保存图片到本地
程序如下: # -*- coding: utf-8 -*- """ Created on Sat Oct 31 17:36:56 2015 ""&qu ...
- cv 论文(CNN相关)
最近发现很多以前看的论文都忘了,所以想写点东西来整理下之前的paper,paper主要是cv(computer vision)方向的. 第一篇:Gradient-based learning appl ...
- PHP输入流php://input [转]
对于php://input介绍,PHP官方手册文档有一段话对它进行了很明确地概述. "php://input allows you to read raw POST data. It is ...