【Wannafly Daily】【XJTUOJ】12 好友推荐
2017-05-02 16:35
176 查看
http://oj.xjtuacm.com/problem/12/
题解点这里~~~
题解点这里~~~
#include<stdio.h> #include<cstring> #include<vector> using namespace std; typedef long long ll; #define pb push_back #define N 100005 #define M 200005 vector<int> G1 ,G2 ,G ; int sum1 ,sum2 ,sum3[M],n,m,du ,e[M][2]; #define For(i,v) for (int _##i=0,i;_##i<v.size() && (i=v[_##i]);_##i++) inline ll sum_4() { ll ans1=0,ans2=0; for (int i=1;i<=n;i++) { For(j,G1[i]) For(k,G1[j]) sum1[k]++; For(j,G2[i]) For(k,G1[j]) sum2[k]++; For(j,G1[i]) For(k,G1[j]) { ans1+=(ll)sum1[k]*(sum1[k]-1)/2; ans1+=(ll)sum1[k]*sum2[k]; sum1[k]=0; } For(j,G2[i])For(k,G1[j]) { if (k!=i) ans2+=(ll)sum2[k]*(sum2[k]-1)/2; sum2[k]=0; } } return ans1+ans2/2; } inline ll sum_3() { for (int i=1;i<=m;i++) { int u=e[i][0],v=e[i][1]; For(j,G1[u]) sum1[j]=G[u][_j]; For(j,G1[v]) if (sum1[j]) { sum3[i]++; sum3[sum1[j]]++; sum3[G[v][_j]]++; } For(j,G1[u]) sum1[j]=0; } ll ans=0; for (int i=1;i<=m;i++) ans+=(ll)sum3[i]*(sum3[i]-1)/2; return ans; } int main() { while (~scanf("%d%d",&n,&m)) { for (int i=1;i<=n;i++) G1[i].clear(),G2[i].clear(),G[i].clear(); memset(du+1,0,n*sizeof(int)); memset(sum3+1,0,m*sizeof(int)); for (int i=1,u,v;i<=m;i++) { scanf("%d%d",&u,&v); e[i][0]=u,e[i][1]=v; du[u]++,du[v]++; } for (int i=1;i<=m;i++) { int u=e[i][0],v=e[i][1]; if (du[v]<du[u] || (du[u]==du[v] && v<u)) swap(u,v); G1[u].pb(v);G2[v].pb(u); G[u].pb(i); } printf("%lld\n",2*sum_4()-sum_3()); } }
相关文章推荐
- 【Wannafly Daily】20170412 A 郭大侠与线上游戏
- 【Wannafly Daily】20170423 Product it again
- 【Wannafly Daily 4.22】World is Exploding
- 本周ASP.NET英文技术文章推荐[12/03 - 12/09](鼠标移到文章标题上会有漂亮的预览哦)
- 【坐在马桶上看算法】算法12:堆——神奇的优先队列(下) 推荐
- 用Map/Reduce来做好友推荐
- 实战智能推荐系统(12)-- 标签推荐系统
- 实战智能推荐系统(12)-- 标签推荐系统
- 系统好友推荐实现之数据库设计实例
- 【C/C++】【利用“图”实现好友推荐策略】
- android列表收缩与展开仿QQ好友列表(非常详细,附源码) 推荐
- Spark 好友推荐解决方案
- c++书籍推荐【出自好友高博之手】
- newCoder Wannafly挑战赛4:B-小AA的数列 (位运算)
- 用asp.net实现把此文推荐给好友的功能
- 【系统设计】“查询推荐好友”服务在不同架构风格下如何设计?
- wannafly test D
- 【cocos2d-x从c++到js】12:回调函数1——按键回调 推荐
- BAT等大厂十年研发经历,总结了12开发条经验(墙裂推荐)
- 案例分析:人人网的基于层次聚类的好友推荐