POJ2302
简单题。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
const int maxn = ;
int mat[ maxn ][ maxn ];
bool vis[ maxn ][ maxn ];
bool appear[ ];
struct node{
int x,y;
}num[ ]; void init(){
memset( appear,false,sizeof( appear ) );
memset( vis,false,sizeof( vis ) );
vis[][] = true;
} bool judge(){
int cnt;
for( int i=;i<=;i++ ){
cnt = ;
for( int j=;j<=;j++ ){
if( vis[i][j]==true )
cnt++;
else
break;
}
if( cnt== ) return true;//row
cnt = ;
for( int j=;j<=;j++ ){
if( vis[j][i]==true )
cnt++;
else
break;
}
if( cnt== ) return true;//col
}
cnt = ;
for( int i=;i<=;i++ )
if( vis[i][i]==true )
cnt++;
else
break;
if( cnt== ) return true;//dia
if( vis[][]==true&&vis[][]==true&&vis[][]==true&&vis[][]==true )
return true;
return false;
} int main(){
int n;
scanf("%d",&n);
while( n-- ){
init();
for( int i=;i<=;i++ ){
if( i!= ){
for( int j=;j<=;j++ ){
scanf("%d",&mat[i][j]);
num[ mat[i][j] ].x = i;
num[ mat[i][j] ].y = j;
appear[ mat[i][j] ] = true;
}
}
else{
for( int j=;j<=;j++ ){
scanf("%d",&mat[i][j]);
num[ mat[i][j] ].x = i;
num[ mat[i][j] ].y = j;
appear[ mat[i][j] ] = true;
}
for( int j=;j<=;j++ ){
scanf("%d",&mat[i][j]);
num[ mat[i][j] ].x = i;
num[ mat[i][j] ].y = j;
appear[ mat[i][j] ] = true;
}
}
}
int ans = ;
int in_num;
bool flag = false;
//printf("input\n");
for( int i=;i<=;i++ ){
scanf("%d",&in_num);
if( flag==false ) ans++;
if( appear[ in_num ]==true ){
vis[ num[ in_num ].x ][ num[ in_num ].y ] = true;
if( judge()==true ){
flag=true;
}
}
}
printf("BINGO after %d numbers announced\n",ans);
}
return ;
}
POJ2302的更多相关文章
随机推荐
- 【转】monkeyrunner学习总结二:连接、安装、启动
一.获取packageName与startActivity 前置条件:已成功安装配置SL4A并连接PC调试(参见:monkeyrunner学习总结一:环境搭建:http://www.amsoft.cn ...
- JDK Tools - jps: JVM 进程状态工具
jps(Java Virtual Machine Process Status Tool) 是 JDK 提供的一个显示当前所有 Java 进程实例的命令. 命令格式 jps [ options ] [ ...
- 【译文】NginScript – 为什么我们要实现自己的JS引擎?
在上周的nginx.conf 2015用户大会上,我们发布了全新的JavaScript引擎nginscript的预览版.历史上,JavaScript语言已经应用在许多方面,首先是作为客户端脚本,然后又 ...
- Spring之IOC容器初始化过程
Ioc容器的初始化是由refresh()方法来启动的,这个方法标志着Ioc容器的正式启动. 具体来说这个启动过程包括三个基本过程: 1.BeanDifinition的Resource定位 2.Bean ...
- 【SQL】MySQL学习笔记1-----子查询
1.什么叫子查询? 通俗的讲就是查询中有查询,SQL语句中有多个select语句. 2.什么地方可以嵌入子查询? SELECT 列 (不在标准之内) FROM 表 (可以嵌入,作为表存在) WHERE ...
- C++例题练习(1)
环境:Dev-C++( Version:5.6.1) 一.求2个或3个正整数中的最大数,用带有默认参数的函数实现 代码实现: #include <iostream> using names ...
- C# 编码约定
参考自 MSDN https://msdn.microsoft.com/zh-cn/library/ff926074.aspx , 只摘要个人觉得有用部分 命名约定 在不包括 using 指令 ...
- 常用的 Internet Browser adds-on/浏览器插件
主要应用在Firefox, 或 Google Chrome 一.AdBlockPlus 广告屏蔽软件 二.GreaseMonkey 多样化网页 三.Dictionary.com 弹出单词的解释,来自 ...
- django分页工具
from django.core.paginator import Paginator 此对象可以进行分页操作 objects = Entry.objects.all() page = Paginat ...
- python学习笔记——列表生成式与生成器
1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...