poj-1129-Channel Allocation-四色定理

题意:

给你一个n,代表电台的数量。电台的编号是从A到Z。

然后给你他们之间的邻接关系,让你求出最小需要的频率数。

要求任意两个相邻的电台之间不允许用同一频率。

做法:
由于范围比较小,所有爆搜都没关系。但是如果电台的数量比较大的话,就需要运用四色定理了。

四色定理:

对于任意一张地图,最多只使用四种颜色就可以把地图任意两个相邻的国家染成不同的颜色。

对于这道题目可以看成给电台染色,任意两个电台用线连起来,任意两条线都是不相交的,这就符合四色定理。

注意:

注意在需要的频率为1的时候,channel无s,其他的时候channels有s。

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
    int i,n,j;
    int map[101][101];
    char str[1000];
    while(scanf("%d%*c",&n)&&n)
    {
        memset(map,0,sizeof(map));
        for(i=1;i<=n;i++)
        {
            gets(str);
            for(j=2;j<strlen(str);j++)
            {
                map[i][str[j]-'A'+1]=1;
            }
        }
        int visit[27];
        int color[27];
        memset(visit,0,sizeof(visit));
        memset(color,0,sizeof(color));
        int maxlen;
        maxlen=0;
        for(i=1;i<=n;i++)
        {
            memset(visit,0,sizeof(visit));
            for(j=1;j<=n;j++)
            {
                if(map[i][j]!=0)
                {
                    if(color[j])
                    {
                        visit[color[j]]=1;
                    }
                }
            }
            for(j=1;j<=26;j++)
            {
                if(visit[j]==0)
                {
                    color[i]=j;
                    if(j>maxlen)maxlen=j;
                    break;
                }
            }
            if(j==4)break;
        }
        if(maxlen==1)
        {
            printf("1 channel needed.\n");
        }
        else
            printf("%d channels needed.\n",maxlen);

    }
    return 0;

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:– JavaScript 中的患者数据管理系统 患者数据管理系统是为医院开发的 node JS 项目。通过使用此系统,您可以轻松访问患者数据,它具有成本效益,可改善患者护理和数据安全性。不仅如此,它还减少了错误范围。在运行项目之前,您需要下载 node.js。 这个患者数据管理项目包含 javascript、node.js 和 CSS。我们必须让服务器监听端口 3000,并使用 JSON 在客户端和服务器之间交换数据。这个项目会不断询问您有关插件更新的信息,因此请保持互联网畅通。此系统允许您执行 crud 操作。在这里,您是系统的管理员。您还可以添加所需的员工人数。此外,您还可以更新患者记录。该系统功能齐全且功能齐全。 要运行此项目,您需要在计算机上安装NodeJS并使用现代浏览器,例如 Google Chrome、  Mozilla Firefox。ReactJS项目中的此项目可免费下载源代码。有关项目演示,请查看下面的图像滑块。 对于手动安装 1.将主项目文件夹解压到任意目录 2.从 cmd 设置项目目录的路径 3. 输入命令“npm install” 4.完成后输入命令“npm start” 5.现在,您将获得一个 localhost:portnumber,并转到该 URL 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值