POJ 3275 Ranking The Cows
2010-10-30 15:28
387 查看
对N个数字进行大小排序,最多需要知道N*(N-1)/2对大小关系
这道题让你求最少的对数,是在最大值N*(N-1)/2的基础上求的,因为要确保在知道C对比较后能将序列完全排出来,故M+C=N*(N-1)/2
由于数据量比较大,N最大可以到1000,用邻接矩阵写Floyd回超时,所以写了个邻接表的Floyd,用DFS也可以
代码:
这道题让你求最少的对数,是在最大值N*(N-1)/2的基础上求的,因为要确保在知道C对比较后能将序列完全排出来,故M+C=N*(N-1)/2
由于数据量比较大,N最大可以到1000,用邻接矩阵写Floyd回超时,所以写了个邻接表的Floyd,用DFS也可以
代码:
#include<iostream> using namespace std; int g1[1001][1001],g2[1001][1001],dis[1001][1001];//g1正向图,g2反向图 int n; int main() { int m,i,j,k,ans,pre,next; memset(g1,0,sizeof(g1)); memset(g2,0,sizeof(g2)); memset(dis,0,sizeof(dis)); cin>>n>>m; for(k=1;k<=m;k++) { scanf("%d %d",&i,&j); g1[i][0]++;//计数器 g1[i][g1[i][0]]=j;//i->j g2[j][0]++; g2[j][g2[j][0]]=i;//j->i dis[i][j]=1; } for(k=1;k<=n;k++) { for(i=1;i<=g2[k][0];i++) { pre=g2[k][i]; for(j=1;j<=g1[k][0];j++) { next=g1[k][j]; if(dis[pre][next]==0) { dis[pre][next]=1; g1[pre][0]++; g1[pre][g1[pre][0]]=next; g2[next][0]++; g2[next][g2[next][0]]=pre; } } } } ans=0; for(i=1;i<=n;i++) ans+=g1[i][0]; printf("%d/n",n*(n-1)/2-ans); return 0; }/* #include<iostream> #include<vector> using namespace std; vector<int>vec[1001];//二维容器,相当于一个邻接表 int cnt,visit[1001]; void dfs(int u) { int v; cnt++; visit[u]=1; for(vector<int>::size_type ix=0;ix<vec[u].size();ix++) { v=vec[u][ix]; if(!visit[v]) dfs(v); } } int main() { int i,a,b,m,n; scanf("%d %d",&n,&m); for(i=1;i<=m;i++) { scanf("%d %d",&a,&b); vec[a].push_back(b); } cnt=0; for(i=1;i<=n;i++) { memset(visit,0,sizeof(visit)); dfs(i); cnt--; } printf("%d/n",n*(n-1)/2-cnt); return 0; }*/
相关文章推荐
- poj 3275 Ranking the Cows 搜索
- poj 3275 Ranking the Cows 传递闭包+邻接表优化
- poj 3275 Ranking the Cows
- POJ 3275 Ranking the Cows floyd求传递闭包 || bfs
- POJ 3275 Ranking the Cows
- poj 3275 Ranking The Cows
- PKU/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
- Til the Cows Come Home POJ - 2387
- POJ 2387 Til the Cows Come Home (Dijkstra)
- POJ 3186 Treats for the Cows 简单dp
- 动态规划训练20 [Treats for the Cows POJ - 3186 ]
- poj-2387 Til the Cows Come Home
- poj 2387 Til the Cows Come Home(kuangbin带你飞 专题四:最短路)
- poj 2387 Till the Cows Come Home
- poj-Til the Cows Come Home(Bellman-Ford)
- 【日常练习 dijkstra】POJ 2387 Til the Cows Come Home