习题8-6 起重机(Crane,ACM/ICPC CERC2013,UVa1611)
来源:互联网 发布:linux发展前景 编辑:程序博客网 时间:2024/04/28 04:30
题目大意:通过一系列操作使一个1~n的序列变为升序,每次操作可以选一个长度为偶数的连续区间,交换前一半和后一半。
思路:从序列第一位开始,查找对应值(若为第一位则查找1,第二位查找2,以此类推)。若查找位置与查找到的值的位置相距长度为偶数,则以查找位置与查找到的值得位置的中心进行交换操作;若查找到的位置与查找到的值的位置相距长度为奇数,则以查找位置的后一位与查找到的值的位置的中心进行交换操作。如此不断循环,知道对应位置与对应值符合。
#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n,a[10005],sum=0,t; vector<int> v; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) { if(a[i]==i) continue; for(int j=i;j<=n;j++) { if(a[j]!=i) continue; int f,x=j; while(x>i) { if((x-i)%2==1) { f=(x-i+1)/2; for(int k=0;k<f;k++) { t=a[i+k];a[i+k]=a[i+k+f];a[i+k+f]=t; } v.push_back(i); v.push_back(x); sum++; x-=f; } else if((x-i)%2==0) { f=(x-i)/2; for(int k=0;k<f;k++) { t=a[i+1+k];a[i+1+k]=a[i+1+k+f];a[i+1+k+f]=t; } v.push_back(i+1); v.push_back(x); sum++; x-=f; } } } } cout<<sum<<endl; for(int i=0;i<v.size();i+=2) { cout<<v[i]<<" "<<v[i+1]<<endl; } }}
阅读全文
6 0
- 习题8-6 起重机(Crane,ACM/ICPC CERC2013,UVa1611)
- 起重机(Crane ACMICPC CERC 2013 UVa1611)
- UVA1611 起重机
- UVA1611 Crane
- uva1611-Crane
- UVa #1611 Crane (习题8-6)
- UVa806 习题6-8 空间结构(Spatial Structures,ACM/ICPC World Finals 1998)
- 习题6-8 空间结构(Spatial Structures, ACM/ICPC World Finals 1998, UVa806)
- 习题3-8 循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202)
- 习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232)
- UVa1600 习题6-5 巡逻机器人 (Patrol Robot,ACM/ICPC Hanoi 2006)
- UVa804 习题 6-7 Petri网模拟(Petri Net Simulation,ACM/ICPC World Finals 1998)
- 习题6-5 巡逻机器人(Patrol Robot, ACM/ICPC Hanoi 2006, UVa1600)
- 习题6-7 Petri网模拟(Petri Net Simulation, ACM/ICPC World Finals 1998, UVa804)
- 习题6-12 筛子难题(A Dicey Problem, ACM/ICPC World Finals 1999, UVa810)
- 习题6-13 电子表格计算器(Spreadsheet Calculator, ACM/ICPC World Finals 1992, UVa215)
- 习题6-14 检查员的难题(Inspector's Dilemma, ACM/ICPC Dhaka 2007, UVa12118)
- UVA 1611Crane 起重机 操作题 (2013 CE )
- java中线程同步(线程安全)与死锁问题
- 矩阵乘法(矩阵)【hpu】
- 总结:毕业设计
- BZOJ 2124 树状数组+Hash 解题报告
- BZ OJ 2818 Gcd (欧拉函数)
- 习题8-6 起重机(Crane,ACM/ICPC CERC2013,UVa1611)
- 根据天气接口获取其中的数据
- Spring boot application.properties文件的配置总结(全)
- Git使用教程
- Caused by: java.net.BindException: Cannot assign requested address: JVM_Bindx
- Android数据库高手秘籍(三)——使用LitePal升级表
- java 常用集合list与Set、Map区别及适用场景总结
- HDU 6097 Mindis
- 使用snap.svg实现svg路径描边动画