拓扑排序。

深刻体会:ACM比赛的精髓之处不在于学了某个算法或数据结构,而在于知道这个知识点但不知道这个问题可以用这个知识去解决!一看题目,根本想不到是拓扑排序。T_T......

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<vector>
#include<algorithm>
using namespace std;
int mapp[][]; char s[];
int i, j, k, f;
vector<int> abc[];
int jz[][];
int c[];
int ff[][];
void chushihua()
{
jz[][] = ;
jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ;
jz[][] = ;
jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ; jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ; jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ; jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ; jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ;
jz[][] = ;
jz[][] = ; jz[][] = ;
jz[][] = ; jz[][] = ;
jz[][] = ;
}
int main()
{
memset(jz, , sizeof(jz));
chushihua();int ge;
while (~scanf("%s", s))
{
for (i = ; i < ; i++)abc[i].clear();
memset(ff, , sizeof(ff));
if (strcmp("ENDOFINPUT", s) == ) break;
memset(c, , sizeof(c));
for (i = ; i <= ; i++) for (j = ; j <= ; j++) scanf("%d", &mapp[i][j]);
for (i = ; i <= ; i++)
{
for (j = ; j <= ; j++)
{
ge = (i - ) * + j;
for (f = ; f <= ; f++)
{
if (jz[ge][f] == && f != mapp[i][j])
{
if (ff[mapp[i][j]][f] == )
{
ff[mapp[i][j]][f] = ;
abc[mapp[i][j]].push_back(f);
c[f]++;
}
}
}
}
}
scanf("%s", s); int df, summ = ;
while ()
{
df = ;
for (i = ; i <= ; i++)
{
if (c[i] == )
{
c[i]--;df = ;summ++;
for (j = ; j < abc[i].size(); j++) c[abc[i][j]]--;
break;
}
}
if (summ == ){printf("THESE WINDOWS ARE CLEAN\n");break;}
if (df == ){printf("THESE WINDOWS ARE BROKEN\n");break;}
}
}
return ;
}

zoj 2193 poj 2585 Window Pains的更多相关文章

  1. POJ 2585.Window Pains 拓扑排序

    Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1888   Accepted: 944 Descr ...

  2. poj 2585 Window Pains 解题报告

    Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2027   Accepted: 1025 Desc ...

  3. poj 2585 Window Pains 暴力枚举排列

    题意: 在4*4的格子中有9个窗体,窗体会覆盖它之下的窗体,问是否存在一个窗体放置的顺序使得最后的结果与输入同样. 分析: 在数据规模较小且不须要剪枝的情况下能够暴力(思路清晰代码简单),暴力一般分为 ...

  4. POJ 2585 Window Pains 题解

    链接:http://poj.org/problem?id=2585 题意: 某个人有一个屏幕大小为4*4的电脑,他很喜欢打开窗口,他肯定打开9个窗口,每个窗口大小2*2.并且每个窗口肯定在固定的位置上 ...

  5. [POJ 2585] Window Pains 拓朴排序

    题意:你现在有9个2*2的窗口在4*4的屏幕上面,由于这9这小窗口叠放顺序不固定,所以在4*4屏幕上有些窗口只会露出来一部分. 如果电脑坏了的话,那么那个屏幕上的各小窗口叠放会出现错误.你的任务就是判 ...

  6. Window Pains

    http://poj.org/problem?id=2585 Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  7. POJ 2585:Window Pains(拓扑排序)

    Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2524   Accepted: 1284 Desc ...

  8. POJ2585 Window Pains 拓扑排序

    Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1843   Accepted: 919 Descr ...

  9. ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法

    题目连接:problemId=542" target="_blank">ZOJ 1542 POJ 1861 Network 网络 Network Time Limi ...

随机推荐

  1. Cordova环境搭建与hello word

    一.环境下载 1.下载并安装Node.js 安装一路下一步即可 2.下载并安装Git 安装一路下一步即可 3.配置Android开发平台环境 (1)下载JDK (2)下载AndroidSDK (3)下 ...

  2. css透明度(兼容所有浏览器)

    .transparent{ background: rgba(, , , 0.3) !important; /* IE无效,FF有效 */ filter: alpha(opacity=); -moz- ...

  3. Linux实战教学笔记10:正则表达式

    第十节 正则表达式 标签(空格分隔):Linux实战教学笔记 ---更多资料点我查看 第1章 什么是正则表达式 正则表达式就是为了处理大量的文本|字符串而定义的一套规则和方法 通过定义的这些特殊符号的 ...

  4. flexbox应用举例

    我们常说的"flexbox"其实包含"父元素","子元素"2个部分,将"父元素"定义为一个flexbox,则在" ...

  5. Redis的安装和使用之------Redis相关运用

    原文  http://wangzhijian.blog.51cto.com/6427016/1731962 一.简介 REmote DIctionary Server(Redis) 是一个由 Salv ...

  6. Genymotion下载失败解决方法

    Genymotion下载虚拟机版本时会很慢,而且经常下载失败 解决方法如下: 1.先去选择下载你需要的版本,之后会下载(很慢),或者失败. 2.到C:\Users\yourname\AppData\L ...

  7. shell中的特殊符号

    Shell符号及各种解释对照表: Shell符号 使用方法及说明 # 注释符号(Hashmark[Comments]) 1.在shell文件的行首,作为shebang标记,#!/bin/bash; 2 ...

  8. shell获取系统时间

    获取系统时间 date -d"yesterday" +"%F %H:%M:%S" #输出昨天这个时候的时间 date -d"tomorrow" ...

  9. jquery中的serialize

    jquery中的serialize对serializeArray进行了封装,serializeArray源码中定义将disabled的过滤掉,所以提交后值为null 解决方式是:在提交的时候,讲dis ...

  10. Scala Apply

    class ApplyTest{ //一定要写(),不加括号就报错. def apply() = println("Into Spark!") def havaAtry(){ pr ...