洛谷 P1789 【Mc生存】插火把

題目來源: P1789 【Mc生存】插火把 - 洛谷

時(shí)空限制??1000ms / 128MB

題目背景

初一黨應(yīng)該都知道......

題目描述

話說有一天linyorson在Mc開了一個(gè)超平坦世界,他把這個(gè)世界看成一個(gè)n*n的方陣,現(xiàn)在他有m個(gè)火把和k個(gè)螢石,分別放在x1,y1...xm,ym和o1,p1...ok,pk的位置,問在這個(gè)方陣中有幾個(gè)點(diǎn)會(huì)生成怪物?(沒有光或沒放東西的地方會(huì)生成怪物)

P.S.火把的照亮范圍是:


螢石:


輸入輸出格式

輸入格式:

輸入共m+k+1行。

第一行為n,m,k。

第2到第m+1行分別是火把的位置xi yi。

第m+2到第m+k+1行分別是螢石的位置oi pi。

注:可能沒有螢石,但一定有火把。

所有數(shù)據(jù)保證在int范圍內(nèi)。

輸出格式:

有幾個(gè)點(diǎn)會(huì)生出怪物。

輸入樣例:

5 1 0

3 3

輸出樣例:

12

只怪自己太蒟蒻,只能if來判斷

了解一下38個(gè)if語句的神奇。。。。(自己太蒟了

這個(gè)題的思路嘛就是通過if來判斷可不可以照亮。(捂臉)

所以,,我就打了38個(gè)if,不長不長193行罷了

上代碼。。

#include<iostream>

#include<cstring>

#include<cstdio>

#include<cmath>

#include<map>

using namespace std;

char a[3000][3000];

int xi,yi,oi,pi;

int main() {

int n,m,k,num=0;

cin>>n>>m>>k;

for(int i=1; i<=n; i++) {

for(int j=1; j<=n; j++) {

a[i][j]='0';

}

}

for(int i=1; i<=m; i++) {

cin>>xi>>yi;

a[xi][yi]='1';//huabaya

}

for(int i=1; i<=k;i++) {

cin>>oi>>pi;

a[oi][pi]='2';//yingshiya

}

for(int i=1; i<=n; i++) {

for(int j=1; j<=n; j++) {

if(a[i][j]=='1') {

if(a[i+2][j]=='0') {

a[i+2][j]='3';

num++;

}

if(a[i+1][j-1]=='0') {

a[i+1][j-1]='3';

num++;

}

if(a[i+1][j]=='0') {

a[i+1][j]='3';

num++;

}

if(a[i+1][j+1]=='0') {

a[i+1][j+1]='3';

num++;

}

if(a[i][j-2]=='0') {

a[i][j-2]='3';

num++;

}

if(a[i][j-1]=='0') {

a[i][j-1]='3';

num++;

}

/*if(a[i][j]=='0') {

a[i][j]='3';

num++;

}*/

if(a[i][j+2]=='0') {

a[i][j+2]='3';

num++;

}

if(a[i][j+1]=='0') {

a[i][j+1]='3';

num++;

}

if(a[i-1][j-1]=='0') {

a[i-1][j-1]='3';

num++;

}

if(a[i-1][j]=='0') {

a[i-1][j]='3';

num++;

}

if(a[i-1][j+1]=='0') {

a[i-1][j+1]='3';

num++;

}

if(a[i-2][j]=='0') {

a[i-2][j]='3';

num++;

}

}

if(a[i][j]=='2') {

if(a[i+2][j]=='0') {

a[i+2][j]='3';

num++;

}

if(a[i+1][j-1]=='0') {

a[i+1][j-1]='3';

num++;

}

if(a[i+1][j]=='0') {

a[i+1][j]='3';

num++;

}

if(a[i+1][j+1]=='0') {

a[i+1][j+1]='3';

num++;

}

if(a[i][j-2]=='0') {

a[i][j-2]='3';

num++;

}

if(a[i][j-1]=='0') {

a[i][j-1]='3';

num++;

}

/*if(a[i][j]=='0') {

a[i][j]='3';

num++;

}*/

if(a[i][j+2]=='0') {

a[i][j+2]='3';

num++;

}

if(a[i][j+1]=='0') {

a[i][j+1]='3';

num++;

}

if(a[i-1][j-1]=='0') {

a[i-1][j-1]='3';

num++;

}

if(a[i-1][j]=='0') {

a[i-1][j]='3';

num++;

}

if(a[i-1][j+1]=='0') {

a[i-1][j+1]='3';

num++;

}

if(a[i-2][j]=='0') {

a[i-2][j]='3';

num++;

}

if(a[i-2][j-2]=='0') {

a[i-2][j-2]='3';

num++;

}

if(a[i-2][j-1]=='0') {

a[i-2][j-1]='3';

num++;

}

if(a[i-2][j+1]=='0') {

a[i-2][j+1]='3';

num++;

}

if(a[i-2][j+2]=='0') {

a[i-2][j+2]='3';

num++;

}

if(a[i-1][j+2]=='0') {

a[i-1][j+2]='3';

num++;

}

if(a[i+1][j+2]=='0') {

a[i+1][j+2]='3';

num++;

}

if(a[i+2][j+2]=='0') {

a[i+2][j+2]='3';

num++;

}

if(a[i+2][j+1]=='0') {

a[i+2][j+1]='3';

num++;

}

if(a[i+2][j+1]=='0')

{

a[i+2][j+1]=='3';

num++;

}

if(a[i+2][j-1]=='0') {

a[i+2][j-1]='3';

num++;

}

if(a[i+2][j-2]=='0') {

a[i+2][j-2]='3';

num++;

}

if(a[i+1][j-2]=='0') {

a[i+1][j-2]='3';

num++;

}

if(a[i-1][j-2]=='0') {

a[i-1][j-2]='3';

num++;

}

}

}

}

cout<<((n*n)-num)-m-k<<endl;

return 0;

}

還有一點(diǎn),,最后一定要記得減去火把個(gè)數(shù)和螢石的個(gè)數(shù)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容