社区讨论
晕了已经,怎么样都不知道哪里错了
P13478[GCJ 2008 AMER SemiFinal] Mixing Bowls参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @miv7pjyl
- 此快照首次捕获于
- 2025/12/07 12:18 2 个月前
- 此快照最后确认于
- 2025/12/09 22:25 2 个月前
CPP
#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
unordered_map <string, vector<string>> mix_ingredients;
vector <int> max_bowl;
int max_bowls;
int dfs(const string& mix_name)
{
int child_mix_count = 0;
for (const string& ing : mix_ingredients[mix_name])
{
if (isupper(ing[0]))
{
dfs(ing);
child_mix_count++;
}
}
int current_bowls = child_mix_count + 1;
if (current_bowls > max_bowls)
{
max_bowls = current_bowls;
}
return current_bowls;
}
int main()
{
int C;
cin >> C;
for (int case_num = 1;case_num <= C;++case_num)
{
int N;
cin >> N;
mix_ingredients.clear();
string final_mix;
for (int i = 0;i < N;++i)
{
string mix_name;
int M;
cin >> mix_name >> M;
if (i == 0)
{
final_mix = mix_name;
}
vector <string> ings(M);
for (int j = 0;j < M;++j)
{
cin >> ings[j];
}
mix_ingredients[mix_name] = ings;
}
max_bowls = 0;
dfs(final_mix);
max_bowl.push_back(max_bowls);
}
int num = 1;
for (auto p = max_bowl.begin();p != max_bowl.end();p++)
{
cout << "Case #" << num << ": " << max_bowl[num - 1] << endl;
num++;
}
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...