似乎不是那么简单

superwt2001 2003-03-29 02:20:16
平面上有n个点,两点之间或相邻或不相邻,现在将每个点涂上颜色,要求相邻的点不能用相同的颜色,问最少用几种颜色。
输入:先是一个整数n,代表有n个点
然后输入它们的相邻不相邻情况。例如:
4
A:BC //代表A和BC相邻,下面类似
B:ACD
C:ABD
D:BC
最后输出:
3 colors needed.
我的程序为什么不对?55555555
#include <iostream.h>
#include <string.h>
void change(char str[],int num[],int n)
{
cin >> str;
int i,len;
len=strlen(str);
for(i=2;i<len;i++)
if(num[str[i]-'A']==num[n]&&str[i]>str[n])
num[str[i]-'A']++;
}
int max(int num[],int n)
{
int m=0,i=0;
for(i=0;i<n;i++)
if(num[i]>m)
m=num[i];
return m;
}
void main()
{
int i,n;
char str[30];
int num[30];
cin >> n;
for(i=0;i<n;i++)
num[i]=1;
for(i=0;i<n;i++)
change(str,num,i);
if(max(num,n)==1)
cout << max(num,n) << " color needed.\n";
else cout << max(num,n) << " colors needed.\n";
}

...全文
38 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
superwt2001 2003-03-29
  • 打赏
  • 举报
回复
有没有人帮我?
jzl_13 2003-03-29
  • 打赏
  • 举报
回复
我猜你的算法算出来的结果一定是多了,
我想着体应该用数据结构的图来做,
不过我现在还没想出好办法做,等想到了再告诉你。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧