码迷,mamicode.com
首页 > 编程语言 > 详细

算法问题实战策略 QUADTREE

时间:2019-10-26 22:59:27      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:翻转   分解   --   upper   main   span   ever   img   string   

地址 https://algospot.com/judge/problem/read/QUADTREE

技术图片

技术图片

技术图片

将压缩字符串还原后翻转再次压缩的朴素做法 在数据量庞大的情况下是不可取的

所以需要在压缩的情况下进行翻转

图片可以分成四块 每块在颜色不统一的情况下又会分成四块 那么翻转也可以采取这种逐步将问题分解成小块翻转 然后再处理大块算法 最后的到结果的算法

代码如下

#include <iostream>
#include <string>

using namespace std;

/*
4
w
xbwwb
xbwxwbbwb
xxwwwbxwxwbbbwwxxxwwbbbwwwwbb
=======================================
w
xwbbw
xxbwwbbbw
xxwbxwwxbbwwbwbxwbwwxwwwxbbwb
*/

int n;

string reverse(string::iterator& it)
{
    char head = *it;
    ++it;
    if (head == b || head == w)
        return string(1, head);
    string upperLeft = reverse(it);
    string upperRight = reverse(it);
    string lowerLeft = reverse(it);
    string lowerRight = reverse(it);

    return string(1,x) + lowerLeft + lowerRight + upperLeft + upperRight;
}

int main()
{
    cin >> n;
    while (n--) {
        string s;
        cin >> s;
        string::iterator it = s.begin();
        cout << reverse(it) << endl;
    }

    return 0;
}

 

算法问题实战策略 QUADTREE

标签:翻转   分解   --   upper   main   span   ever   img   string   

原文地址:https://www.cnblogs.com/itdef/p/11745814.html

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