国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

PAT BASIC 1008

2019-11-11 05:18:24
字體:
供稿:網(wǎng)友

思路:

這個(gè)題題意表達(dá)得可能沒那么清楚,如果說要求只能開O(N)的數(shù)組,時(shí)間復(fù)雜度也是O(N),那就是一個(gè)比較有趣的題。

我們可以用三次反轉(zhuǎn)的方法來思考這個(gè)題。

如果說我要把xy這個(gè)字符串的y字串移到x子串的左邊,變成yx,我記x^T為將x反轉(zhuǎn),如果x=”abc”,那么x^T=”cba”。

這樣,這里就有一個(gè)比較有意思的式子了

yx=(x^T y^T)^T

也就是說我們只需要進(jìn)行三次反轉(zhuǎn),就可以實(shí)現(xiàn)我的操作。時(shí)間復(fù)雜度為6N,即O(N)

代碼:

#include<iostream>using namespace std;int num[100];int n, m;void reverse(int left, int right);void reverse(int left, int right){ int i, t; for (i = left; i <= (left + right) / 2; i++) { t = num[i]; num[i] = num[left + right - i]; num[left + right - i] = t; }}int main(){ int count = 0, pos = 0; int i, j, t; cin >> n >> m; m = m%n; for (i = 0; i < n; i++) cin >> num[i]; reverse(0, n - m - 1); reverse(n - m, n - 1); reverse(0, n - 1); for (i = 0; i < n - 1; i++) cout << num[i] << " "; cout << num[n - 1]; //while (1) //{ //} return 0;}
上一篇:c regex 用法

下一篇:XMLParser 詳解

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 正阳县| 安塞县| 镇康县| 海城市| 马尔康县| 水城县| 鹤岗市| 郑州市| 民乐县| 凌海市| 浦县| 通辽市| 房产| 南部县| 敖汉旗| 海伦市| 吉首市| 凤山市| 大连市| 通河县| 周宁县| 新邵县| 桂东县| 松潘县| 玉林市| 清丰县| 马鞍山市| 扬州市| 灵寿县| 内江市| 象山县| 丹江口市| 巴楚县| 宁津县| 顺义区| 湟源县| 闸北区| 凌云县| 博爱县| 霸州市| 安康市|