美团 0907 笔试 寄
寄寄子,为什么第二题放map里面统计每个结点的子节点数量,再求有N个子结点的结点数量,再遍历求组合数,过不了

全部评论
过了多少?
我已经考虑子父节点关系了,而且我自己还测了好几个样例,子,父节点给的顺序颠倒的,都没问题,但是通过还是0😓😓
不知道,我自测了一个样例有多组数据的情况,但是一直显示答案出错
死活过不了 一点都不过
给出只是边,需要根据根结点往下查判断父子关系
俺也一样,寄
他只说了有一条边 没说前一个一定是自节点
#include <iostream>
(30316)#include <vector>
#include <unordered_map>
using namespace std;
long long siminode(int& n, vector<vector<int>>& group){
if(n == 1 || n == 2) return 0;
long long ans = 0;
unordered_map<int ,int> m;
for(int i = 1; i < n+1; ++i){
m[group[i].size()]++;
}
for(auto i: m){
if(i.second>=2){
ans += (i.second*(i.second-1))/2;
}
}
return ans;
}
int main() {
int T;
cin>>T;
vector<vector<int>> group;
while (T--) { // 注意 while 处理多个 case
int n,u,v;
cin>>n;
int temp = n-1;
group.resize(n+1);
while(temp--){
cin>>u>>v;
group[u].push_back(v);
}
cout << siminode(n,group) << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")为什么过不了啊
和我一样,没过
对啊,为什么啊
相关推荐
05-06 22:57
广西工程职业学院 软件测试 点赞 评论 收藏
分享
04-29 18:07
常州大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享