HDU-1285【拓补排序】
2016-09-13 17:17
453 查看
自己学到拓补排序找到这个题目,看着挺简单,其实有一些坑点,结果wrong了很多次,不过还好最终做了出来。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n,m;
int graph[550][550];
int value[550];
int indegree[550];
void tuobu()
{
int Count=0;
int cnt=0;
while(Count<n)
{
for (int i=1;i<=n;++i)
{
if (value[i]==0&&graph[i][i]==0)
{
Count++;
indegree[cnt++]=i;
graph[i][i]=1;
for (int j=1; j<=n; ++j)
{
if (graph[i][j]==1&&i!=j&&graph[j][j]==0)
{
if (value[j]>0)
--value[j];
}
}
break;//这里的break,加入的目的就是保证它能按规定要求顺序输入
}
}
}
for (int i=0;i<n-1;++i)
{
printf("%d ",indegree[i]);
}
printf("%d\n",indegree[n-1]);
}
int main()
{
while(cin>>n>>m)
{
int num1,num2;
memset(value,0,sizeof(int)*(n+1));
memset(graph,0,sizeof(graph));
memset(indegree,0,sizeof(indegree));
while(m--)
{
scanf("%d %d",&num1,&num2);
if (!graph[num1][num2])//咳咳,看了这个判断就知道数据的坑点在哪了吧。。。。。就是这被坑大了
{
graph[num1][num2]=1;
graph[num1][num1]=0;
graph[num2][num2]=0;
value[num2]++;
}
}
tuobu();
}
}
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n,m;
int graph[550][550];
int value[550];
int indegree[550];
void tuobu()
{
int Count=0;
int cnt=0;
while(Count<n)
{
for (int i=1;i<=n;++i)
{
if (value[i]==0&&graph[i][i]==0)
{
Count++;
indegree[cnt++]=i;
graph[i][i]=1;
for (int j=1; j<=n; ++j)
{
if (graph[i][j]==1&&i!=j&&graph[j][j]==0)
{
if (value[j]>0)
--value[j];
}
}
break;//这里的break,加入的目的就是保证它能按规定要求顺序输入
}
}
}
for (int i=0;i<n-1;++i)
{
printf("%d ",indegree[i]);
}
printf("%d\n",indegree[n-1]);
}
int main()
{
while(cin>>n>>m)
{
int num1,num2;
memset(value,0,sizeof(int)*(n+1));
memset(graph,0,sizeof(graph));
memset(indegree,0,sizeof(indegree));
while(m--)
{
scanf("%d %d",&num1,&num2);
if (!graph[num1][num2])//咳咳,看了这个判断就知道数据的坑点在哪了吧。。。。。就是这被坑大了
{
graph[num1][num2]=1;
graph[num1][num1]=0;
graph[num2][num2]=0;
value[num2]++;
}
}
tuobu();
}
}
相关文章推荐
- iOS开发- 点击通知栏回到顶部的动画效果
- js绑定事件
- 类的无参方法(课后5)
- router设置
- 十二章 课后5
- 十二章 课后作业3
- SQL Server健康检查的重要性
- Java 获取当前文件.class 的相对或绝对路径
- 【转】MySQL 添加密码、改密码、忘记密码
- haporxy 负载elasticsearch
- 天纵智能软件快速开发平台便签插件
- uisegmentedcontrol类重写,自定义按钮和背景颜色
- Java 图片切割
- 带TargetStackTraceElement的log工具类
- window 2003安装完系统之后网卡驱动处理办法
- haporxy 负载elasticsearch
- Cesium原理篇:4Web Workers剖析(2)
- PLSQL基本语法
- Java fastjson 解析json配置文件
- C语言指针传参问题