赞
踩
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<vector> #include<queue> #include<stack> #include<map> #include<set> #include<string> #include<bitset> #include<sstream> #include<ctime> //#include<chrono> //#include<random> //#include<unordered_map> using namespace std; #define ll long long #define ls o<<1 #define rs o<<1|1 #define pii pair<int,int> #define fi first #define se second #define pb push_back #define mp make_pair #define sz(x) (int)(x).size() #define all(x) (x).begin(),(x).end() const double pi=acos(-1.0); const double eps=1e-6; const int mod=1e9+7; const int INF=0x3f3f3f3f; const int maxn=1e5+5; ll read(){ ll x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,m; vector<int>g[maxn],g2[maxn]; int deg[maxn],vis[maxn]; int main(void){ //freopen("in.txt","r",stdin); scanf("%d%d",&n,&m); int u,v; for(int i=1;i<=m;i++){ scanf("%d%d",&u,&v); g[u].pb(v); g[v].pb(u); deg[u]++; deg[v]++; } for(int u=1;u<=n;u++){ for(auto v:g[u]){ if((deg[u]<deg[v])||(deg[u]==deg[v]&&u<v)){ g2[u].pb(v); } } } ll ans=0; for(int u=1;u<=n;u++){ for(auto v:g2[u])vis[v]=u; for(auto v:g2[u]){ for(auto w:g2[v]){ if(vis[w]==u){ ++ans; } } } } printf("%lld\n",ans); return 0; }
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<vector> #include<queue> #include<stack> #include<map> #include<set> #include<string> #include<bitset> #include<sstream> #include<ctime> //#include<chrono> //#include<random> //#include<unordered_map> using namespace std; #define ll long long #define ls o<<1 #define rs o<<1|1 #define pii pair<int,int> #define fi first #define se second #define pb push_back #define mp make_pair #define sz(x) (int)(x).size() #define all(x) (x).begin(),(x).end() const double pi=acos(-1.0); const double eps=1e-6; const int mod=1e9+7; const int INF=0x3f3f3f3f; const int maxn=1e5+5; ll read(){ ll x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,m; vector<int>g[maxn],g2[maxn]; int cnt[maxn],deg[maxn],id[maxn],rk[maxn]; int cmp(int a,int b){ return deg[a]<deg[b]||(deg[a]==deg[b]&&a<b); } int main(void){ // freopen("in.txt","r",stdin); scanf("%d%d",&n,&m); int u,v; for(int i=1;i<=m;i++){ scanf("%d%d",&u,&v); g[u].pb(v); g[v].pb(u); deg[u]++; deg[v]++; } for(int i=1;i<=n;i++)id[i]=i; sort(id+1,id+n+1,cmp); for(int i=1;i<=n;i++)rk[id[i]]=i; for(int u=1;u<=n;u++){ for(auto v:g[u]){ if(deg[u]<deg[v]||(deg[u]==deg[v]&&u<v)){ g2[u].pb(v); } } } ll ans=0; for(int u=1;u<=n;u++){ for(auto v:g[u]){ for(auto w:g2[v]){ if(rk[w]>rk[u])ans+=cnt[w]++; } } for(auto v:g[u]){ for(auto w:g2[v]){ if(rk[w]>rk[u])cnt[w]=0; } } } printf("%lld\n",ans); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。