• LOJ6487 基础FFT练习题


    Link
    注意到(sum a,sum ble10^6),所以不同的(a,b)只有(10^3)级别。
    因此我们预处理开根的结果,然后开桶记录有多少不同的(a,b)然后再暴力做就好了。

    #include<cstdio>
    #include<cctype>
    using i64=long long;
    const int N=1000007;
    int abs(int x){return x<0? -x:x;}
    int read(){int x=0,c=getchar();while(!isdigit(c))c=getchar();while(isdigit(c))x=x*10+c-48,c=getchar();return x;}
    int sqrt[N],t1[N],t2[N],a[N],b[N];
    int main()
    {
        for(int i=1;i<=1000;++i) sqrt[i*i]=i;
        for(int i=2;i<=1000000;++i) sqrt[i]=sqrt[i]? sqrt[i]:sqrt[i-1];
        for(int t=read();t;--t)
        {
    	int n=read(),c1=0,c2=0;i64 ans=0;
    	for(int i=1,k;i<=n;++i) k=read(),t1[k]++?:a[++c1]=k;
    	for(int i=1,k;i<=n;++i) k=read(),t2[k]++?:b[++c2]=k;
    	for(int i=1;i<=c1;t1[a[i++]]=0) for(int j=1;j<=c2;++j) ans+=1ll*t1[a[i]]*t2[b[j]]*sqrt[abs(a[i]-b[j])];
    	for(int i=1;i<=c2;++i) t2[b[i]]=0;
    	printf("%lld
    ",ans);
        }
    }
    
  • 相关阅读:
    再谈树形dp
    洛谷 P3627 [APIO2009]抢掠计划
    树状数组
    树形dp 入门
    洛谷P2014 选课
    洛谷P2015 二叉苹果树
    9 vue.js 被观察数组的变异方法
    8 vue的v-model指令学习
    7vue-事件修饰符
    6.vue事件绑定-click
  • 原文地址:https://www.cnblogs.com/cjoierShiina-Mashiro/p/12228855.html
Copyright © 2020-2023  润新知