每个窗口有四个小区域组成,那么不断往前递推,到达打开当前窗口时必然是那些在上面出现的窗口都已经被打开过了,那么我们可以认为是在第i个窗口的位置上出现了

j , 那么in[i]++ , 只有 i 入度为0时,才说明第i 个窗口上的所有数字对应的窗口已经出现了不用再考虑了,然后建好了AOV网络模型,我们直接判断是否有环就可以了

 #include <cstdio>
#include <cstring>
#include <stack>
#include <iostream>
using namespace std;
#define N 1005 int first[] , in[] , num[][] , k , vis[][];
char s1[N] , s2[N]; struct Node
{
int y , next;
}node[N<<]; void add_edge(int x,int y)
{
in[y]++;
node[k].y = y , node[k].next = first[x];
first[x] = k++;
} void init()
{
memset(vis,,sizeof(vis));
for(int i= ; i<= ;i++) vis[i][i] = ;
k = ;
for(int i= ; i<= ; i++){
int t = i-;
int u = t% , v = t/;
if(!vis[num[v+][u+]][i]){
add_edge(num[v+][u+] , i);
vis[num[v+][u+]][i] = ;
}
if(!vis[num[v+][u+]][i]){
add_edge(num[v+][u+] , i);
vis[num[v+][u+]][i] = ;
}
if(!vis[num[v+][u+]][i]){
add_edge(num[v+][u+] , i);
vis[num[v+][u+]][i] = ;
}
if(!vis[num[v+][u+]][i]){
add_edge(num[v+][u+] , i);
vis[num[v+][u+]][i] = ;
}
}
} bool dag(int n)
{
stack<int> s;
for(int i = ; i<=n ; i++){
if(!in[i])
s.push(i);
}
for(int i = ; i<n ; i++){
if(s.empty()){
return false;
}
int u = s.top();
s.pop();
for(int i=first[u] ; i!=- ; i=node[i].next){
int v = node[i].y;
in[v]--;
if(!in[v]) s.push(v);
}
}
return true;
} int main()
{
// freopen("a.in" , "rb" , stdin); while(~scanf("%s",s1)){
if(strlen(s1) > ) break; memset(first , - , sizeof(first));
memset(in , , sizeof(in)); for(int i= ; i<= ; i++)
for(int j= ; j<= ; j++){
scanf("%d",&num[i][j]);
} init(); if(dag()) puts("THESE WINDOWS ARE CLEAN");
else puts("THESE WINDOWS ARE BROKEN"); scanf("%s",s2);
}
return ;
}

ZOJ2193 AOV建模的更多相关文章

  1. 从零开始编写自己的C#框架(28)——建模、架构与框架

    文章写到这里,我一直在犹豫是继续写针对中小型框架的设计还是写些框架设计上的进阶方面的内容?对于中小型系统来说,只要将前面的内容进行一下细化,写上二三十章具体开发上的细节,来说明这个通用框架怎么开发的就 ...

  2. 算法与数据结构(八) AOV网的关键路径

    上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...

  3. 算法与数据结构(七) AOV网的拓扑排序

    今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...

  4. DDD 领域驱动设计-商品建模之路

    最近在做电商业务中,有关商品业务改版的一些东西,后端的架构设计采用现在很流行的微服务,有关微服务的简单概念: 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独 ...

  5. PowerDesigner(数据建模)使用大全

    什么是PowerDesigner 引入百度百科的说法是: power designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具.使用它可以分别从概念数据模型(Conceptu ...

  6. 有向无环图的应用—AOV网 和 拓扑排序

    有向无环图:无环的有向图,简称 DAG (Directed Acycline Graph) 图. 一个有向图的生成树是一个有向树,一个非连通有向图的若干强连通分量生成若干有向树,这些有向数形成生成森林 ...

  7. 数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

  8. 数百个 HTML5 例子学习 HT 图形组件 – 3D 建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

  9. entityframework学习笔记--008-实体数据建模基础之继承关系映射TPH

    Table per Hierarchy Inheritance 建模 1.让我们假设你有如图8-1中的表,Employee表包含hourly employees 和salaried employees ...

随机推荐

  1. 转-UIButton定义和设置圆角

    //login button // .h 中定义 UIButton *_loginBtn; @property (strong,nonatomic)UIButton *loginBtn; // .m ...

  2. 179 Largest Number 把数组排成最大的数

    给定一个非负整数的列表,重新排列它们的顺序把他们组成一个最大的整数.例如,给定 [3, 30, 34, 5, 9],最大的组成数是 9534330.注意: 结果可能非常大,所以您需要返回一个字符串而不 ...

  3. D. Mahmoud and a Dictionary 种类并查集

    http://codeforces.com/contest/766/problem/D 所谓种类并查集,题型一般如下:给定一些基本信息给你,然后又给出一些信息,要求你判断是真是假.例如给出a和b支持不 ...

  4. [转]Azure 表存储和 Windows Azure SQL Database - 比较与对照

    本文转自:https://msdn.microsoft.com/library/azure/jj553018 更新时间: 2014年10月 作者:Valery Mizonov 和 Seth Manhe ...

  5. C# 控制台语音计算器

    记得上高中时,给人当会计,帮忙结算月度工资:用的就是带语音功能的计算器! 当时用起来倍儿爽,于是速度加倍,效率加速:结果让老板赔了不少钱! 就是因为这个,才对语音计算器有了深刻印象!可能是这货坑了我! ...

  6. idea 部署struts所遇到的问题\

    1.org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter 加载失败 解决方法:下载struts2 的源码包,然后将D:\ ...

  7. ECharts 3.0 初学感想及学习中遇到的瓶颈

    因为刚工作的原因,压力特别大,加上时间也不是很充足,所以最近也没怎么整理学习的东西,今天趁着手头工作完成总结一下吧, 说实话,其实ECharts 就是图表绚丽,展示数据渲染效果更加强烈,从2.0到3. ...

  8. 迅为I.MX6DL开发板飞思卡尔Freescale Cortex A9 迅为-iMX6双核核心板

    核心板参数 尺寸: 51mm*61mm CPU: Freescale Cortex-A9 双核精简版 i.MX6DL,主频 1.2 GHz 内存: 1GB DDR3 存储: 8GB EMMC 存储 E ...

  9. 说说windows10自带浏览器Edge的好与不好

    用了10几个月了,正式版也升级了,今天来说说微软自带浏览器microsoft Edge的好与不好       先说好的吧     一,浏览器速度非常快,无论是打开还是关闭,或者是语音助手小娜需要调动浏 ...

  10. leetcode_655. Print Binary Tree

    https://leetcode.com/problems/print-binary-tree/ 打印整棵二叉树 class Solution { public: int getTreeHeight( ...