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

topcoder SRM 618 DIV2 MovingRooksDiv2

时间:2014-06-17 14:05:10      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   color   数据   

一开始Y1,Y2两个参数看不懂,再看一遍题目后才知道,vector<int>索引代表是行数,值代表的是列

此题数据量不大,直接深度搜索即可

注意这里深度搜索的访问标识不是以前的索引和元素,而是一个交换元素后的整个状态vector<int>,这样可以避免重复元素的搜索

    set<vector<int> > visit;
    bool flag;
    void dfs(vector<int>& src, vector<int>& dst){
        if(src == dst ) flag =true;
        if(flag) return;
        if(visit.find(src)!=visit.end()) return;
        visit.insert(src);
        for(int i = 0 ; i < src.size(); ++ i){
            for(int j = i+1; j <  src.size(); ++ j){
                if(src[i] > src[j]){
                    swap(src[i],src[j]);
                    dfs(src,dst);
                    swap(src[i],src[j]);
                }
            }
        }
    }

    string move(vector <int> Y1, vector <int> Y2) {
        visit.clear();
        flag = false;
        dfs(Y1, Y2);
        if(flag) return "Possible";
        else return "Impossible";
    }

 

topcoder SRM 618 DIV2 MovingRooksDiv2,布布扣,bubuko.com

topcoder SRM 618 DIV2 MovingRooksDiv2

标签:style   class   blog   code   color   数据   

原文地址:http://www.cnblogs.com/xiongqiangcs/p/3791617.html

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