1089. Insert or Merge (25)
来源:互联网 发布:java中的wait 编辑:程序博客网 时间:2024/05/17 07:36
传送门:https://www.patest.cn/contests/pat-a-practise/1089
AC 代码
#include <iostream>#include <vector>#include <stdio.h>#include <algorithm>#include <queue>#include <string.h>#include <unordered_map>#include <map>using namespace std;int main(){ int n; scanf("%d",&n); vector<int>initSequence(n),targetSequence(n); for (int i=0; i<n; ++i) scanf("%d",&initSequence[i]); for (int i=0; i<n; ++i) scanf("%d",&targetSequence[i]); bool IsMerge = false; int value = 1; vector<int>nextSequence = initSequence; while (true) { value = value *2; if(value>n) value = n; for (int i=0; i<n;) { int end = i+value; if(end>n) end = n; sort(nextSequence.begin()+i, nextSequence.begin()+end); i = end; } if(nextSequence==targetSequence){ IsMerge = true; value = value *2; if(value>n) value = n; for (int i=0; i<n;) { int end = i+value; if(end>n) end = n; sort(nextSequence.begin()+i, nextSequence.begin()+end); i = end; } break; } if(value>=n) break; } if(IsMerge){ printf("Merge Sort\n"); }else{ printf("Insertion Sort\n"); int pos = n-1; for (int i=n-1;i>=0;--i) { if(targetSequence[i]==initSequence[i]) pos--; else break; } nextSequence = targetSequence; for (int i=pos+1; i<=n; ++i) { sort(nextSequence.begin(), nextSequence.begin()+i); if(nextSequence!=targetSequence) break; } } for (int i=0; i<nextSequence.size(); ++i) { printf(i==nextSequence.size()-1?"%d\n":"%d ",nextSequence[i]); } return 0;}
0 0
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- MySQL索引下推技术
- 支付宝双功能接口使用
- MyCAT ER分片的验证
- 多行文本溢出
- MySQL常见错误
- 1089. Insert or Merge (25)
- [置顶]Linux碎碎念
- [置顶]Oracle碎碎念~1
- [置顶]Shell碎碎念
- 8个方法让你成为更优秀的程序员
- 仿EventBus自己写的android事件传递者EventMailer
- MyBatis CRUD Demo
- appium获取activities和键盘隐藏方法
- IOS BLE 蓝牙实现方式