当前位置: 首页 > news >正文

建设校园网站的必要性asp做的网站怎么运行

建设校园网站的必要性,asp做的网站怎么运行,中文网站开发软件,推广策略包括哪些方面目录 题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 输入输出样例 #2输入 #2输出 #2 说明/提示题目简化题目思路AC 代码 题目描述 Little Petya loves training spiders. Petya has a board $ nm $ in size. Each cell of the board initially has a spider sitting…

目录

    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例 #1
      • 输入 #1
      • 输出 #1
    • 输入输出样例 #2
      • 输入 #2
      • 输出 #2
    • 说明/提示
    • 题目简化
    • 题目思路
    • AC 代码

题目描述

Little Petya loves training spiders. Petya has a board $ n×m $ in size. Each cell of the board initially has a spider sitting on it. After one second Petya chooses a certain action for each spider, and all of them humbly perform its commands. There are 5 possible commands: to stay idle or to move from current cell to some of the four side-neighboring cells (that is, one command for each of the four possible directions). Petya gives the commands so that no spider leaves the field. It is allowed for spiders to pass through each other when they crawl towards each other in opposite directions. All spiders crawl simultaneously and several spiders may end up in one cell. Petya wants to know the maximum possible number of spider-free cells after one second.

输入格式

The first line contains two space-separated integers $ n $ and $ m $ ( $ 1<=n,m<=40,n·m<=40 $ ) — the board sizes.

输出格式

In the first line print the maximum number of cells without spiders.

输入输出样例 #1

输入 #1

1 1

输出 #1

0

输入输出样例 #2

输入 #2

2 3

输出 #2

4

说明/提示

In the first sample the only possible answer is:

s

In the second sample one of the possible solutions is:

<br></br>rdl<br></br>rul<br></br>s denotes command “stay idle”, l, r, d, u denote commands “crawl left”, “crawl right”, “crawl down”, “crawl up”, correspondingly.

题目简化

求在一个地图上放置障碍物的最小数量,使得所有空白格子都能被覆盖到。

题目思路

搜索。

首先遍历棋盘找到第一个没有蜘蛛的格子,如果找不到这样的格子,则更新最优解为当前留空格子数量 x x x

对于没有蜘蛛的格子,尝试在其周围放置蜘蛛,调用搜索函数,更新留空格子数量 x x x,直到所有格子都被蜘蛛占满或者当前留空格子数量 ≥ \ge 最优解(也就是说一定是最优解法)时终止。

在尝试放置蜘蛛后,恢复棋盘。

AC 代码

#include<bits/stdc++.h>
using namespace std;
int n,m,best,dx[5] = {0,1,0,-1,0},dy[5] = {-1,0,1,0,0},a[45][45];
///判断坐标是否在棋盘范围内
bool ok(int x,int y){return x >= 0 && x < n && y >= 0 && y < m;
}
void dfs(int x){vector<pair<int,int> > tmp;int xx = -1,yy = -1;//寻找没有蜘蛛的格子for(int i = 0;i < n;i++){for(int j = 0;j < m;j++){if(!a[i][j]){xx = i,yy = j;break;}}if(xx != -1) break;}//没有找到if(xx == -1){best = x;return;}if(x + 1 >= best) return;for(int i = 0;i < 5;i++){//尝试在空格子周围放置蜘蛛int x1 = xx + dx[i];int y1 = yy + dy[i];if(ok(x1,y1)){tmp.clear();for(int j = 0;j < 5;j++){//遍历当前位置(x1, y1)周围的五个点int x2 = x1 + dx[j];int y2 = y1 + dy[j];if(ok(x2,y2) && !a[x2][y2]){ //判断该点是否在棋盘范围内且没有蜘蛛tmp.push_back(make_pair(x2,y2)); //保存当前可以放置蜘蛛的位置a[x2][y2] = 1; //将蜘蛛标记为已占据}}dfs(x + 1); //搜索下一个没有蜘蛛的位置for(int j = 0;j < tmp.size();j++) a[tmp[j].first][tmp[j].second] = 0; //恢复之前放置蜘蛛后的状态}}
}
int main()
{cin >> n >> m;best = n * m;dfs(0);cout << n * m - best;return 0;
}

创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,如果喜欢我的文章,给个关注吧!

冰焰狼 | 文

如果本篇博客有任何错误,请批评指教,不胜感激 !

http://www.dtcms.com/a/556188.html

相关文章:

  • 做网站能用ai做吗浙江创业建设公司网站
  • 企业网站建设的调研pc网站自动跳转wap
  • 商品展示网站源码区域销售网站什么做
  • 菜鸟如何建网站关键词seo排名公司
  • 莆田做网站建设织梦网站怎样做百度主动推送
  • 天门做网站南昌租房网
  • 门户网站程序lnmp.org wordpress
  • 做网站的数据库的选择网站的主域名
  • 常州网站建设培训国家企业信用信息公示系统(广东)
  • 网站设计的概述软件开发的三种基本方法
  • 秦皇岛网站建设兼职网站设计的汕头公司
  • 网站用橙色怀化火车站网站
  • 杭州网站搜索排名电商运营主要是做什么
  • 网站ip pv哪里建设品牌网站
  • 台州优化网站做一个学校网站怎么做
  • udacity 网站开发深圳做网站jm3q
  • 网站的域名和密码是什么意思长春seo网站建设费用
  • 招生网站转换率低网站开发 浏览器兼容性
  • 国外大型网站毕业设计网站开发
  • node.js 做网站工信部网站备案管理系统
  • 门户网站开发公司平台seo和sem的关系为负关系
  • 爱狼戈网站建设动易与php环境架设网站
  • 丛台企业做网站推广wordpress 邮件订阅
  • 上海阿里巴巴做网站成全视频观看免费高清中国电视剧
  • 专门做继电器的网站中文域名是什么
  • 自己做的网站放在服务器哪里wordpress md5工具
  • 唐山网站建设策划自己建一个电商网站吗
  • 房屋租赁网站建设如何给客户定位山东住房和建设庭网站
  • 网站建设shundeit传奇背景图网站怎么做
  • 做网站系统wordpress主题 二次元