当前位置: 首页 > wzjs >正文

校园文化宣传主题网站的建设怎么在百度上发布广告

校园文化宣传主题网站的建设,怎么在百度上发布广告,建设银行 网站无法打开,app开发公司定制小程序涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: ∑i(ai−bi)^2,其中 ai 表示第一列火柴中第 i个火柴…

涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:

∑i=(ai−bi)^2,其中 ai 表示第一列火柴中第 i个火柴的高度,bi表示第二列火柴中第 i个火柴的高度。 

每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。

请问得到这个最小的距离,最少需要交换多少次?

如果这个数字太大,请输出这个最小交换次数对 99,999,997取模的结果。

输入格式

共三行,第一行包含一个整数 n,表示每盒中火柴的数目。 

第二行有 n 个整数,每两个整数之间用一个空格隔开,表示第一列火柴的高度。

第三行有 n个整数,每两个整数之间用一个空格隔开,表示第二列火柴的高度。

输出格式

输出共一行,包含一个整数,表示最少交换次数对 99,999,997取模的结果。

数据范围

1≤n≤1e5
0≤火柴高度≤2e31-1

输入样例:
4
2 3 1 4
3 2 1 4
输出样例:
1

 离散化模板:

把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小

如这一道题就将2e9转化为2e5,节约空间

void work(int a[]){
    for(int i=1;i<=n;i++){
        p[i]=i;//存放离散化的下标
    }
    sort(p+1,p+n+1,[&](int x,int y){return a[x]<a[y];});//升序
    for(int i=1;i<=n;i++){
        a[p[i]]=i;
    }
}

归并排序模板:

 int merge_sort(int l,int r){//归并排序可以求出逆序对的数量
    if(l>=r) return 0;
    int mid=(l+r)>>1;
    int res=merge_sort(l,mid)+merge_sort(mid+1,r);
    int i=l,j=mid+1,k=0;
    while(i<=mid&&j<=r){
        if(b[i]<b[j]) p[k++]=b[i++];
        else{
            p[k++]=b[j++];
            res=res+mid-i+1;
        } 
    }
    while(i<=mid) p[k++]=b[i++];
    while(j<=r) p[k++]=b[j++];
    for(i=l,j=0;j<k;i++,j++){
        b[i]=p[j];
    }
    return res;
}

映射:

 

#include<iostream>
#include<algorithm>
#define N 100010
#define MOD 99999997
using namespace std;int n;
int a[N],b[N],c[N],p[N];void work(int a[]){for(int i=1;i<=n;i++){p[i]=i;//存放离散化的下标}sort(p+1,p+n+1,[&](int x,int y){return a[x]<a[y];});//升序for(int i=1;i<=n;i++){a[p[i]]=i;}
}int merge_sort(int l,int r){//归并排序可以求出逆序对的数量if(l>=r) return 0;int mid=(l+r)>>1;int res=(merge_sort(l,mid)+merge_sort(mid+1,r))%MOD;int i=l,j=mid+1,k=0;while(i<=mid&&j<=r){if(b[i]<b[j]) p[k++]=b[i++];else{p[k++]=b[j++];res=(res+mid-i+1)%MOD;} }while(i<=mid) p[k++]=b[i++];while(j<=r) p[k++]=b[j++];for(i=l,j=0;j<k;i++,j++){b[i]=p[j];}return res;
}
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){cin>>b[i];}work(a),work(b);//将a,b离散化for(int i=1;i<=n;i++){c[a[i]]=i;//将a数组中的元素赋值为其下标并存在数组c中//a数组相当与升序}for(int i=1;i<=n;i++){b[i]=c[b[i]];//映射,b数组的值要先去查找a数组所对应的下标值}cout<<merge_sort(1,n);//归并排序return 0;}

http://www.dtcms.com/wzjs/386431.html

相关文章:

  • 如何用子域名做网站网站推广的作用
  • 自己怎么做拼单网站创量广告投放平台
  • 网站制作技术使用说明百度客服人工电话95188
  • 江西做网站建设潍坊网站建设平台
  • wordpress网站正在维护中百度指数数据
  • wordpress按最后评论排序长春seo排名扣费
  • 手机网站免费制作平台外贸seo推广
  • 永城城乡建设局网站百度网站免费优化软件下载
  • 做网站的公司利润多少呢企业qq手机版
  • wordpress阿里百秀广州优化网站排名
  • 做网站的费用如何入账抖音seo关键词优化
  • google建站厦门网络推广外包多少钱
  • 提供网站建设的公司百度 seo排名查询
  • 做代码和网站网站如何发布
  • 合肥做网站是什么关键词营销优化
  • b2b网站的盈利模式成都自动seo
  • 什么叫做响应式网站软文有哪些
  • 电子商务网站建设分析网站怎么宣传
  • ps怎么排版规划设计网站免费网站注册com
  • 学校网站首页设计图片企业培训方案制定
  • 鄂尔多斯市建设网站万网
  • 重庆蒲公英网站建设公司青岛网站排名公司
  • 全屏网站设计技巧站长工具seo综合查询权重
  • 建设网站需要投入高端网站建设公司哪家好
  • 咨询网站模板搜索seo优化托管
  • 织梦cms sql注入破解网站后台管理员账号密码seo培训课程
  • 网站更新方法郑州疫情最新消息
  • 网站如何上传到主机网络营销软件站
  • 做网站需要多少职务模板建站和开发网站区别
  • 手机网站模板 html5 下载工具最新的国际新闻