hdu 4324 Triangle LOVE(拓扑排序,基础)
/***************************参考自****************************/
http://www.cnblogs.com/newpanderking/archive/2012/10/16/2726757.html
上有详细注解,我是看了之后写的,我的代码有一咪咪的改动
//这是一道典型的拓扑排序的题,刚开始时没有理解,
//上网查了好多关于拓扑排序的知识才明白,
//就是针对一个顶点活动网(Activity On Vertex network),简称AOV网,
//从中去除入度为0的顶点,同时更新从改点出发引起的入度,
//让这些点的入度减1,直到最后如果AOV网为空时,
//说明那么去除的这些点就组成了一个拓扑排序,
//如果AOV网不为空,这种情况若在程序中出现,
//则称为死锁或死循环(即形成环),是应该必须避免的,
//说明这些活动是永远执行不到的(在此题中是Yes)。
//(活动的前驱又是在活动之后执行)
/***********************************************************/
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char love[][];
int in_degree[];
int flag;
int tuopu(int n)
{
int i,j,jj;
for(i=;i<n;i++)
{
for(j=;j<n;j++)
{
if(in_degree[j]==)
{
in_degree[j]=-;
break;
}
}
if(j==n)
{
return ;
}
else
{
for(jj=;jj<n;jj++)
{
if(love[j][jj]=='')
in_degree[jj]--;
}
}
}
return ;
}
int main()
{
int t,i,j,n,id;
scanf("%d",&t);
for(id=;id<=t;id++)
{
memset(in_degree,,sizeof(in_degree));
memset(love,'',sizeof(love));
scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%s",love[i]);
for(j=;j<n;j++)
if(love[i][j]=='')
in_degree[j]++; }
flag=tuopu(n);
printf("Case #%d: ",id);
if(flag==)printf("Yes\n");
else printf("No\n");
}
return ;
}
//其实我原本是为了搜强连通分量的,然后搜到了这道题;也就是说,这题也可以用 强连通 来做
hdu 4324 Triangle LOVE(拓扑排序,基础)的更多相关文章
- HDU 4324 Triangle LOVE 拓扑排序
Problem Description Recently, scientists find that there is love between any of two people. For exam ...
- 题解报告:hdu 2647 Reward(拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 Problem Description Dandelion's uncle is a boss ...
- HDU 4324 Triangle LOVE (拓扑排序)
Triangle LOVE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- HDU - 4324 Triangle LOVE(拓扑排序)
https://vjudge.net/problem/HDU-4324 题意 每组数据一个n表示n个人,接下n*n的矩阵表示这些人之间的关系,输入一定满足若A不喜欢B则B一定喜欢A,且不会出现A和B相 ...
- hdu 4324 Triangle LOVE(拓扑判环)
Triangle LOVE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- hdu 4324 Triangle LOVE
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4324 Triangle LOVE Description Recently, scientists f ...
- hdu 5098 双队列拓扑排序
http://acm.hdu.edu.cn/showproblem.php?pid=5098 软件在安装之后需要重启才能发挥作用,现在给你一堆软件(有的需要重启有的不需要)以及安装这个软件之前需要哪些 ...
- HDU 5811 Colosseo(拓扑排序+单调DP)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5811 [题目大意] 给出 一张单向图,现在将其划分成了两个部分,问划分之后的点是否分别满足按照一定 ...
- HDU 4857 (反向拓扑排序 + 优先队列)
题意:有N个人,M个优先级a,b表示a优先于b.而且每一个人有个编号的优先级.输出顺序. 思路来自:与PKU3687一样 在主要的拓扑排序的基础上又添加了一个要求:编号最小的节点要尽量排在前面:在满足 ...
随机推荐
- Codevs 2837 考前复习
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description Aiden马上要考试了,可他还没怎么复习,于是他 ...
- 编译内核模块出现error: negative width in bit-field 错误
今天在写一个简单的内核测试模块的时候出现了一个挺奇怪的问题,网上查了一下也没人解决,自己试了好久终于解决了,所以分享出来供大家参考,先贴出源码: /************************** ...
- 【风马一族_Java】如何获取ACSLL表的值
消耗两小时,只为一代码. 终于得到了此代码: public class sows { public static void main(String[] args) { byte[] bytes = n ...
- Allegro设置十字大光标
使用大十字光标,在摆放元器件时,容易对齐.在allegro中,可以通过设置实现大十字光标,其具体方法如下: 1.选择Setup->User Perferences,即可出现如下图所示界面: 2. ...
- silverlight 跳转指定的aspx页面
1.在xaml.cs中直接访问.并传递参数 System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(HtmlPage.Document.Docu ...
- 重拾C,一天一点点_4_随想
刚才顺便又把二分默写了一遍,还好,这次比较顺利.算法这一块,一直是自己一块痛处,有时感觉自己的脑瓜子怎么就这么笨,后一想觉得肯定是锈逗了,确实啊,这么长时间不思考的脑子能机灵到哪呢?早就意识到这个问题 ...
- 关于SQLite的创建以及使用相关说明
关于SQLite的创建以及使用相关说明 没有给出具体的程序,但看完这后可能对你有所帮助. 数据库操作基本知识: execSQL(String sql): 执行一个数据库语句 insert(table, ...
- Python开发【第一篇】Python基础之自定义模块和内置模块
为什么要有模块,将代码归类.模块,用一砣代码实现了某个功能的代码集合. Python中叫模块,其他语言叫类库. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代 ...
- Mysql 数据分组取某字段值所有最大的记录行
需求: 表中同一个uid(用户)拥有多条游戏等级记录,现需要取所有用户最高等级(level)的那一条数据,且时间(time)越早排越前.这是典型的排名表 +------+-------+------- ...
- Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE)
安装mysql后,使用命令登录mysql居然报错了,Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using ...