hdu 5441 Travel
来源:互联网 发布:巨炮舰队扫矿软件 编辑:程序博客网 时间:2024/05/29 06:41
2015长春网络赛1005
比赛的时候没有把询问排序,每一次都重头合并,结果无限TLE
#include<iostream>#include<algorithm>using namespace std;int n,m,q,d,sum;struct stu{ int x,y,l;};stu mapp[100010];int f[20010],root[20010];struct stu1{int x;int id;};stu1 que[5050]; int ans[5050];bool cmp(stu x,stu y){ return x.l<y.l;}bool cmp1(stu1 x,stu1 y){return x.x<y.x;}void init(){for(int i=0;i<20010;i++){f[i]=i;root[i]=1;}}void input(){ cin>>n>>m>>q; for(int i=0;i<m;i++) { cin>>mapp[i].x>>mapp[i].y>>mapp[i].l; } sort(mapp,mapp+m,cmp);}int dfs(int x){ if(f[x]!=x) f[x]=dfs(f[x]); return f[x];}void build(int x,int y){if(dfs(x)!=dfs(y)){sum+=root[dfs(x)]*root[dfs(y)]*2;root[dfs(y)]+=root[dfs(x)];f[dfs(x)]=dfs(y);}}void solve(){for(int i=0;i<q;i++) cin>>que[i].x,que[i].id=i;sort(que,que+q,cmp1);int k=0;sum=0;for(int i=0;i<m;i++){while(mapp[i].l>que[k].x){ans[que[k].id]=sum;k++;if(k==q) break;}if(k==q) break;build(mapp[i].x,mapp[i].y);}for(int i=k;i<q;i++){ans[que[i].id]=sum;}}void output(){for(int i=0;i<q;i++){cout<<ans[i]<<endl;}}int main(){ cin.sync_with_stdio(false); int t; cin>>t; while(t--) { init(); input(); solve(); output(); } return 0;}
0 0
- HDU-5441 Travel
- hdu 5441 Travel
- HDU 5441 Travel
- HDU 5441Travel
- 【HDU 5441】Travel
- hdu(5441)——Travel
- hdu Travel
- hdu-travel
- Travel HDU
- Travel HDU
- Travel HDU
- HDU 5441 Travel 并查集
- hdu 5441 Travel(离线+并查集)
- hdu 5441 Travel(生成树)
- hdu 5441 Travel(并查集应用)
- HDU 5441 Travel (并查集)
- HDU 5441 Travel(并查集)
- hdu 5441 Travel 排序 并查集
- 在线考试系统——测试计划 详细测试报告——testlink
- [bzoj1406]密码箱 解题报告
- 2015长春网络赛(hdu 5442)
- 数据结构之---C语言实现括号匹配(栈实现)
- 14、编程珠玑笔记十四堆
- hdu 5441 Travel
- 如何用FileReader,BufferedReader,FileInputStream读取文档
- 15、编程珠玑笔记十五字符串
- 飘雪
- mantis与testlink实验流程
- Java 容器类深入整理笔记
- php 加密解密
- 2015.09.13
- hdu 5437 Alisha’s Party