码迷,mamicode.com
首页 > 其他好文 > 详细

P1188 PASTE

时间:2020-04-25 14:21:59      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:inf   部分   div   标记   out   paste   src   c++   插入行   

技术图片

 

 题目不难理解 输入一组数 把其中的一部分剪切下来 然后放到要求的位置 然后原本的数字(未作改变的数字)依次往后退

技术图片

 

 就是这样理解的 

但是要考虑是向前还是向后的移动 经过判断

最终的AC代码如下

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100000 + 5;
int n, k;
int a[MAXN], b[MAXN];
int p;
int main() {
	for (int i = 1; i < MAXN; i++) a[i] = i;
	cin >> n >> k;
	for (int i = 1; i<= k; i++) {
		int s, t, p1, p2, q, len;
		cin >> s >> t >> q;//按要求输入 
		len = t - s + 1;//len:剪下文本长度 
		p1 = q + 1;//p1:插入起点 
		p2 = p1 + len - 1;//p2:插入尾标记
		p = 0;
		for (int i = s; i <= t; i++) b[++p] = a[i];
			if (q < s)
				for (int i = s - 1; i >= p1; i--) 
					a[i + len] = a[i];//另一段文本向前(插入行在原文本第一行之后) 
			else
				for (int i = t + 1; i <= p2; i++)
		   		a[i - len] = a[i];//向后(插入行在原文本第一行之前) 
			for (int i = p2; i >= p1; i--)
				a[i] = b[p--];//把剪切的“停车入库” 
		}
	for (int i = 1; i <= 10; i++)
		cout << a[i] << endl;//按要求输出就好了 
	return 0;
}

  拜拜!!!

P1188 PASTE

标签:inf   部分   div   标记   out   paste   src   c++   插入行   

原文地址:https://www.cnblogs.com/--840-114/p/12731424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!