UVa 599 - The Forrest for the Trees
2017-06-29 22:42
337 查看
题目:统计一个森林中的树和孤点个数。
分析:图论,搜索。这里利用dfs求解连通性。
一个图,没有环称为树,很多个树叫做森林。
说明:CSDN编辑器有点问题?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int edge[27][27];
int node[27];
int dfs(int id)
{
node[id] = 0;
int ans = 1;
for (int i = 0; i < 26; ++ i) {
if (edge[id][i] && node[i]) {
ans += dfs(i);
}
}
return ans;
}
int main()
{
int t;
char u, v, buf[1024];
while (~scanf("%d",&t)) {
getchar();
while (t --) {
memset(edge, 0, sizeof(edge));
memset(node, 0, sizeof(node));
while (gets(buf) && buf[0] != '*') {
edge[buf[1]-'A'][buf[3]-'A'] = 1;
edge[buf[3]-'A'][buf[1]-'A'] = 1;
}
gets(buf);
for (int i = 0; buf[i]; ++ i) {
if (buf[i] >= 'A' && buf[i] <= 'Z') {
node[buf[i]-'A'] = 1;
}
}
int tree = 0, acorn = 0;
for (int i = 0; i < 26; ++ i) {
if (node[i]) {
if (dfs(i) > 1) {
tree ++;
}else {
acorn ++;
}
}
}
printf("There are %d tree(s) and %d acorn(s).\n",tree,acorn);
}
}
return 0;
}
分析:图论,搜索。这里利用dfs求解连通性。
一个图,没有环称为树,很多个树叫做森林。
说明:CSDN编辑器有点问题?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int edge[27][27];
int node[27];
int dfs(int id)
{
node[id] = 0;
int ans = 1;
for (int i = 0; i < 26; ++ i) {
if (edge[id][i] && node[i]) {
ans += dfs(i);
}
}
return ans;
}
int main()
{
int t;
char u, v, buf[1024];
while (~scanf("%d",&t)) {
getchar();
while (t --) {
memset(edge, 0, sizeof(edge));
memset(node, 0, sizeof(node));
while (gets(buf) && buf[0] != '*') {
edge[buf[1]-'A'][buf[3]-'A'] = 1;
edge[buf[3]-'A'][buf[1]-'A'] = 1;
}
gets(buf);
for (int i = 0; buf[i]; ++ i) {
if (buf[i] >= 'A' && buf[i] <= 'Z') {
node[buf[i]-'A'] = 1;
}
}
int tree = 0, acorn = 0;
for (int i = 0; i < 26; ++ i) {
if (node[i]) {
if (dfs(i) > 1) {
tree ++;
}else {
acorn ++;
}
}
}
printf("There are %d tree(s) and %d acorn(s).\n",tree,acorn);
}
}
return 0;
}
相关文章推荐
- Functional Programming For The Rest of Us 翻译,重译 (剩人们的函数式编程)
- Matt Cooke: He Won't Be Suspended for the Rest of the NHL Season and Playoffs
- UVA 10250 - The Other Two Trees(几何)
- Uva 10562 - Undraw the Trees
- Uva 10250 - The Other Two Trees
- [转贴]gOS 3 Gadgets.Linx for the rest of us
- UVa 122 - Trees on the level
- UVA10562 - Undraw the Trees
- uva 10562 Undraw the Trees
- Write Code as If You Had to Support It for the Rest of Your Life
- 93. Can't see the wood for the trees. 一叶障目,不见泰山
- uva 10250 - The Other Two Trees
- uva 10562 - Undraw the Trees
- Functional Programming For The Rest of Us
- UVa 10562 - Undraw the Trees
- 无主之地主题曲《Ain't No Rest For The Wicked》
- UVa10007 - Count the Trees
- uva 10562 - Undraw the Trees
- 数据结构 递归 uva 10562 - Undraw the Trees
- uva 10250 - The Other Two Trees