题目链接:

排队 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/814

思路:首先什么情况下差的平方会最小呢,当然是数组a中最大的数和数组b中最大的数排一起,第二大的数和第二大的数排一起,以此类推。然后要计算要交换的个数,其实就是记录逆序对的个数,用树状数组解决。
namo要怎么处理呢,看一个例子

a:2 3 1 4     b:3 2 1 4

对于a中的第一个元素2,他应该要到的位置是1,因为2是第二大的数,第二大的数在b中是1这个位置。a中的3要到的位置是0,因为3是第三大的数,第三大的数在b中是0这个位置,以此类推          这样我们就得到了一个数组是 1 0 2 3。答案就是求这个数组的逆序对数

//#define pei_pei_
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define FI first
#define SE second
#define _for(type,i,a,b) for(type i=(a);i<(b);++i)
#define _efor(type,i,a,b) for(type i=(a);i<=(b);++i)
#define _rfor(type,i,a,b) for(type i=(a);i>(b);--i)
#define _refor(type,i,a,b) for(type i=(a);i>=(b);--i)
#define _sfor(p,st) for(auto &p:st)
#define endl '\n'
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,ll> pii;
const double pi=acos(-1.0);
const double eps=1e-8;
const int mod=1e8-7;
const int _mod=998244353;
const int inf=0x3f3f3f3f;
const int maxn=100010;//-------------------------------------------------------------------struct p{int v,pos;p(){}p(int a,int b):v(a),pos(b){}bool operator<(const p& p1){return v>p1.v;}};p a[100010],b[100010];int posa[100010],posb[100010];int n,t;int bit[100010];int sum(int i){int s=0;while(i>0){s=(s+bit[i])%mod;i-=i&-i;}return s;}void add(int i,int x){while(i<=n){bit[i]=(bit[i]+x)%mod;i+=i&-i;}}//-------------------------------------------------------------------
signed main(){//ifstream cin("D:\\in.txt");//ofstream cout("D:\\out.txt");//IOS;#ifdef pei_pei_double be=clock();#endif // err//==================================================================scanf("%d",&n);_efor(int,i,1,n){scanf("%d",&t);a[i]=p(t,i);}_efor(int,i,1,n){scanf("%d",&t);b[i]=p(t,i);}sort(a+1,a+n+1);//posa 知道位置,找第几_efor(int,i,1,n){posa[a[i].pos]=i;}sort(b+1,b+n+1);//posb 知道第几,找位置_efor(int,i,1,n){posb[i]=b[i].pos;}ll ans=0;_for(int,i,0,n){ans=(ans+i-sum(posb[posa[i+1]])+mod)%mod;add(posb[posa[i+1]],1);}printf("%lld\n",ans);//==================================================================#ifdef pei_pei_double en=clock();cout<<endl<<"time: "<<fixed<<setprecision(8)<<en-be<<" ms";#endif // errreturn 0;
}

daimayuan每日一题#814 排队相关推荐

  1. daimayuan每日一题#851 Good Permutations

    Good Permutations - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/851思路:纯纯推公式 ...

  2. daimayuan每日一题#849 国家铁路

    题目链接:国家铁路 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/849 有亿点点难 思路:直接枚举是o ...

  3. daimayuan每日一题#812 互质

    题目链接:互质 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/812 要在1到m的闭区间内找到与给出数组 ...

  4. daimayuan每日一题#810 最短路计数

    题目链接: 提交记录 #239296 - Daimayuan Online Judgehttp://oj.daimayuan.top/submission/239296 思路: 一开始写复杂了,以为要 ...

  5. daimayuan每日一题#863 吃糖果

    思路:很明显的尺取,从两端不停向中间走,遇到相等就更新.不相等就小的移动. //#define pei_pei_//#include<bits/stdc++.h> #include< ...

  6. 新玩法来了,web前端教程公众号推出《每日一题》

    <每日一题>是一种新玩法,怎么玩?很简单. 直接回复 "我要做题" ,将获取最新一期的习题. 比如: 写下你认为正确的答案,回复给公众号. 还可以回复历史期号,查看历史 ...

  7. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day37】—— 并发编程3

      大家好,我是陈哈哈,北漂五年.相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知面试重要性,接下来我准备用100天时间,基于Java岗面试中的高频面试题,以每日3题的形式,带你过一遍 ...

  8. 2022-04-14每日刷题打卡

    2022-04-14每日刷题打卡 代码源--每日一题 上帝的集合 - 题目 - Daimayuan Online Judge 题目描述 现在上帝有一个空集合,现在他命令你为他执行下列三种操作 n 次, ...

  9. 2022-04-01每日刷题打卡

    2022-04-01每日刷题打卡 代码源--每日一题 Lusir的游戏 - 题目 - Daimayuan Online Judge Lusir 正在玩一个古老的基于 DOS 的游戏. 游戏中有 N+1 ...

最新文章

  1. 知识图谱从哪儿来?实体关系抽取的现状和未来
  2. React Native学习笔记-1:JSC profiler is not supported.(转载)
  3. 解决Mac上VSCdoe断点失效问题
  4. 求一个字符串的前缀与另一个字符串的后缀的最大相同子串
  5. WCF 入门 WCF基础知识问与答
  6. 哈利波特检索_语料库ing说: 难怪哈利波特与混血王子那么好看
  7. java怎么实现查找n功能_java 实现微信搜索附近人功能
  8. 杂谈(2)---成熟人士的50个处事细节
  9. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)
  10. 如何优雅处理前端异常?
  11. 51单片机外设篇:DS18B20
  12. Linux + ChromiumOS操作系统资源持续更新...(转载)
  13. 百度翻译vs谷歌翻译
  14. stacey矩阵 敏捷_通过矩阵镜头实现敏捷
  15. 坐车看书的人都是在装逼?
  16. php+sha512+漏洞,PhpMyWind最新版本注入+后台getshell
  17. 云旗OS助手火了!可一站式体验统信UOS
  18. C# 给PDF签名时添加时间戳的2种方法(附VB.NET代码)
  19. 我是如何做到使得开源系统拥有安全的防护框架的呢?
  20. 一文读懂数据科学Notebook

热门文章

  1. The page has expired due to inactivity.Please refresh and try again.
  2. 微电子封装技术的发展趋势
  3. 语音信号端点检测 matlab,matlab中语音端点检测
  4. 服务器系统的功能,操作系统服务器主要功能
  5. (元)黄公望---富春山居图(中国十大传世名画之八) 高清图下载
  6. java加载顺序_类加载过程中几个重点执行顺序整理
  7. openssl库android版的编译
  8. 抓取、下载某位博主的豆瓣日记
  9. windows7怎么能不锁定计算机,怎么设置电脑不锁屏
  10. adb安装应用失败,错误码整理