poj 3275 Ranking The Cows
2016-10-10 14:44
323 查看
题目大意:
略了。。。。
大概就是邻接矩阵会t的一道题,所以用邻接表优化。
邻接表写跪了。。我的天。。
主要是高低的邻接表。。
略了。。。。
大概就是邻接矩阵会t的一道题,所以用邻接表优化。
邻接表写跪了。。我的天。。
主要是高低的邻接表。。
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; //by mars_ch int c[1005][1005],map[1005][1005]; int n,m; struct node { int f,t,w,nxt; }e[1000005]; int tot,first[10005]; struct data { int f,t,w,nxt; }b[1000005]; int head[10005],tol; void add1(int a,int b) { e[tot].f=a,e[tot].t=b; e[tot].nxt=first[a]; first[a]=tot++; } void add2(int a,int bb) { e[tot].f=a,e[tot].t=bb; e[tot].nxt=head[a]; head[a]=tot++; } int main() { memset(first,-1,sizeof(first)); memset(head,-1,sizeof(head)); scanf("%d%d",&n,&m); int ans=n*(n-1)/2; int cnt=0; for(int i=1;i<=m;i++) { int a,b; scanf("%d%d",&a,&b); add1(a,b); add2(b,a); map[a][b]=1; } for(int i=1;i<=n;i++) { for(int j=head[i];j!=-1;j=e[j].nxt) { int a=e[j].t; for(int k=first[i];k!=-1;k=e[k].nxt) { int bb=e[k].t; if(map[a][bb]) continue; // printf("i=%d a=%d bb=%d\n",i,a,bb); map[a][bb]=1; add1(a,bb); add2(bb,a); } } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(map[i][j] == 1) { cnt++; } } } printf("%d\n",ans-cnt); return 0; }
相关文章推荐
- POJ 3275 Ranking the Cows
- Poj 3275 Ranking the Cows
- POJ 3275 Ranking The Cows
- poj 3275 Ranking the Cows 传递闭包+邻接表优化
- POJ 3275 Ranking the Cows floyd求传递闭包 || bfs
- PKU/POJ 3275 Ranking the Cows
- poj 3275 Ranking the Cows
- poj 3275 Ranking the Cows 搜索
- poj 3275 Ranking the Cows
- poj&nbsp;3275&nbsp;Ranking&nbsp;the&nbsp;Cows(floyd&nbsp;…
- PKU 3275 Ranking the Cows 最短路 floyd
- POJ 2387 Til the Cows Come Home
- poj 2387 Til the Cows Come Home spfa基础题,入门,我的第一个
- POJ 2387 Til the Cows Come Home 最短路
- POJ 2387 Til the Cows Come Home --单源最短路径
- poj 2387 Til the Cows Come Home(最短路水题 = =)
- 迪杰斯特拉 示例 : poj 2387 Til the Cows Come Home
- Poj 2387 Til the Cows Come Home
- poj 2387-Til the Cows Come Home-dijkstra
- POJ 2387 Til the Cows Come Home (单源最短路SPFA解法)