题意:问能否通过交换A的逆序对把A序列变成B序列。

分析:属于是脑瘫觉得自己n次交换就够了。建了半天图对拍才发现做不了。因为大的只能往后移,考虑从大到小(从小到大也一样)枚举元素,对于第二个样例:

4 1 2 3
1 2 3 4

对于元素4:我们可以交换 1 2 3,这里我们直接交换3使得4对齐。

3 1 2 4
1 3 2 4

对于元素3:这里只能交换1。

这样我们就得到了一个能够通过所有样例的假做法。

事实上,第一次我们可以用4去依次交换 1 2 3,但这样A会变成1 2 3 4,后续无法操作。如果我们考虑依次交换最大的呢?这样我们又得到了一个能够通过所有样例的做法,事实上这是对的。

证明:对于 5 4 3 2 1,假设5要到最后去,如果我们直接交换 5 1,会得到 1 4 3 2 5;如果依次交换最大元素,会得到 4 3 2 1 5,后续4的选择会被最大化。

int a[maxn],b[maxn],pos1[maxn],pos2[maxn];void solve()
{int n;cin>>n;for(int i=1;i<=n;i++) cin>>a[i],pos1[a[i]]=i;for(int i=1;i<=n;i++) cin>>b[i],pos2[b[i]]=i;vector<pii>ans;for(int i=n;i>=1;i--){for(int j=i-1;j>=1;j--){if(pos1[j]>pos1[i]&&pos1[j]<=pos2[i]){ans.push_back({pos1[i],pos1[j]});swap(a[pos1[i]],a[pos1[j]]);swap(pos1[i],pos1[j]);}}if(pos1[i]!=pos2[i]){cout<<-1<<endl;return;}}cout<<ans.size()<<endl;for(auto x:ans) cout<<x.first<<" "<<x.second<<endl;
}

D. Assumption is All You Need相关推荐

  1. APICS与AX的Master Planning(二)--Rescheduling Assumption 重排假设

    APICS理论部分 先看一下APICS字典关于重排假设的定义: rescheduling assumption--A fundamental assumption of MRP logic that ...

  2. JUnit4学习笔记(二):参数化测试与假定(Assumption)

    一.一个简单的测试 编写一个只有一种运算的计算器: 1 public class Calculator { 2 public static double divide(int dividend, in ...

  3. Rethinking the Smaller-Norm-Less-Informative Assumption in Channel Pruning of Convolution Layers简记

    Rethinking the Smaller-Norm-Less-Informative Assumption in Channel Pruning of Convolution Layers简记 文 ...

  4. PMP之假设日志Assumption Log

    什么是假设日志 Assumption Log 假设日志是文档,项目经理和团队使用该文档来捕获,记录和跟踪项目整个生命周期中的假设.假设是任何项目的重要组成部分.假设通常需要某种形式的跟进或确认,以确定 ...

  5. Conditional Independent Assumption 條件獨立假設

    CIA (conditional independent assumption) 译为條件獨立假設 即不同事件對於結果的影響是獨立,事件A的發生並不會導致事件B發生的概率產生變化,可以表示爲P(AB) ...

  6. 英文论文中Assumption(假设)、Lemma(引理)、Theorem(定理)、Proof(证明)、Remark(备注、注释)之间的关系

    理论性比较强的英文论文中通常会看到满篇的Remark ,Proof, Lemma,Theorem,Assumption,现在理一下它们之间的关系.        一般顺序是 Assumption(假设 ...

  7. Practical Zero-Knowledge Protocols Based on the Discrete Logarithm Assumption 学习笔记 1

    1. 引言 Stephanie Bayer 2013年博士论文 <Practical Zero-Knowledge Protocols Based on the Discrete Logarit ...

  8. one more DDH assumption

  9. Rethinking the Smaller-Norm-Less-Informative Assumption in Channel Pruning of Convolution Layers论文翻译

    重新思考卷积通道剪枝中的更小范数.更小信息量的假设 摘要 1 引言 2 相关工作 3 重新思考更小范数-更少信息量的假设 4 CNN BatchNorm通道剪枝 4.1 初步分析 4.2 算法 4.3 ...

最新文章

  1. 知识产权界福布斯排行榜公布:厉害了,我的中国!
  2. 编程语言中的Lambda 函数是如何产生的 它究竟有什么用
  3. mysql innodb 事务_Mysql InnoDB事务
  4. js处理url中的请求参数(编码/解码)
  5. IDEA注册jar包使用和常用插件
  6. Java并发编程笔记之ThreadLocal内存泄漏探究
  7. python判断矩阵是否对称_Python创建对称矩阵的方法示例【基于numpy模块】
  8. 线程状态切换之等待队列和同步队列
  9. 同比暴增3700%!百度取代谷歌成世界第二
  10. tomcat使用自签名证书实现https加密访问
  11. java mail pom_集成JavaMail
  12. Spring中过滤器和拦截器
  13. LimeSDR官方系列教程(五):SDR的软件
  14. java技术英文名词读音_Java开发,Java development,音标,读音,翻译,英文例句,英语词典...
  15. 批量将 txt 记事本文件按照固定行数拆分成单个独立的 txt 小文件
  16. Android常用adb shell命令
  17. Exception 异常
  18. CSS - 解决 “本地测试” 和 “线上测试” 样式不一样问题
  19. 感受5.12汶川大地震
  20. 中国移动oa办公系统

热门文章

  1. 直播倒计时|今晚一起看 TensorFlow Dev Summit !
  2. z8350cpu linux,Intel 14nm Atom x5-Z8350 4核处理器+4GB RAM + 64 GB eMMC——最强单板计算机UP Board评测...
  3. unity烘培单个物体_unity3d 5.6烘焙教程
  4. 华笙(华升)5.1,5.2,6.3
  5. Python自然语言处理:轻松上手文本分类
  6. 企业内部创业平台如何搭建
  7. word2013html,Word 2013
  8. abap CA CO CS 模式匹配的使用方法
  9. MySQL UDF提权执行系统命令
  10. Java毕设项目病房管理系统(java+VUE+Mybatis+Maven+Mysql)