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

POJ 1270

时间:2015-06-09 16:23:15      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

#include<iostream>
#include<algorithm>
#define MAXN 26
#define MAX 300
using namespace std;

bool floy[MAXN][MAXN];
char var[MAX];
char cons[MAX];
int a[MAXN];
void tran_var();
void give_floy();
bool is_ok();
void floyd();
int main()
{
    //freopen("acm.acm","r",stdin);
    int len;
    while(gets(var))
    {
        memset(floy,false,sizeof(floy));
        memset(a,0,sizeof(a));
        gets(cons);
        tran_var();
    //    cout<<var<<endl;
        give_floy();
        floyd();
        len = strlen(var);
    //    cout<<len;
        sort(var,var + len);
        do
        {
            //cout<<"0000000000"<<endl;
            if(is_ok())
                cout<<var<<endl;
        }while(next_permutation(var,var+len));
        cout<<endl;
    }
}

void tran_var()
{
    int i;
    int j;
    int len = strlen(var);
    for(i = 0,j = 0; i < len; i += 2)
    {
        var[j] = var[i];
        ++ j;
    }
    var[j] = \0;
}

void give_floy()
{
    int i;
    int j;
    int len = strlen(cons);
    for(i = 0; i < len; i += 4)
    {
        floy[cons[i] - a][cons[i+2] - a] = true;
    }
//    floyd();
}

void floyd()
{
    int i;
    int j;
    int k;
    for(k = 0; k < MAXN; ++ k)
    {
        for(i = 0; i < MAXN; ++ i)
        {
            for(j = 0; j < MAXN; ++ j)
            {
                if(floy[i][k] && floy[k][j])
                {
                    floy[i][j] = true;
                }
            }
        }
    }
}

bool is_ok()
{
    int i;
    int j;
    int len = strlen(var);
//    cout<<len<<endl;
    for(i = 0; i < len; ++ i)
    {
        a[var[i] - a] = i;
    }
//    for(i = 0; i < len; ++ i)
//    {
//        cout<<a[i]<<" ";
//    }
//    cout<<endl;
    for(i = 0; i < MAXN; ++ i)
    {
        for(j = 0; j < MAXN; ++ j)
        {
            if(floy[i][j] && a[i] > a[j])
                return false;
        }
    }
    return true;
}

 

POJ 1270

标签:

原文地址:http://www.cnblogs.com/gavinsp/p/4563350.html

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