社区讨论

2号测试点核桃正确,洛谷RE,求条

P1789【Mc生存】插火把参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mlyv5vcp
此快照首次捕获于
2026/02/23 15:37
2 周前
此快照最后确认于
2026/02/25 14:42
2 周前
查看原帖
这是我在洛谷的结果↓ 这是我在核桃的结果↓(看得到已通过吧) 这是源代码↓
CPP
#include <bits/stdc++.h>
using namespace std;
bool check[105][105];//标记被点亮的区域
int n,m,k,/*含义同描述*/sum;//统计刷怪区的个数
struct position{//,用于输入并处理位置,减少空间使用
    int x,y;
}t,s;//分别用于输入火把和萤石的位置
void light(int x,int y){//标记地点,避免多次写重复代码
    if(!check[x][y]) check[x][y]=1;// C++中非零为真
}
void torch(int x,int y){//处理火把
    for(int i=x-2;i<=x+2;i++) light(i,y);//处理所在行
    for(int i=y-2;i<=y+2;i++) light(x,i);//处理所在列
    light(x-1,y-1);light(x+1,y+1);
    light(x-1,y+1);light(x+1,y-1);//处理剩下4个
}
void stone(int x,int y){//处理萤石
    for(int i=x-2;i<=x+2;i++)
        for(int j=y-2;j<=y+2;j++)
            light(i,j);//双重循环处理所在5*5矩阵
}
int main(){//从主函数开始阅读代码是一个好习惯哦
    cin>>n>>m>>k;
    for(int i=1;i<=m;i++){//火把
        cin>>t.x>>t.y;
        torch(t.x,t.y);
    }
    for(int i=1;i<=k;i++){//萤石
        cin>>s.x>>s.y;
        stone(s.x,s.y);
    }
    for(int i=1;i<=n;i++)//统计
        for(int j=1;j<=n;j++)
            if(!check[i][j])
                sum++;
    cout<<sum;
}
哪位大佬能帮我看一下,为什么一个代码在两个平台的评测结果会不一样?我这个代码可简洁了,比人家说什么七八十行的都要短

回复

3 条回复,欢迎继续交流。

正在加载回复...