简单题。

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #include<algorithm>
  5. using namespace std;
  6. const int maxn = ;
  7. int mat[ maxn ][ maxn ];
  8. bool vis[ maxn ][ maxn ];
  9. bool appear[ ];
  10. struct node{
  11. int x,y;
  12. }num[ ];
  13.  
  14. void init(){
  15. memset( appear,false,sizeof( appear ) );
  16. memset( vis,false,sizeof( vis ) );
  17. vis[][] = true;
  18. }
  19.  
  20. bool judge(){
  21. int cnt;
  22. for( int i=;i<=;i++ ){
  23. cnt = ;
  24. for( int j=;j<=;j++ ){
  25. if( vis[i][j]==true )
  26. cnt++;
  27. else
  28. break;
  29. }
  30. if( cnt== ) return true;//row
  31. cnt = ;
  32. for( int j=;j<=;j++ ){
  33. if( vis[j][i]==true )
  34. cnt++;
  35. else
  36. break;
  37. }
  38. if( cnt== ) return true;//col
  39. }
  40. cnt = ;
  41. for( int i=;i<=;i++ )
  42. if( vis[i][i]==true )
  43. cnt++;
  44. else
  45. break;
  46. if( cnt== ) return true;//dia
  47. if( vis[][]==true&&vis[][]==true&&vis[][]==true&&vis[][]==true )
  48. return true;
  49. return false;
  50. }
  51.  
  52. int main(){
  53. int n;
  54. scanf("%d",&n);
  55. while( n-- ){
  56. init();
  57. for( int i=;i<=;i++ ){
  58. if( i!= ){
  59. for( int j=;j<=;j++ ){
  60. scanf("%d",&mat[i][j]);
  61. num[ mat[i][j] ].x = i;
  62. num[ mat[i][j] ].y = j;
  63. appear[ mat[i][j] ] = true;
  64. }
  65. }
  66. else{
  67. for( int j=;j<=;j++ ){
  68. scanf("%d",&mat[i][j]);
  69. num[ mat[i][j] ].x = i;
  70. num[ mat[i][j] ].y = j;
  71. appear[ mat[i][j] ] = true;
  72. }
  73. for( int j=;j<=;j++ ){
  74. scanf("%d",&mat[i][j]);
  75. num[ mat[i][j] ].x = i;
  76. num[ mat[i][j] ].y = j;
  77. appear[ mat[i][j] ] = true;
  78. }
  79. }
  80. }
  81. int ans = ;
  82. int in_num;
  83. bool flag = false;
  84. //printf("input\n");
  85. for( int i=;i<=;i++ ){
  86. scanf("%d",&in_num);
  87. if( flag==false ) ans++;
  88. if( appear[ in_num ]==true ){
  89. vis[ num[ in_num ].x ][ num[ in_num ].y ] = true;
  90. if( judge()==true ){
  91. flag=true;
  92. }
  93. }
  94. }
  95. printf("BINGO after %d numbers announced\n",ans);
  96. }
  97. return ;
  98. }

POJ2302的更多相关文章

随机推荐

  1. placeholder

    html: <div style="position:relative;">   <input type="password" id=&quo ...

  2. Android系统中的dp和px的转换

    android系统中DP和SP的转化:1.首先分析TypedValue.java 可以调用以下代码获得dp的值 TypedValue.applyDimension(TypedValue.COMPLEX ...

  3. SQL Server调优系列进阶篇 - 如何索引调优

    前言 上一篇我们分析了数据库中的统计信息的作用,我们已经了解了数据库如何通过统计信息来掌控数据库中各个表的内容分布.不清楚的童鞋可以点击参考. 作为调优系列的文章,数据库的索引肯定是不能少的了,所以本 ...

  4. Open Flash Chart在php中的使用教程

    http://www.cnblogs.com/huangcong/archive/2013/01/27/2878650.html 为了画一个漂亮的表格,我从网上找到了OpenFlashChart(of ...

  5. TCP/IP协议三次握手与四次握手流程解析(转载及总结)

    原文地址:http://www.2cto.com/net/201310/251896.html,转载请注明出处: TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式  TCP/IP协议的详 ...

  6. String练习

    /*1,模拟一个trim方法,去除字符串两端的空格.    思路:    1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止.        结尾处判断空格也是如此.    2, ...

  7. org.apache.catalina.connector.ClientAbortException

    记个tomcat常见流输出中断异常 org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Conn ...

  8. Java实战之02Hibernate-03Session中的常用方法

    九.Session中的常用方法 1.save方法 都是临时态————>持久态 2.persist方法 作用: 持久化临时态对象. 与save方法的区别: 开始了事务:persist和save没有 ...

  9. 14_CXF发布REST服务

    [rest服务] REST服务是一种软件架构模式,只是一种风格.REST服务采用HTTP做传输协议. REST对于HTTP的利用分为以下两种: 一.资源定位 REST要求对方资源定位更加准确,如下: ...

  10. 13_CXF和Spring整合发布服务

    [服务端] 第一步:建立一个Web项目 第二步:填充CXF jar包 第三步:创建接口及服务类 [工程截图(对比之前的WebService_CXF_Server00)] [applicationCon ...