题意:

一个屏幕要同时打开9个窗口,每个窗口是2*2的矩阵,整个屏幕大小是9*9,每个窗口位置固定。

但是是否被激活(即完整显示出来)不确定。

给定屏幕状态,问是否可以实现显示。

分析:拓扑排序,把完全出现的数字拿出来,位置置空,然后再找下一个完全出现的数,直到找完为止,若中途找不到,则不合法。
代码:
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int map[],pos[][],vis[];
void init()
{
int i=,j=;
while(i<=)
{
pos[i][]=j;pos[i][]=j+;pos[i][]=j+;pos[i][]=j+;
if(i%==)j+=;
else j+=;
i++;
}
}
bool ok(int x)
{
for(int i=;i<=;i++)
if(map[pos[x][i]]!=x&&map[pos[x][i]]!=)
return false;
return true;
}
void work()
{
int tot=;
while()
{
int k=;
for(int i=;i<=;i++)
if(!vis[i]&&ok(i))
{
tot++;
vis[i]=;
k=i;
break;
}
if(!k)break;
for(int i=;i<=;i++)
map[pos[k][i]]=;
}
if(tot<)printf("THESE WINDOWS ARE BROKEN\n");
else printf("THESE WINDOWS ARE CLEAN\n");}int main(){
init();
while()
{
memset(vis,,sizeof(vis));
string s;cin>>s;
if(s[]=='O')break;
for(int i=;i<=;i++)
scanf("%d",&map[i]);
work();
cin>>s;
}
return ;
}

Window Pains(poj 2585)的更多相关文章

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

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

  2. window对象(全局对象)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)

    Charm Bracelet    POJ 3624 就是一道典型的01背包问题: #include<iostream> #include<stdio.h> #include& ...

  4. Scout YYF I(POJ 3744)

    Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5565   Accepted: 1553 Descr ...

  5. 广大暑假训练1(poj 2488) A Knight's Journey 解题报告

    题目链接:http://vjudge.net/contest/view.action?cid=51369#problem/A   (A - Children of the Candy Corn) ht ...

  6. Games:取石子游戏(POJ 1067)

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 37662   Accepted: 12594 Descripti ...

  7. BFS 或 同余模定理(poj 1426)

    题目:Find The Multiple 题意:求给出的数的倍数,该倍数是只由 1与 0构成的10进制数. 思路:nonzero multiple  非零倍数  啊. 英语弱到爆炸,理解不了题意... ...

  8. 并查集+关系的传递(poj 1182)

    题目:食物链 题意:给定一些关系.判断关系的正确性,后给出的关系服从之前的关系: 思路:难点不在并查集,在于关系的判断,尤其是子节点与根节点的关系的判断: 这个关系看似没给出,但是给出子节点与父节点的 ...

  9. 昂贵的聘礼(poj 1062)

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

随机推荐

  1. .Net Framework Client Profile 和 .Net Framework的区别[转]

    原文链接 VS2010默认是以.Net Framework Client Profile为生成环境的,如果需要更多的功能,应该调用.Net Framework.

  2. iOS生成PDF的关键代码-备忘

    //此方法只是把当前页面的内容生成PDF并保存在沙盒中. //还需要做:把当前面没有显示的内容以分页的形式生成PDF,并把PDF读取并显示出来 //关于显示可以参考:念茜的博客 iOS开发笔记——PD ...

  3. java数据结构和算法05(二叉树)

    对于树这个数据结构,第一次看到这个树肯定是一脸蒙逼,玛德,树?种树的那个树么?哈哈哈,当然不是,前面我们说过数组添加.删除数据很慢,查询数据很快:而链表添加.删除数据很快,但是查找数据很慢,我们就想啊 ...

  4. vue-router之 beforeRouteEnter

    beforeRouteEnter在每次路由切换都执行 ,而项目优化后,切换路由mounted只在最开始执行一次 beforeRouteEnter的具体用法可参考官方文档 https://cn.vuej ...

  5. 使用过Fetch之后,你还想使用AJAX吗

    之前做数据交互的时候,请求数据一直使用ajax,看到网上有使用Fetch,所以也想拿来尝尝鲜 本次介绍只涉及fetch相关,传统的ajax基本上不涉及 当然你也要考虑兼容.浏览器支持情况. 一会这个只 ...

  6. 解决重置PostgreSQL 9.6密码的问题

    一.PostgreSql9.6重置密码的方法: 1.打开windows服务管理器,找到“postgresql-x64-9.6”服务,停止服务. 2.找到PostgreSQL9.6的安装目录(以我的E盘 ...

  7. DEALLOCATE - 删除一个准备好的查询

    SYNOPSIS DEALLOCATE [ PREPARE ] plan_name DESCRIPTION 描述 DEALLOCATE 用于删除前面准备好的查询. 如果你没有明确 DEALLOCATE ...

  8. docker 入门学习

    一 : docker 安装(linux-centos7) 安装docker要求 1.docker只支持在64位cup架构计算机上运行,目前不支持32位cup. 2.建议系统的linux内核版本在3.1 ...

  9. JavaScipt30(第二十二个案例)(主要知识点:getBoundingClientRect)

    这是第二十二个案例,这个例子实现的是鼠标移入a标签时,将其高亮. 附上项目链接: https://github.com/wesbos/JavaScript30 以下为注释后的源码: <scrip ...

  10. incremental linking(增量链接)的作用

    转:incremental linking(增量链接)的作用 今天编译一个C++程序时,报了一个奇怪的错误(之前是好好的): 1>LINK : fatal error LNK1123: fail ...