zoukankan      html  css  js  c++  java
  • CodeForces

    题目地址:http://codeforces.com/contest/699/problem/B

    题目大意:

      一个矩阵,内容由‘.’和‘*’组成(‘.’ 空,‘*’ 代表墙),墙分布在不同位置,现找出一个位置放置 炸弹,炸弹能炸当前位置的一整行和一整列,如果炸弹的位置可以将所有的墙都炸掉,则输出 “YES” 并输出该位置,如果不存在这样一个位置,这输出“NO”.[炸弹可以放在空地或者墙上]

    解题思路:

      1. 对每行每列的墙进行统计,如果该位置为墙,则该行的墙数++同时该列的墙++,统计出所有墙的个数cut.

      2.遍历,扫描位置,如果该位置为墙 则总墙数-1, 所在行的墙数+所在列的墙数=cut 则说明该位置可以放置炸弹且可以炸掉所有的墙,如果不存在这样一个位置则“NO”

    Ac code:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int xx[1005][1005];
     4 int r[1005],c[1005];
     5 int main()
     6 {
     7     int x,y,i,j;
     8     while(~scanf("%d%d",&x,&y))
     9     {
    10         getchar();
    11         memset(r,0,sizeof(r));
    12         memset(c,0,sizeof(c));
    13         int cut=0;
    14         for(i=1; i<=x; i++)
    15         {
    16             for(j=1; j<=y; j++)
    17             {
    18                 xx[i][j]=getchar();
    19                 if(xx[i][j]=='*')
    20                 {
    21                     cut++;
    22                     r[i]++;
    23                     c[j]++;
    24                 }
    25             }
    26             getchar();
    27         }
    28         int flag=0,x1,y1;
    29         for(i=1; i<=x; i++)
    30             for(j=1; j<=y; j++)
    31             {
    32                 int sum=r[i]+c[j];
    33                 if(xx[i][j]=='*')sum--;
    34                 if(sum==cut)
    35                 {
    36                     flag=1;
    37                     x1=i;
    38                     y1=j;
    39                     break;
    40                 }
    41             }
    42         if(flag)
    43             cout<<"YES"<<endl<<x1<<' '<<y1<<endl;
    44         else cout<<"NO"<<endl;
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    git文件泄露
    shodan 的初始化及简单命令
    结构体用sort排序
    循环节计算
    免责申明!!
    偶然发现国外一个linux命令语法练习靶场bandit
    HackBar快捷键
    b站1024程序员节-技术对抗赛
    记一次PC版微信崩溃后历史聊天记录丢失的处理(已解决)
    wireshark从入门到精通3
  • 原文地址:https://www.cnblogs.com/A--Q/p/5860541.html
Copyright © 2011-2022 走看看