美团 0907 笔试 寄

寄寄子,为什么第二题放map里面统计每个结点的子节点数量,再求有N个子结点的结点数量,再遍历求组合数,过不了
全部评论
过了多少?
点赞 回复 分享
发布于 2024-09-07 18:21 四川
我已经考虑子父节点关系了,而且我自己还测了好几个样例,子,父节点给的顺序颠倒的,都没问题,但是通过还是0😓😓
点赞 回复 分享
发布于 2024-09-07 11:38 上海
不知道,我自测了一个样例有多组数据的情况,但是一直显示答案出错
点赞 回复 分享
发布于 2024-09-07 11:35 山东
死活过不了 一点都不过
点赞 回复 分享
发布于 2024-09-07 11:35 重庆
给出只是边,需要根据根结点往下查判断父子关系
点赞 回复 分享
发布于 2024-09-07 11:35 四川
对啊,为啥过不了,0%
点赞 回复 分享
发布于 2024-09-07 11:35 广东
俺也一样,寄
点赞 回复 分享
发布于 2024-09-07 11:34 辽宁
他只说了有一条边 没说前一个一定是自节点
点赞 回复 分享
发布于 2024-09-07 11:34 福建
#include <iostream> (30316)#include <vector> #include <unordered_map> using namespace std; long long siminode(int&amp; n, vector<vector<int>>&amp; 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")为什么过不了啊
点赞 回复 分享
发布于 2024-09-07 11:34 浙江
和我一样,没过
点赞 回复 分享
发布于 2024-09-07 11:34 江西
对啊,为什么啊
点赞 回复 分享
发布于 2024-09-07 11:34 湖南

相关推荐

庸也君:简历粗略看,有可能会被paas,如果详细地看的话,简历写的很优秀,很规范,部分内容也有量化
点赞 评论 收藏
分享
04-29 18:07
常州大学 Java
寂静羽翼:兄弟我已经亲身经历了,双非没实习很多大厂还是会给笔试的,可是有的公司笔试做的好也不给面一直卡着,ssob基本看我没实习都拒绝我了,但是每天投满偶尔也能有一两场初创公司的面试,但是薪资基本在五六千
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务