标题:欢乐的周末 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限


【编程题目 |200分】欢乐的周末【2022 Q2考试题 2023 Q2考试题 B卷】


时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,

编码后请点击”保存并调试“按钮进行代码提交。


题目描述

小华和小为是很要好的朋友,他们约定周末一起吃饭。

通过手机交流,他们在地图上选择了多个聚餐地点(由于自然地形等原因,部分聚餐地点不可达),求小华和小为都能到达的聚餐地点有多少个?


输入描述

第一行输入m和n,m代表地图的长度,n代表地图的宽度。

第二行开始具体输入地图信息,地图信息包含:

0 为通畅的道路

1 为障碍物(且仅1为障碍物)

2 为小华或者小为,地图中必定有且仅有2个 (非障碍物)

3 为被选中的聚餐地点(非障碍物)

输出描述

可以被两方都到达的聚餐地点数量,行末无空格。

 


代码实现


C++解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <bits/stdc++.h>
using namespace std;
int endX, endY;
int forEnd(int x, int y, vector<vector<int>>&ints)
{
int U = x - 1;
int D = x + 1;
int L = y - 1;
int R = y + 1;
#include <bits/stdc++.h> using namespace std; int endX, endY; int forEnd(int x, int y, vector<vector<int>>&ints) { int U = x - 1; int D = x + 1; int L = y - 1; int R = y + 1;
#include <bits/stdc++.h>

using namespace std;

int endX, endY;

int forEnd(int x, int y, vector<vector<int>>&ints)
{
    int U = x - 1;     
    int D = x + 1;     
    int L = y - 1;     
    int R = y + 1;

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

C++解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include<bits/stdc++.h>
using namespace std;
#include<bits/stdc++.h> using namespace std;
#include<bits/stdc++.h>

using namespace std;

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
while 1:
try:
n, m = map(int, input().split())
map_ = [input().split() for i in range(m)]
while 1: try: n, m = map(int, input().split()) map_ = [input().split() for i in range(m)]
while 1:
    try:
        n, m = map(int, input().split())

        map_ = [input().split() for i in range(m)]

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JavaScript


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let input = readline().split(" ").map(Number);
let lenX = input[0];
let lenY = input[1];
let input = readline().split(" ").map(Number); let lenX = input[0]; let lenY = input[1];
let input = readline().split(" ").map(Number);
let lenX = input[0]; 
let lenY = input[1];

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看