ZJU 3175
来源:互联网 发布:育碧出的mac 编辑:程序博客网 时间:2024/05/01 23:13
题意:
求n*(1/1+1/2+1/3+……1/(n-2)+1/(n-1))-n
的值
由于n非常大 所以不能直接暴力。
画y=n/i 的图像 反函数
x轴为i,每个i 对应的垂直线上的整数点,即为答案,由于关于y=x对称,所以只需计算sqrt(n)即为k,结果*2
,但会增加图中红色部分,所以要减去红色部分的两倍。
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <string>#include <vector>#include <math.h>#define LL long long#define maxn 1005#define INF 99999999using namespace std;int main(){int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);if(n==1){printf("0\n");continue;}LL ans=0;int k=sqrt(n*1.0);for(int i=1;i<=k;i++)ans+=n/i;ans*=2;printf("%lld\n",ans-k*k-n);}return 0;}
0 0
- ZJU 3175
- zju 1394
- ZJU 1002
- zju 1091
- zju 1025
- zju 2870
- ZJU-1042
- ZJU-1074
- ZJU-1070
- ZJU-1067
- ZJU-1066
- ZJU-1073
- ZJU-1076
- ZJU-1078
- ZJU-2722
- ZJU-1089
- ZJU-1090
- ZJU-1091
- 在CentOS上用yum来安装program
- HDU 3666 THE MATRIX PROBLEM
- 一种排序(nyoj 8)
- FFmpeg浅尝辄止(四)——音频的解码和编码
- Android wifi开发
- ZJU 3175
- poj1002
- 首行和末行是*,中间几行会是文字,让文字居中显示
- PHP中使用cURL实现Get和Post请求的方法
- 黑马程序员:C语言基本知识(3)
- UVa668 - Parliament(贪心)
- Java内存泄露的理解与解决
- 读取jar包中数据源文件
- JavaScript学习日志1