首页 > 代码库 > hdu 6016
hdu 6016
比赛用并查集怼了半天,发现没办法找到4个不同的数,没做出来,刚刚看了题解,就是个脑洞题。。。。。。炸了,还有,估计以后只能做uva了
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; const int maxn=100000+10; int a[maxn],b[maxn]; struct note { int x,y; }tt[maxn]; int t,m,n,p; int main() { scanf("%d",&t); while(t--) { scanf("%d%d%d",&m,&n,&p); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for(int i=0;i<p;i++) { scanf("%d%d",&tt[i].x,&tt[i].y); a[tt[i].x]++; b[tt[i].y]++; } long long int ans=0; for(int i=0;i<p;i++) ans+=(long long)(a[tt[i].x]-1)*(b[tt[i].y]-1);//出现次数减去这次的连接次数,也就是1,男女都减,这是最神奇的地方 printf("%lld\n",ans*2); } return 0; }
hdu 6016
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。