Double Profiles CodeForces
来源:互联网 发布:淘宝网商城女装冬装 编辑:程序博客网 时间:2024/06/16 02:37
传送门:CodeForces - 154C
题意:
给一个无向图,定义pair(u, v),使得任意k(k != u, v),k到u,v都有边或者k到u,v都无边
求pair的数目。 (u,v)和(v,u)算两个不同的pair。
思路:
对点u,让它的相邻点集为W(u),对于pair(u, v) ,可以分为两类
if (u, v)存在直接相连的边
则 W(u) - v = W(v) - u
else
W(u) = W(v)
而判断两个点集相不相等我们可以采取hash,这里数据量不是很大,hash函数也很好构造,给每个点赋一个点权就好了。
代码:
#include<bits/stdc++.h>#define ll long long#define pi acos(-1)#define inf 0x3f3f3f3f#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1#define rep(i,x,n) for(int i=x;i<n;i++)#define per(i,n,x) for(int i=n;i>=x;i--)using namespace std;typedef pair<int,int>P;const int MAXN=1000010;int gcd(int a,int b){return b?gcd(b,a%b):a;}vector<int>g[MAXN];P p[MAXN];ll w[MAXN],hh[MAXN];void init(){hh[0]=1;for(int i=1;i<MAXN;i++)hh[i]=hh[i-1]*1007;}int main(){std::ios::sync_with_stdio(0);int n,m,u,v;init();cin>>n>>m;for(int i=0;i<m;i++){cin>>u>>v;p[i]=P(u,v);w[u]+=hh[v];w[v]+=hh[u];}ll ans=0;for(int i=0;i<m;i++){if(w[p[i].first]-hh[p[i].second]==w[p[i].second]-hh[p[i].first])ans++;}sort(w+1,w+1+n);int pre=1;for(int i=2;i<=n;i++){if(w[i]!=w[i-1]){ans+=(1ll*(i-pre)*(i-1-pre))/2;//计算W()相同的点集合内有多少个无序对pre=i;}}ans+=(1ll*(n+1-pre)*(n-pre))/2;cout<<ans; return 0;}
0 0
- Double Profiles CodeForces
- Double Profiles CodeForces
- Codeforces 155 C.Double Profiles
- Codeforces 154C Double Profiles
- Double Profiles - CodeForces 154C 哈希
- codeforces 154C Double Profiles (简单图论+哈希)
- Codeforces Round #109 (Div. 1) C. Double Profiles
- Codeforces 155E E. Double Profiles【思维+hash】
- CodeForces 82A Double Cola
- Codeforces A. Double Cola 题解
- CodeForces-82A-Double Cola
- Codeforces 101484 E Double Fence
- Problem--82A--Codeforces--Double Cola
- Double
- Double
- double
- codeforces 113C C. Double Happiness(数论+暴力)
- 【随便做做】Codeforces#86 Problem C Double Happiness
- 简单工厂模式
- TensorFlow函数——tf.placeholder()
- 【PHP入门】Zend Studio常用快捷键
- Retrofit+RxJava实现app崩溃处理(一)上传文件
- 实现对未登录用户进行相关操作的拦截
- Double Profiles CodeForces
- Linux(文件的用途)
- JQUERY 登录验证
- MathType中如何实现上下两行公式“=”号或者任意地方对齐
- JavaScript 中的字符串分割 slice()、substr()、substring()
- 自定义控件实现uc浏览器语音搜索效果
- ThinkPad T440 日常使用吐槽(一)
- SQL常用增删改查语句
- 诗词歌赋、名言警句