刷清橙OJ--A1045.交换

来源:互联网 发布:mac打不开淘宝 编辑:程序博客网 时间:2024/06/07 03:38
问题:
A1045. 交换
时间限制:1.0s   内存限制:512.0MB  
总提交次数:2444   AC次数:1273   平均分:52.28
问题描述
  给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列。
输入格式
  第一行为一个整数t(t<=10),表示数据组数。
  以下t组数据,每组数据第一行为N(1<=N<=10000)和操作个数M(1<=M<=10000)。之后N个数字,表示初始序列。后面有M行,每行两个整数x,y  (1<=x,y<=N).
输出格式
  对于每组数据输出N行,依次为序列中的每个整数。
样例输入
1
5 2
1 2 3 4 5
1 2
3 4
样例输出
2
1
4
3
5
代码:
#include<iostream>using namespace std;int main(){    int group,num,op,i,j;    cin>>group;    int b[10][10000];    for(int k=0;k<group;k++)    {        cin>>num>>op;        int *a=new int [num];                int **p = new int* [op];        for(int i = 0; i < op; i++)            p[i] = new int [2];                for(i=0;i<num;i++)            cin>>a[i];        for(i=0;i<op;i++)            for(j=0;j<2;j++)                cin>>p[i][j];            for(i=0;i<op;i++)            {                int temp=a[p[i][0]-1];                a[p[i][0]-1]=a[p[i][1]-1];                a[p[i][1]-1]=temp;            }            for(j=0;j<num;j++)            {                b[k][j]=a[j];            }            delete []a;            for(i = 0; i < op; ++i)                delete []p[i];            delete []p;    }            for(i=0;i<10;i++)        for(j=0;j<10000;j++)            if(b[i][j]!=-858993460)                cout<<b[i][j]<<endl;            return 0;}

个人想法:动态数组啊啊啊,代码来自试题讨论
原创粉丝点击