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的更多相关文章
随机推荐
- div中的img垂直居中
<html> <head> <style type="text/css"> .imgDiv { overflow: hidden; displa ...
- Unity3D 之连按移动加速
上代码: 效果是连续按W后,加速移动 为物体添加个拖拽效果,方便看运动轨迹. 将下面的脚本绑定到移动的物体上. 不过这里有一点很重要的需要去注意就是该方法不能放在 void FixedUpdate() ...
- JavaScript学习笔记(7)——JavaScript语法之函数
函数就是包裹在花括号中的代码块,前面使用了关键词 function: function functionname() { //这里是要执行的代码 } 当调用该函数时,会执行函数内的代码. 可以在某事件 ...
- WPF 中,动态创建Button,并使Button得样式按照自定义的Resource样式显示
第一步:自定义一个Button的样式 1.新建一个xaml文件,在其中自定义好自己的Resources 这个Resource 的根节点是 <ResourceDictionary xmlns=&q ...
- Poj 2159 / OpenJudge 2159 Ancient Cipher
1.链接地址: http://poj.org/problem?id=2159 http://bailian.openjudge.cn/practice/2159 2.题目: Ancient Ciphe ...
- 责任链模式(Chain of Responsibility Pattern)
责任链模式:可以为某个请求创建一个对象链.每个对象依序检查此请求,并对其处理,或者把它传给链中的下一个对象. 责任链上的对象负责处理请求,客户只需要将请求发送到责任链上即可,无需关心处理的细节和请求的 ...
- SharePoint2013TimerJob计时器发送邮件
http://www.3fwork.com/b500/000307MYM008190/
- 怎样用sourceTree将自己本地的项目上传到github网站上
前言:GitHub 是基于 Git 的一个代码托管网站.开发者可以将代码在 GitHub 上开源,可以浏览其它项目的代码. 准备工作:1.github网站账号.2.sourceTree软件. 一.在g ...
- Sublime Text 中使用Git插件连接GitHub
sublime Text的另一个强大之处在于它提供了非常丰富的插件,可以帮助程序员来适合大多数语言的开发.这些插件通过它自己的Package Controll(包管理)组件来安装,非常方便.一般常用的 ...
- 简单的NHibernate学习笔记
NHibernate是.NET平台下的ORM框架,与ADO.NET一样实现项目中数据库与项目系统的交互. .首先要用NHibernate框架就要有第三方的dll库来作为支持,附上百度云下载地址:(链接 ...