T9的空间
You will never walk alone!
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
69 随笔 :: 0 文章 :: 28 评论 :: 0 Trackbacks
<
2008年10月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
公告
如果笔记中有误导路人的段落,请帮忙email给我,谢谢 shuoxie@gmail.com
随笔分类
APUE(15)
(rss)
Compile & Link(3)
(rss)
Computation Geometry(5)
(rss)
Data Structures(8)
(rss)
Graph(6)
(rss)
Java(2)
(rss)
Linux(2)
(rss)
My litter life(2)
(rss)
Number Theory(4)
(rss)
Useful information(3)
(rss)
细节(2)
(rss)
随笔档案
2016年8月 (1)
2014年7月 (1)
2013年12月 (2)
2013年10月 (3)
2013年6月 (7)
2013年5月 (8)
2012年9月 (1)
2009年6月 (3)
2009年4月 (2)
2009年2月 (1)
2009年1月 (1)
2008年12月 (2)
2008年11月 (8)
2008年10月 (6)
2008年9月 (14)
2008年8月 (9)
相册
Temp
收藏夹
ACM_algorithm(1)
(rss)
我的链接
Peking university judgeonline
Saratov State University _Online Contester
STL 中文站
Topcoder
Waterloo Programming Contests
搜索
积分与排名
积分 - 47503
排名 - 470
最新随笔
1. 算法导论读书笔记.
2. Linux memory summary
3. 高性能JNI
4. 第二章-编译和链接
5. 第一章-温故而知新
6. 程序员自我修养-读书笔记
7. LTZ看书之APUE14
8. LTZ看书之APUE13
9. LTZ看书之APUE12
10. LTZ看书之APUE11
最新评论
1. re: ACM OJ Collection
评论内容较长,点击标题查看
--professional resume writing service
POJ 1094 Topological_Sort(拓扑排序)
Source Code
Problem:
1094
User: Torres
Memory: 224K Time: 32MS
Language: C
++
Result: Accepted
Source Code
#include
<
iostream
>
#include
<
algorithm
>
#include
<
vector
>
using
namespace
std;
#define
N 30
vector
<
vector
<
int
>
>
G(N);
int
re[N];
int
Top_sort(vector
<
vector
<
int
>
>
G,
int
n,
int
*
de)
{
//
out<<"www"<<endl;
int
i,j,k;
memset(re,
0
,
sizeof
(re));
int
cnt
=
0
;
int
flag1
=
0
;
for
(i
=
0
;i
<
n;i
++
)
{
int
flag
=
0
;
for
(j
=
0
;j
<
n;j
++
)
{
if
(de[j]
==
0
)
{
flag
=
1
;
for
(k
=
j
+
1
;
!
flag1
&&
k
<
n;k
++
)
if
(de[k]
==
0
)
{
flag1
=
1
;
break
;
}
//
说明有两个可供选择的点那么就会产生不同的排列
re[cnt
++
]
=
j;
de[j]
=-
1
;
int
len
=
G[j].size();
for
(k
=
0
;k
<
len;k
++
)
if
(de[G[j][k]]
>
0
) de[G[j][k]]
--
;
break
;
}
}
if
(
!
flag)
return
1
;
//
矛盾
}
if
(flag1)
return
-
1
;
//
不确定
return
0
;
//
正常
}
int
main()
{
int
n,m,i;
char
s[
4
];
//
freopen("in.txt","r",stdin);
while
(scanf(
"
%d%d
"
,
&
n,
&
m))
{
if
(n
==
0
&&
m
==
0
)
break
;
int
de[N]
=
{
0
}
,d[N];
int
t;
for
(t
=
1
;t
<=
m;t
++
)
{
scanf(
"
%s
"
,s);
G[s[
0
]
-
'
A
'
].push_back(s[
2
]
-
'
A
'
);
de[s[
2
]
-
'
A
'
]
++
;
//
for(i=0;i<n;i++)
//
cout<<de[i]<<endl;
memcpy(d,de,
sizeof
(de));
int
ans
=
Top_sort(G,n,d);
if
(ans
==
1
)
{
printf(
"
Inconsistency found after %d relations.\n
"
,t);
while
(t
<
m) scanf(
"
%s
"
,s),t
++
;
}
else
if
(ans
==
0
)
{
printf(
"
Sorted sequence determined after %d relations:
"
,t);
for
(i
=
0
;i
<
n;i
++
)
printf(
"
%c
"
,re[i]
+
'
A
'
);
printf(
"
.\n
"
);
while
(t
<
m) scanf(
"
%s
"
,s),t
++
;
}
else
if
(t
==
m
&&
ans
==-
1
)
printf(
"
Sorted sequence cannot be determined.\n
"
);
}
for
(i
=
0
;i
<
n;i
++
)
G[i].clear();
}
return
0
;
}
posted on 2008-10-20 22:18
Torres
阅读(339)
评论(0)
编辑
收藏
引用
所属分类:
Data Structures
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
算法导论读书笔记.
快速排序
归并排序
My_heap
POJ 1094 Topological_Sort(拓扑排序)
拓扑排序—数据结构严蔚敏p173
POJ3253(赫夫曼树)
POJ1686(栈)
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © Torres