【summary】mat 【万恶溢出!!】
来源:互联网 发布:机战登录器源码 编辑:程序博客网 时间:2024/06/08 19:36
教训:int*int除了考虑最后答案溢出还要考虑中间溢出呀!(唔。。虽然最后全部换成了LL)
#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;typedef long double LD;void read(LL& x){char c = getchar();x = 0;bool flag = false;while(c<'0'||c>'9')c=='-'?flag=true:1,c=getchar();while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}flag?x=-x:1;}#define maxn 50010LL n,a[maxn],b[maxn];LL sum[maxn],sqsum[maxn];LD ans = 0.0;inline LD cal(int i,int k,LL s,LL ss){return ((LL)k*a[i]*a[i]-2LL*a[i]*s+ss)*1.0/n;}int main(void){#define ACK#ifdef ACKfreopen("mat.in","r",stdin);freopen("mat.out","w",stdout);#endifread(n);for(int i=1;i<=n;i++)read(a[i]);for(int i=1;i<=n;i++)read(b[i]);sort(a+1,a+1+n);sort(b+1,b+1+n);for(int i=1;i<=n;i++){sum[i]=sum[i-1]+b[i];sqsum[i]=sqsum[i-1]+b[i]*b[i];}int cnt = 0;for(int i=1;i<=n;i++)if(a[1]<b[i]){cnt = i-1;break;}for(int i=1;i<=n;i++){while(cnt<n&&a[i]>b[cnt+1])cnt++;ans+=cal(i,cnt,sum[cnt],sqsum[cnt]);if(cnt<n)ans-=cal(i,n-cnt,sum[n]-sum[cnt],sqsum[n]-sqsum[cnt]);}printf("%.1lf",(double)ans);return 0;}
1 0
- 【summary】mat 【万恶溢出!!】
- tomcat 内存溢出万恶OOM
- 内存溢出 MAT jvisualVM
- 万恶
- 一次MAT分析logstash内存溢出
- Summary
- summary
- summary
- Summary
- Summary
- summary
- Summary
- summary
- summary
- summary
- summary
- summary
- summary
- 单片机码表的驱动程序
- 第四周 项目5-多项式求和
- Modbus协议分类
- vb中函数的调用与参数的传递
- 追着嘟嘟学c#系列基础第十篇-----c#字符串【蓝鸥出品】
- 【summary】mat 【万恶溢出!!】
- 一个OpenCL例子
- Informatica常用组件使用方法
- Android中的一些命令
- HDU 5895 Mathematician QSC(逆元应用+矩阵快速幂+数论知识)——2016 ACM/ICPC Asia Regional Shenyang Online
- IDoc SAP2SAP
- 如何将png图片转换成.9.png格式,textview实现跑马灯效果
- 看别人文章归纳的一点C/C++小细节
- 顺序表应用6:有序顺序表查询