按A,B,C……的顺序搜索,让每个字母对应一个数,表示到这个字母时可以用的最少的频道,最后一个字母对应的最少的频道即要求的结果, 比如已经搜完了C,C对应的数是m, 轮到搜索D, D从1-m中选一种频道,如果这个频道和与D相关的字母的频道都不同,再往E搜, 如果不存在这样的频道,则D 用m种外的频道, D 对应的最少频道数即m+1。
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[30][30],b[30],n;
int small = 10000000;
void dfs(int nn,int mm)
{
int i,j,k,g;
k=0;
if(nn==n+1)
{
if(small>mm)small=mm;
return;
}
for(i=1;i<=mm;i++)
{
k=0;g=0;
for(j=0;j<nn;j++)
{
if(a[nn][j])
{
g++;
if(i!=b[j])k++;
}
}
//cout<<"第i中颜色"<<i<<" "<<"第几个"<<nn<<" "<<g<<" "<<k<<endl;
if(k==g)
{
b[nn]=i;
dfs(nn+1,mm);
b[nn]=0;
}
else
{
b[nn]=mm+1;
dfs(nn+1,mm+1);
b[nn]=0;
}
}
}
main()
{
int i,j,k;
char s[200];
while(cin>>n)
{
if(n==0)break;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i<n;i++)
{
cin>>s;
int len = strlen(s);
k = s[0]-'A';
for(j=2;j<len;j++)
{
a[k][s[j]-'A']=a[s[j]-'A'][k]=1;
}
}
b[0]=1;
small = 100000000;
dfs(1,1);
if(small==1)
printf("1 channel needed.\n");
else printf("%d channels needed.\n",small);
}
}
分享到:
相关推荐
标题中的“POJ1129-Channel Allocation”是指一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这个题目涉及到“四色定理”,这是图论领域的一个经典问题。 四色定理是图论中的一个重要...
标题“POJ 1129-Channel Allocation”的问题是一个典型的图论问题,涉及到贪心算法和图的m着色问题。在这个问题中,我们假设有一个通信网络,其中的节点代表基站,每个基站需要分配一个频道来传输信号,而两个相邻的...
"tenfeng.zip_channel allocation_信道分配"这个压缩包中包含的是针对信道分配问题的一种实现,特别是基于第二能量熵的算法。下面我们将详细讨论信道分配的基本概念、第二能量熵以及其在MATLAB中的实现。 1. 信道...
Ray-based Channel Allocation(基于射线的信道分配)是一种策略,它利用射线追踪技术来模拟和理解无线环境中的信道特性。在这个"ray.rar_Ray-based_channel_allocation_matlab ray_rayleigh"的压缩包中,包含了三个...
A number of channel allocation schemes have been proposed to fully utilise the wireless bandwidth, but many of them just proposed the channel allocation scheme without presenting a specific channel ...
该段程序时对动态信道分配进行网络仿真的代码
在数字电视广播领域,特别是澳大利亚的免费地面数字电视传输中,逻辑信道描述符(Logical Channel Descriptor,简称LCH)与逻辑信道号(Logical Channel Number,简称LCN)的使用与分配是至关重要的技术细节。...
A novel channel allocation method, based on optimal golomb ruler, that allows reduction of FWM effect while maintaining bandwidth efficiency, is presented. Simulation is carried out to show ...
有关于D2D通信中,信道仿真的编程是基于python语言的。
The studies we described in this section are so recent that the many questions they raise have not yet been answered. We can see, though, that there can be different ways to apply reinforcement ...
本文提出的"Attachment-Learning for Multi-Channel Allocation in Distributed OFDMA-Based Networks"针对的是如何在分布式网络中有效地分配多个子信道,以提升网络性能,尤其是提高系统的吞吐量和效率。...
"first_task_GBR_Allocation_15.09_7BS.rar_voice channel"这个压缩包文件很可能包含了一个用于模拟无线系统中语音通道的程序或数据集。 首先,我们要理解语音通道的工作原理。在无线通信系统中,语音信号首先要...
认知无线电网络(Cognitive Radio Networks, CRNs)是一种无线通信网络,通过动态地改变其传输参数,使得次级用户(Secondary Users, SUs)能够探测并利用主用户(Primary Users, PUs)未使用或空闲的频谱资源。...
It is important to assess the effect of transmit power allocation schemes on the energy consumption on random cellular networks. The energy efficiency of 5G green cellular networks with average and ...
### QoE与能源感知资源分配在小型蜂窝网络中的应用 #### 摘要解析与研究背景 本文探讨了质量体验(Quality of Experience, QoE)与能源感知资源分配在小型蜂窝网络(Small Cell Networks, SCN)中的联合应用问题。...
功率分配不仅需要考虑信道状态信息(Channel State Information, CSI),还要处理动态变化的网络环境。 5. **性能评估**: "NOMAallocation"可能是指对不同功率分配策略的性能评估。这包括仿真和理论分析,以确定...