易错点!!!

P1188 PASTE

jiangfan20041008 @ 2024-02-04 01:23:07

本题建议再给个样例 输入: 10 1 2 3 4 输出: 1 4 5 6 2 3 7 8 9。 本题的“粘贴”操作是将剪切下来的文本插入到文件中的其他地方,而这里的文件是插入后的文件,而不是插入前!!!以我给的样例为例,可能有人会输出1 4 2 3 5 6 7 8 9,可能这就是有人全wa的原因(本人一开始也是全wa)
附上本人的代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int N,K;
    cin>>N>>K;
    int wen[N+1];
    for(int i=1;i<=N;i++)wen[i]=i;
    while(K--){
        int a,b,c;
        cin>>a>>b>>c;
        int fu[b-a+1];
        for(int i=a;i<=b;i++)fu[i-a]=wen[i];//将需要复制的部分存到fu[]数组
        int xiu[N-b+a],hou[N+1];
        for(int i=1;i<a;i++)xiu[i]=wen[i];
        for(int i=a;i<=N-b+a-1;i++)xiu[i]=wen[i-a+b+1];//将复制的部分去掉后的原数组存入xiu[]
        for(int i=1;i<=c;i++)hou[i]=xiu[i];
        for(int i=c+1;i<=c+1+b-a;i++)hou[i]=fu[i-c-1];
        for(int i=c+2+b-a;i<=N;i++)hou[i]=xiu[i-b+a-1];//将复制的部分存放到制定的地方
        for(int i=1;i<=N;i++)wen[i]=hou[i];//将处理完的数组再赋给原数组以便于循环
    }
    for(int i=1;i<=10;i++)cout<<wen[i]<<endl;
    return 0;
}

by QWQAWAQWQAWA @ 2024-02-09 19:27:27

ty(thank you


by QWQAWAQWQAWA @ 2024-02-09 20:16:44

这个数据点太好了!ty


by Tiskan_H @ 2024-07-22 17:28:47

@jiangfan20041008 thx!!!


|