NOIP模拟(20171030)T3 星星
来源:互联网 发布:mac dance with me唇釉 编辑:程序博客网 时间:2024/05/15 15:36
题意:(说不清)
一道证明复杂度题
这样是
自己看吧~
#include<bits/stdc++.h>#define LEN 300000using namespace std;inline int getint(){ int x=0,p=1; char c=getchar(); while(!isdigit(c)){ if(c=='-')p=-1; c=getchar(); } while(isdigit(c)){ x=(x<<3)+(x<<1)+(c^'0'); c=getchar(); } return x*p;}struct road{ int u,v;}r[LEN];vector<int>r2[LEN];int d[LEN];inline void work(){ int n=getint(),m=getint(); for(int i=0;i<=n+1;++i){ r2[i].clear(); d[i]=0; } for(int i=0;i<=m+1;++i){ r[i].u=r[i].v=0; } #if n==30 #define int char #endif for(int i=1;i<=m;++i){ int u=getint(),v=getint(); r[i].u=u,r[i].v=v; r2[u].push_back(v); r2[v].push_back(u); ++d[u],++d[v]; } for(int i=1;i<=n;++i){ sort(r2[i].begin(),r2[i].end()); } long long ans=0; for(int i=1;i<=m;++i){ int u=r[i].u,v=r[i].v; if(d[u]>d[v])swap(u,v); int tot=0; vector<int>::iterator xx=r2[v].begin(); for(int j=0;j<d[u];++j){ if((xx=lower_bound(xx,r2[v].end(),r2[u][j]))!=r2[v].end()&&*xx==r2[u][j]){ ++tot; } if(xx==r2[v].end())break; } ans+=(long long)tot*(tot-1)/2; } cout<<ans<<"\n";}int main(){ int t=getint(); while(t--){ work(); } return 0;}
好吧,证一下复杂度。
将点分为两类,度数
易得重点不超过
对于所有有至少一端为轻点的边,每次查询复杂度为
对于所有连接两个重点的边,我们考虑每个黑点被作为代码中的
证毕
阅读全文
0 0
- NOIP模拟(20171030)T3 星星
- NOIP模拟(10.30)T3 星星
- 【NOIP 模拟题】[T3] 约会(lca)
- NOIP模拟(10.19)T3 放盒子
- NOIP模拟(10.20)T3 裁剪表格
- NOIP模拟(20171023)T3 拆网线
- NOIP模拟(10.22)T3 树
- NOIP模拟(10.23)T3 拆网线
- NOIP模拟(10.24)T3 Math
- NOIP模拟(20171024)T3 数学
- NOIP模拟(20171026)T3 大逃杀
- NOIP模拟(10.26)T3 大逃杀
- NOIP模拟(10.27)T3 心灵治愈
- NOIP模拟(10.31)T3 纸带
- NOIP模拟(11.07)T3 图
- NOIP模拟(20171031)T3 纸带
- noip模拟11.3 T3
- NOIP模拟 星星 【图论】
- 技术学到多厉害,才能顺利进入BAT?
- 这 26个中国式创新,征服了全世界
- 深度揭秘!中国程序员生存现状
- 【敏捷】【STEM】【自媒体运营】三场Chat | Chat · 预告
- C typedef
- NOIP模拟(20171030)T3 星星
- 【webpack 学习之路】【成为一个 IT 界女装大佬】两场 Chat | Chat · 预告
- 改做人工智能之前,90%的人都没能给自己定位
- 年终奖低于120个月工资的人,都看一看吧
- 一小时教你学会 ARM 架构
- 如何成为一个 IT 界的女装大佬?
- 使用三种不同的核函数(回归)对Boston房价进行预测,同时对测试数据做出预测
- MC68HC908GZ60中CAN调试主文件。
- 低学历又如何?这样的程序员照样可以逆袭