poj1129

原创 2012年03月26日 21:33:00
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
int n,ans;
int mapp[30][30],color[30];
bool Judge(int m,int r)//判断m是否与其相连接的点同色
{
    for(int j=0;j<n;j++)
    {
        if(mapp[m][j]&&color[j]==r)
            return false;
    }
    return true;
}
void DFS(int i,int usedcolor)
{
    int j;
    if(usedcolor>ans)   return;//小小的剪枝
    if(i>n)
    {
        ans=usedcolor;
        return;
    }
    else{
    for(j=1;j<=usedcolor;j++)//如果usedcolor就可以满足条件
    {
        if(Judge(i,j))
        {
            color[i]=j;
            DFS(i+1,usedcolor);
            color[i]=0;//回溯
        }
    }
    if(j>usedcolor)//如果usedcolor种颜色不满足条件,就再增加一种
    {
        usedcolor++;
        color[i]=usedcolor;
        DFS(i+1,usedcolor);
        color[i]=0;
    }
    }
}
int main()
{
    int i,e;
    char s[30];
    while(scanf("%d",&n)&&n)
    {
        memset(mapp,0,sizeof(mapp));
        memset(color,0,sizeof(color));
        for(i=0;i<n;i++)
        {
            scanf("%s",s);
            for(e=2;e<strlen(s);e++)
                mapp[i][s[e]-'A']=1;
        }
        ans=100;
        DFS(0,0);
        if(ans==1)  printf("1 channel needed.\n");
        else    printf("%d channels needed.\n",ans);
    }
    return 0;
}

poj1129

典型的图着色问题,相邻的顶点不能着相同的颜色
  • u011725603
  • u011725603
  • 2014年07月20日 09:08
  • 358

poj1129 dfs

题意:给定无向图,对点着色,使得相邻的结点颜色不同。 直接搜索,没有用四色原理,用四色原理也是暴力,没有什么影响。 #include #include #include using na...
  • Non_Cease
  • Non_Cease
  • 2012年03月02日 20:43
  • 2006

Poj1129

当一个广播电台在一个非常大的地区,广播站会用中继器来转播信号以使得每一个接收器都能接收到一个强烈的信号。然而,每个中继器必须慎重选择使用,使相邻的中继器不互相干扰。如果相邻的中继器使用不同的频道,那么...
  • liuyanfeier
  • liuyanfeier
  • 2015年09月11日 21:02
  • 253

POJ1129

因为一个“。”WA了好几遍 我能不能再认真一点啊
  • u013570474
  • u013570474
  • 2014年08月09日 07:16
  • 246

[DFS]poj1129

题意: 就是给出一个图,涂色,相邻的点不能涂一样的颜色,问最少涂几种颜色?分析: 首先数据量很小,可以暴力搜索。刚开始想的是bfs,一层一层的搜,但总写不对。。,好吧,换种思路,一个点一个点的搜吧...
  • u010582475
  • u010582475
  • 2015年05月22日 15:05
  • 416

poj1129 2010.2.18

poj1129 2010.2.18 #include bool map[27][27]; int ans[27],n; bool check(int p) { int i; fo...
  • Batman_
  • Batman_
  • 2016年02月05日 14:27
  • 171

poj1129 Channel Allocation 染色问题

Description When a radio station is broadcasting over a very large area, repeaters are used to retr...
  • AXuan_K
  • AXuan_K
  • 2014年08月28日 15:17
  • 939

POJ1129 dfs涂色

Channel AllocationTime Limit: 1000MS Memory Limit: 10000K Total Submissions: 15222 Acce...
  • dl2hq
  • dl2hq
  • 2017年03月03日 00:10
  • 105

poj1129 poj1106

日常记录
  • baisedeqingting
  • baisedeqingting
  • 2017年06月18日 11:26
  • 93

poj1129 Channel Allocation

链接:http://poj.org/problem?id=1129 题意:有一堆
  • u012914220
  • u012914220
  • 2014年05月18日 08:25
  • 346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj1129
举报原因:
原因补充:

(最多只允许输入30个字)