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

如今流行的网站建设软件界面设计方案

如今流行的网站建设,软件界面设计方案,建筑工程网页模板,宁波网站推广排名一 糖果 我们看这个蓝桥A组真题 首先我们看这个题目说有M种的糖果,K颗一包,N包糖果 第一行就是输入M,K,N的数量 后面就是输入每个糖果在每包里面的种类 然后问我们最少要用几包糖果才可以把所有种类的糖果都吃一遍 如果不可以吃完…

一  糖果

我们看这个蓝桥A组真题
首先我们看这个题目说有M种的糖果,K颗一包,N包糖果
第一行就是输入M,K,N的数量
后面就是输入每个糖果在每包里面的种类
然后问我们最少要用几包糖果才可以把所有种类的糖果都吃一遍
如果不可以吃完所有种类的糖果,就直接返回-1

当我在竞赛场上一定要冷静,思考这个题目是属于什么类型的
很显然,这个糖果有一个选和不选,那么就可以快速想到这个dfs来解决,如果不行的话就优化代码,可以去看这篇文章里面很详细的讲述优化算法 状态dp-CSDN博客

然后我们先来想一下这个怎么写
首先这里有很多的糖果,每个糖果只有选择和不选择,就像二叉树一样,那么递归也就只有两层,一个用于左子树,一个用于右子树,这两个递归分别代表选择和不选择
然后我们就再进行分析,搞定了递归的话,那么我后面就要搞定条件了
题目给的限制条件是要吃完所有的糖果类型,那么我们可以用一个状态数组来实现这个种类的糖果到底吃没吃,这样就可以知道到底有没有吃完所有的糖果了

我们来实现一下
代码都是作者自己敲出来的,如果有更好的代码,欢迎大家指出

#include<bits/stdc++.h>
#include<cstring>
#include<unordered_map>
using namespace std;
const int N = 110;
int n,m,k;       //包数,种类,几个一包
int candy[N][N];
bool st[N];      //标记对饮糖果的种类
int mincount=1e6;bool judge(){for(int i=1;i<=m;i++){if(!st[i])return false;}return true;
}//x表示当前包
void dfs(int x,int count){//减枝if(count>mincount) return ;if(x>n){if(judge()){mincount=min(mincount,count);}return ;}// 选择当前包bool temp[N];  // 临时保存 st 的状态memcpy(temp, st, sizeof(st));  // 保存当前状态for (int i = 1; i <= k; i++) {st[candy[x][i]] = true;}dfs(x + 1, count + 1);// 恢复 st 的状态memcpy(st, temp, sizeof(temp));//不选择dfs(x+1,count);
}int main(){scanf("%d %d %d",&n,&m,&k);memset(candy,0,sizeof(candy));for(int i=1;i<=n;i++){for(int j=1;j<=k;j++){scanf("%d",&candy[i][j]);}}dfs(1,0);if(mincount==1e6){printf("-1\n");return 0;}printf("%d\n",mincount);return 0;
}

 首先这个输入就没有必要说了,来说说这个dfs,首先这个dfs我一开始是犯了一个很严重的错误的,就是这个糖果的状态判断

//选择//增添对这个糖果的标记for(int i=1;i<=k;i++){st[candy[x][i]]=true;}dfs(x+1,count+1);//取消对这个口味的标记for(int i=1;i<=k;i++){st[candy[x][i]]=false;}//不选择dfs(x+1,count);

这个是我之前的写的代码
我当时是想着如果回溯就恢复原来的状态,但是我们忽略了还有之前已经找过的糖果状态是true,我这里设置全是true,所以会导致结果不对,后来才想到这个是需要上一次的状态的,所以这里就直接用了一个临时的数组来存储临时的状态,当回溯的时候就直接返回这个状态就好了,这个题目主要是难在这个状态我们该怎么去设置,dfs不难
 

二  入门
 

我们来看这种带有迷宫性质的,我们不适用广度优先搜索,使用dfs该怎么解决

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;const int N = 30;
int w, h;        // 宽度和高度
int res;         // 结果
char map[N][N];  // 地图
bool st[N][N];   // 状态int ax[] = {-1, 0, 1, 0};
int ay[] = {0, 1, 0, -1};void dfs(int x, int y) {for (int i = 0; i < 4; i++) {int a = x + ax[i];int b = y + ay[i];// 边界条件if (a >= h || a < 0 || b >= w || b < 0) continue;if (map[a][b] == '#') continue;if (st[a][b]) continue;st[a][b] = true;res++;dfs(a, b);}
}int main() {scanf("%d %d", &w, &h);  // 注意顺序:宽度 w,高度 hfor (int i = 0; i < h; i++) {scanf("%s", map[i]);  // 按行读取地图}for (int i = 0; i < h; i++) {for (int j = 0; j < w; j++) {if (map[i][j] == '@') {st[i][j] = true;  // 标记起点为已访问res = 1;          // 初始化结果,包括起点dfs(i, j);        // 开始 DFSbreak;            // 找到起点后退出循环}}}printf("%d", res);  // 输出结果return 0;
}

首先这个具有方向性质的首先就是考虑用向量数组,这样就可以帮助我们去移动,然后这个也有三个条件
1  不可以越界
2  遇到#要进行不走
3  走过的路不走
所以把握了这个很简单就可以写出来了
 


总结

首先我们现在越来越熟练这个dfs了,然后还熟悉记忆化搜索和剪枝的操作
这些都是十分重要对于搜索类型的题目,所以我们就要好好掌握
这里蕴含了两个条件
首先就是方向的移动
其次就是有没有拿过和有没有走过这些状态,这些状态是要用数组记录下来去使用的我们可以使用循环,也可以使用很多的方法,所以if和for这里面很重要
递归,for,if组成就构成了搜索


文章转载自:

http://o7PaX5z4.ykcby.cn
http://R15UDEZE.ykcby.cn
http://NSLshRhj.ykcby.cn
http://e4WiM79j.ykcby.cn
http://DAqHgHOP.ykcby.cn
http://G7dRN72y.ykcby.cn
http://Nw5x7uMX.ykcby.cn
http://j97b6pnG.ykcby.cn
http://bCJ1n82V.ykcby.cn
http://WtLdcdGk.ykcby.cn
http://i3HXF9aq.ykcby.cn
http://kbXHE00i.ykcby.cn
http://Tem1vRRT.ykcby.cn
http://DdOeQHvc.ykcby.cn
http://arfFE8rc.ykcby.cn
http://1FyRCwCr.ykcby.cn
http://mkrIJfDn.ykcby.cn
http://UhkRwIpU.ykcby.cn
http://ds4sfV4Q.ykcby.cn
http://noI7xCve.ykcby.cn
http://W3npbOAb.ykcby.cn
http://BfIkYXVM.ykcby.cn
http://sCEHKnnY.ykcby.cn
http://iaUR2h3o.ykcby.cn
http://CNXF14Oo.ykcby.cn
http://bXW1wTs6.ykcby.cn
http://1JOpJywi.ykcby.cn
http://be1JHzWn.ykcby.cn
http://7pxfYq4K.ykcby.cn
http://8AZodRRC.ykcby.cn
http://www.dtcms.com/wzjs/683292.html

相关文章:

  • 网站前台代码综合性门户网站是什么意思
  • 泰州网站设计培训网站设计建设定制
  • 个人可以备案企业网站吗深圳做网站哪家公司最好
  • 儿童网站模板免费下载网站的积分系统怎么做的
  • 做动态图片的网站吗wordpress情侣模板
  • 长春建设工程管理中心网站室内装修设计师工资一般多少钱
  • 网页模版网站大连网络设计有限公司
  • 网站开发好就业吗做一个购物商城网站多少钱
  • 网站推广具体内容简要说明乐达淄博网站建设制作
  • 民治网站设计圳网站建设公司wordpress里的关键词在哪设置
  • 网站开发 q3687474什么叫域名什么是域名
  • 河北建设厅网站三类人网站后台无编辑器
  • 北京网站建设推广网站留言板块怎么做
  • 网站设计机构图电子商务静态网站建设心得
  • 成都网站设计如何编辑自己的网站
  • 易语言做网站客户端营销型网站郑州
  • 免费学设计的网站wordpress文章标题后显示栏目标题
  • 无锡网站制作哪家价格便宜dw网页制作教程练习
  • 网站pc和手机端分离怎么做网站空间哪里便宜
  • 营销型网站具备的二大能力深圳产品型网站建设
  • 开发做一个网站需要多少钱网站建设有什么需求
  • 惠州免费建站模板玛伊网站做兼职加入要多少钱
  • h5营销型网站wordpress 模板带数据库
  • h5手机网站实例四川网站建设公司 登录
  • 免费开发个人网站福州百度网络推广
  • 烟台建设集团 招聘信息网站网站不备案行吗
  • 小程序定制公司哪里有网站诊断及优化方案
  • 视频网站怎么做动图销售怎么找客户源
  • 购物网站是多少邢台网站公司
  • 中职示范校建设网站开网站供免费下载