绿纹龙的森林游记——UPC

简介: 题目描述暑假来了,绿纹龙很高兴。于是飘飘乎就来到了森林一日游。可是他却看到了很不和谐的一幕,一群猎人在森林里围捕小动物。森林可以看做是一个10*10的方格,如下图所示,1表示猎人,0表示小动物。

题目描述

暑假来了,绿纹龙很高兴。于是飘飘乎就来到了森林一日游。

可是他却看到了很不和谐的一幕,一群猎人在森林里围捕小动物。

森林可以看做是一个10*10的方格,如下图所示,1表示猎人,0表示小动物。


微信图片_20220529171554.png

已知猎人保持不动,而小动物可以往上下左右任意方向逃脱(当然不能撞上猎人)。小动物可以逃出森林。但上图背景色被标红的那部分小动物将永远无法逃脱猎人的魔爪。

输入

一个10*10的 矩阵,描述森林中猎人和小动物分布的情况。保证每个点要么为猎人,要么为小动物。

输出

一个整数,表示不能逃脱猎人魔爪的小动物数量。


样例输入 Copy


0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 0
0 1 0 0 1 1 0 1 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0


样例输出 Copy


15


写dfs进行搜索

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define HEAP(...) priority_queue<__VA_ARGS__ >
#define heap(...) priority_queue<__VA_ARGS__,vector<__VA_ARGS__ >,greater<__VA_ARGS__ > >
template<class T> inline T min(T &x,const T &y){return x>y?y:x;}
template<class T> inline T max(T &x,const T &y){return x<y?y:x;}
ll read(){ll c = getchar(),Nig = 1,x = 0;while(!isdigit(c) && c!='-')c = getchar();
if(c == '-')Nig = -1,c = getchar();
while(isdigit(c))x = ((x<<1) + (x<<3)) + (c^'0'),c = getchar();
return Nig*x;}
#define read read()
const ll inf = 1e15;
const int maxn = 1e6 + 7;
const int mod = 1e9 + 7;
ll num[maxn];
ll searc[100][100];
void dfs(int a,int b){
    if(a>=1&&a<=10&&b>=1&&b<=10&&!searc[a][b]){
        searc[a][b]=1;
        dfs(a+1,b);dfs(a-1,b);
        dfs(a,b+1);dfs(a,b-1);
    }
    return ;
}
int main(){
    for(int i=1;i<=10;i++)
        for(int j=1;j<=10;j++)
            searc[i][j]=read;
    for(int i=1;i<=10;i++){
        dfs(1,i);dfs(i,1);dfs(10,i);dfs(i,10);
    }
    ll ans=0;
    for(int i=1;i<=10;i++)
        for(int j=1;j<=10;j++)
            if(!searc[i][j])
                ans++;
    cout<<ans<<endl;
    return 0;
}


目录
相关文章
|
10月前
|
存储 算法 前端开发
2865. 美丽塔 I
2865. 美丽塔 I
54 0
|
机器学习/深度学习 人工智能 算法
C++/PTA 球队“食物链”
某国的足球联赛中有N支参赛球队,编号从1至N。联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场。
138 0
|
人工智能
upc2021个人训练赛第23场M: 紫罗兰(dsu)
upc2021个人训练赛第23场M: 紫罗兰(dsu)
109 0
|
机器人
UPC—— 最勇敢的机器人(并查集+分组背包)
UPC—— 最勇敢的机器人(并查集+分组背包)
100 0
[UPC] 2021秋组队17
A Quality-Adjusted Life-Year B Gwen’s Gift C Forest for the Trees D H-Index E Driving Lanes F Treasure Spotting G Neighborhood Watch H Small Schedule I Mr. Plow King J Rainbow Road Race
120 0
|
人工智能 安全
UPC-2021个人训练赛第20场-部分题解
RGB Triplets 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 Select Half 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 心灵的抚慰 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示
193 0
|
算法
UPC——神仙贷款—>二分
题目描述 神仙由于刚到凡间故手上缺钱,于是她去银行贷款了。因此,她在贷款之后,在一段时间内将不得不每月偿还固定的分期付款。这个问题要求计算神仙向银行支付的利率。假设利率按月累计。
193 0
|
开发者
UPC-自习课 模拟题
题目描述 自习课就是划水课。 你和同桌在玩井字棋,你先手。突然老师进来了。 给定一个局面,问它是否有可能下的出来。 若有可能,求出是否有赢家,若有,输出赢家。 否则,输出是否平局,或者下一步是谁的回合。
190 0
|
人工智能 BI
UPC窃贼与火柴——贪心
题目描述 一个窃贼进入了火柴仓库,想要偷尽可能多的火柴。仓库里有m个集装箱,第i个集装箱里有ai个火柴盒,每个火柴盒里有bi根火柴。所有火柴盒大小相同。窃贼的帆布背包恰能容纳n个火柴盒。你的任务是找出窃贼能拿走的火柴的最大数量。他没时间重新调整火柴盒中的火柴,这就是他只是挑选不超过n个其包含火柴数之和最大的火柴盒的原因
128 0
|
Java
HDU - 2018杭电ACM集训队单人排位赛 - 1 - Problem E. 逃离机场
HDU - 2018杭电ACM集训队单人排位赛 - 1 - Problem E. 逃离机场
163 0