CodeForces - 699B One Bomb 一颗炸弹 基础题 打表
2017-07-11 19:44
387 查看
CF传送门
题意:
1. 一张地图(二维数组建立的图)上存在墙(*)和空地(.)
2. 给你一颗炸弹,要求放在地图上的某一点可以炸毁所有墙,炸弹可以无视距离炸毁上下左右四个方向所有东西
3. 如果可以炸毁所有墙就输出YES并输出炸弹放置点,否则直接输出NO
题解:
1. 我原本是遍历整张图来计算,然后妥妥的超时
2. 打表,把每一行上的墙数量存到一个数组,再把每一列上的墙数量存到另一个数组
3. 遍历地图,把两个数组相加,再判断炸弹所在点的情况即可
4. 如果炸弹放置点是墙,则对应行列相加后要减1,否则不变
以下是我的AC代码:
//十字炸弹,按行列打表
#include <cstdio>
#include <cstring>
#define maxn 1005
using namespace std;
char s[maxn][maxn]; //存储地图
int r[maxn],l[maxn]; //存储行列炸弹数量
int main()
{
memset(r,0,sizeof(r));
memset(l,0,sizeof(l));
int n,m,sum=0;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
{
getchar();
for(int j=1;j<=m;j++)
{
scanf("%c",&s[i][j]);
if(s[i][j]=='*')
{
sum++; //计算总墙数量
r[i]++; //对应行墙数量+1
l[j]++; //对应列墙数量+1
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
int flag=r[i]+l[j];
if(s[i][j]=='*') //如果炸弹放置点是墙就墙数量减1
fl
4000
ag--;
if(flag==sum) //如果刚好炸毁所有墙,就打印结果并结束程序
{
printf("YES\n%d %d\n",i,j);
return 0;
}
}
}
printf("NO\n");
return 0;
}
题意:
1. 一张地图(二维数组建立的图)上存在墙(*)和空地(.)
2. 给你一颗炸弹,要求放在地图上的某一点可以炸毁所有墙,炸弹可以无视距离炸毁上下左右四个方向所有东西
3. 如果可以炸毁所有墙就输出YES并输出炸弹放置点,否则直接输出NO
题解:
1. 我原本是遍历整张图来计算,然后妥妥的超时
2. 打表,把每一行上的墙数量存到一个数组,再把每一列上的墙数量存到另一个数组
3. 遍历地图,把两个数组相加,再判断炸弹所在点的情况即可
4. 如果炸弹放置点是墙,则对应行列相加后要减1,否则不变
以下是我的AC代码:
//十字炸弹,按行列打表
#include <cstdio>
#include <cstring>
#define maxn 1005
using namespace std;
char s[maxn][maxn]; //存储地图
int r[maxn],l[maxn]; //存储行列炸弹数量
int main()
{
memset(r,0,sizeof(r));
memset(l,0,sizeof(l));
int n,m,sum=0;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
{
getchar();
for(int j=1;j<=m;j++)
{
scanf("%c",&s[i][j]);
if(s[i][j]=='*')
{
sum++; //计算总墙数量
r[i]++; //对应行墙数量+1
l[j]++; //对应列墙数量+1
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
int flag=r[i]+l[j];
if(s[i][j]=='*') //如果炸弹放置点是墙就墙数量减1
fl
4000
ag--;
if(flag==sum) //如果刚好炸毁所有墙,就打印结果并结束程序
{
printf("YES\n%d %d\n",i,j);
return 0;
}
}
}
printf("NO\n");
return 0;
}
相关文章推荐
- 2016 北邮暑期训练3-C题(CodeForces 699B One Bomb)白痴题
- codeforces 699B One Bomb
- codeforces 699B One Bomb (思维)
- CodeForces 699B One Bomb(暴力)
- CodeForces 699B One Bomb
- CodeForces-699B One Bomb 暴力搜索
- codeforces 699B One Bomb (思维)
- [欧拉回路 构造 || 网络流] Codeforces 723E #375 (Div. 2) E. One-Way Reform
- CodeForces 723E -One-Way Reform 构造+ 欧拉回路
- CodeForces - 766C(基础dp)
- 【CodeForces】567D - One-Dimensional Battle Ships & 【51Nod】1521 - 一维战舰(STL - set & 二分)
- CodeForces 135C C. Zero-One
- CodeForces 304A Pythagorean Theorem II 【基础】【暴力】
- Codeforces 935C Fifa and Fafa 题解 附平面几何基础:平面向量基本运算
- hdu 3555 Bomb 炸弹(数位DP,入门)
- ComponentOne WebChart for ASP.NET基础(2)
- Superset CodeForces - 97B(分治基础)
- CodeForces 699D 并查集+判断环
- CodeForces 385C Bear and Prime Numbers 素数打表
- 计算机系统基础(bomb实验报告)