自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 OpenJ_Bailian 1562 (dfs油田)

每组数据都以包含m和n的一行开始,m和n是网格中行和列的数量(1 <= m <= 100,1 <= n <= 100),由一个空格分隔。如果m = 0,则表示输入结束。每个字符对应一块土地,要么是“*”,代表没有油,要么是“@”,代表一个pocket。先创建一个网格,将土地划分为许多方形块,然后用传感设备分别探测每个地块,以确定该地块是否含有石油。2.在solve函数中有一点区别:此题在这个函数内部检查是否为起点,并且检查当前位置是否被访问并且使用dfs(i,j)来从当前位置开始搜索所有可能的路径。

2024-11-20 23:09:31 231

原创 Openj_NOI CH0205-181(dfs蘑菇问题)

每个字符表示一个物体,规则如下 1)‘.’:花 2)‘#’:蘑菇 3)‘@’:花,并且你站在这朵花上。3.在dfs函数中放入三个参数(sum,curx和cury)sum:搜索树上走过的节点表示已经访问过的路径。5.solve函数:程序的入口点之一,用于初始化变量并且调用dfs函数,首先初始化sum变量然后开始遍历map中的各个位置,如果某个字符位置为。你身处充满着蘑菇与花朵的峡谷中,花是无害的,但蘑菇是有毒的,你现在站在一朵花上,只能向附近上下左右的花朵移动。当在一行中读入的是两个零时,表示输入结束。

2024-11-20 22:52:36 281

原创 两种枚举区别(指数和全排列)

2.不同点:两者数学建模有区别。(1).指数型枚举:直接记录这个数字选或者不选,在使用代码的时候给每个数字分配的记录数组的位置都是固定的(3.回溯并不是他们两者的区别,代码写法不同,是否需要使用回溯需要看代码定义的变量,不能单纯看一个使用回溯一个没有使用回溯来判断二者的不同。(2).全排列枚举:给每个位置编号,每个位置可以放一个数,但是选择的这个数所放的位置并不是固定的,是可以变动的(深度搜索函数进行搜索,然后使用。循环遍历,主函数都需要应用。1.相同点:都需要应用。

2024-11-04 15:29:06 146

原创 洛谷U113177(递归实现全排列枚举)

1.bool函数:全局函数,可以用来将元素转换为布尔类型并返回,同时返回值也是布尔类型数据。输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。3.回溯:记录哪些数字被使用,如果不回溯把它作为函数参数放进去那可能会导致内存爆炸,所以我们要进行回溯手动处理。2.使用dfs深度搜索:和之前的指数型枚举类似进行深搜再利用for循环遍历每个元素。把 1~n 这 n(n<10) 个整数排成一行后随机打乱顺序,输出所有可能的次序。

2024-11-04 15:10:18 191

原创 洛谷B3522 枚举(递归实现指数型枚举)

/不选择当前数字u,继续考虑下一个数字dfs(u+1,state1(1<<u));是输出这个数字(i加1是因为题目中是由数字1开始的)并且题目要求输出空行,所有我们还需要一行代码cout<<endl;3.用if语句来输出符合条件的方式同时使用位运算知识来表示每一位对应的一个数字是否被选中(1表示选中,0表示未选中)当前处理的元素索引u和当前状态state,dfs是一种递归函数。从 1~n 这 n(n<16) 个整数中随机选取任意多个,输出所有可能的选择方案。

2024-10-28 19:59:42 297

原创 洛谷P2440 木材加工(二分算法)

5.初始定义low为1,high为数组L的最大值进行循环,直到low>high循环结束(如果mid可以切出k段则更新区间为【mid+1,high】如果mid不可以则更新区间为【low,mid-1】3.定义目标函数canCut,此函数接受三个参数:一个整数数组L(代表木头的长度)一个整数K(代表目标段数)一个整数MAX_length(当前考虑的最大长度)——这行代码使得标准库中的所有名称都可以直接使用不用加前缀。第一行是两个正整数 n,kn,k,分别表示原木的数量,需要得到的小段的数量。

2024-10-28 01:03:32 352

原创 洛谷U411986 数的范围(二分算法)

的,当l和r只相差1时,mid=(l+r)/2就等于(2*l+1)/2=l,如果此时需要更新的是区间左端点l,那么l=mid操作一通后,l的值还是原来的值,会导致死循环。由此可知此时的mid也会有两种情况第一种mid在黑色区间里则更新区间为【low,mid】第二种不在黑色区间里则更新区间为【mid+1,high】所以把mid的值设置为(l+r+1)/2,这样分区间时还是可以视为是对半分的,还可以避免死循环。这里注意到模板中mid的取值是(l+r+1)/2,而不是(l+r)/2,是因为mid的取值是。

2024-10-27 23:24:02 379 1

原创 洛谷P1177 简单排序(使用sort函数)

\使用sort函数对数组arr中的元素进行排序。\\输出一个空行表示换行符。\\定义一个长整形数组arr大小为MAXN。\\定义常量MAXN 100010(防止越界)printf("%d", arr[0]);\\输出排序中的最小值。#include \\包含STL算法库。用来快速的对数值进行排序,简单易用,是算法库中最常用的算法。第二行包含 NN 个空格隔开的正整数 ai​,为你需要进行排序的数。

2024-10-27 22:18:54 270

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除