解题思路:
并查集。逆向思维。
注意事项:
看清题目,求抗议的天数,不是最开始的抗议时间。
参考代码:
#include<iostream> #include<string> #include<algorithm> using namespace std; struct cun{ int x; int y; int t; }p[100010]; bool cmp(cun a,cun b){ return a.t>b.t; } int n,m,q,f[10005]; int find(int a){ if(f[a]==a)return a; return f[a]=find(f[a]); } int main() { cin>>n; cin>>m; for(int i=1;i<=n;i++){ f[i]=i; } for(int i=1;i<=m;i++){ cin>>p[i].x>>p[i].y>>p[i].t; } sort(p+1,p+m+1,cmp); int q=-1,sum=0; for(int i=1;i<=m;i++){ if(find(p[i].x)!=find(p[i].y)){ f[find(p[i].x)]=find(p[i].y); if(p[i].t!=q){ sum++; q=p[i].t; } } } cout<<sum; return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:573 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1314 |
简单的for循环浏览:1495 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:616 |
DNA (C语言描述,蓝桥杯)浏览:1653 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:750 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:742 |
单词个数统计 (C语言代码)浏览:1046 |
1197求助浏览:667 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:548 |