PJ8搜索
1,P1036
2,枚举子集
3,P1378
我觉得先需要一个排列,而且是n中取n的那种。
然后按照每个顺序进行模拟扩展,得出最大面积(体积?)
最后就更新最大值没什么说的。
1,啥是搜索,主要是一个遍历的方式。
2,在搜索中你要注意状态的概念和搜索树的概念。
搜索中的状态,就是对搜索情况的描述。
这么说是不是太抽象啦》那么,用搜索一棵树来帮你理解吧~
如果你遍历(搜索)一棵树,那么你选择的状态可以是,你之前遍历过的节点数,但是也可以是你现在遍历到的节点编号。
很明显你八成得设计状态!
3,搜索的基本形式之一,DFS。
4,什么是dfs,简单说就是一条路黑到死。
再回去。因为不是人,反正不会死。
5,具体一点,DFS需要用到递归。而且很吃递归。
6,然后dfs有个框架
void dfs()
{预处理...
for()遍历节点
{...处理一下
dfs()进入下一层递归
...处理一下}
return;}
恩所谓框架有了然后呢?
但是在面对1036的时候我比较显然的束手无策那怎么办呢?
那么一定是哪里出现了问题~
没错,
我们在搜索的时候,或者想要用搜索解决问题的时候,
我们往往要明确这么两个问题,
一是明确搜索的目标
二是明确搜索的状态(即状态)
为啥要明确这个东西呢?因为这样你才不会在面对问题的时候哭泣~。。。
搜索目标肯定是根据题意来判断的啦,比如1036,你要明确选数的方案,和他们的和是否是质数。
对,这就是目标啦!
那么状态呢?啥事状态,状态是啥》唉,不对唉,你不是最开始都介绍了状态的概念了嘛?
那么我们来回顾一下吧,
恩回顾了一下,
那么这个问题的状态是什么呢》我该怎么来描述这个搜索情况呢?样例有四个数呢?我要选几个呢?以及他们的和是多少呢?、
我选的是第几个数呢?
所以我要选啥呢?所以我就设计出了,i,j,k三个东西,状态来描述这个搜索的情况。
(哈哈我不会告诉你我是抄答案的,但是这个是可以设计的)
i,代表当前要选的是第几个数,j代表的是之前已经选了的数的和,k代表的是你已经选了几个数。
我觉得这个状态你要设计得合理,怎么就是说合理呢?就是说你要能够合理得描述这个搜索的每一步,每一个情况。
或者说,完整的。
根据这两个要求我们来想一下这个东西,我们的目标是明确选数的方案,以及判断他们的和是否为质数。
let's analyse it...
首先和为质数是在选够数的情况下进行的,所以一个情况是选够数,那么我们需要一个变量来控制选数的个数,比如i;
那么和呢?肯定是你每选上一个数,你得求和对吧
再往前,接下来是选数的方案,
L1025 数的划分。
1,确认搜索目标和搜索状态。
搜索目标是选数的方案(不要有重复),这个选数的话,
对某数分成k份,几份的和加起来为该数。
答案是dfs(x,y),x表示你当前划分了几个数,y表示x个数的和。
让我再来分析一下目标和状态间的联系。
人家这个,我觉得这个东西有点像,一段绳子,切几段。
x就是我现在已经分成了几个数,
其实如果再加上y代表x个数的和的话就还是挺明确的。
最后一个肯定是不用分的呗,用分绳子这个模型就很好理解了!
嗯,x表示当时已经分成了几个数,
所以说如果能想到这个模型,就还挺简单的。就状态而言。接下来
分析避免
..
生日蛋糕!
我好难呀呀呀哎呀,我是一条小鱼啊。。
操,我也完并行,
我感觉我都没有到达让人家给我tle的地步。。
总觉得差一步》可能是。。。。我缺个竞赛一本通?》
我tm 也太难了。。
根据我练字的经验,
首先得有老师带,也就是有了视频(洛谷)
然后努力完成老师的要求。。
对啊。。你得一点点把那些题给吃了。。。这点我没做好,导致我都弄不下去了。。
实在是难得一笔,弄弄他妈妈得视频我都怕视频看不完了。。
然后进步飞速是在写起了书法笔记。。有自己得思考在里面。
所以我现在就要,,,把例题全搞懂,自己独立敲完!
恩,加油敲掉选数
恩。。
选数对了一半的点,这咋办。。
我也想不出来啥。。
现在奇怪的是,我的选质数的函数,
我用筛选到根号下x,的时候可以过一半点,而后我下载了测试数据,发下问题出在质数筛选上,
33,35都被当做质数搞出来了。
然后我换成普通筛选质数的,这个33,35的测试数据倒是过了,就是其他过的点更少。
我就现在挺疑惑的。
同时写上一篇完整的题解,重点就是你从中学到了什么。
反正自己对于例题的要求是自己要独立敲一遍。
恩,我换了一下,我质数枚举的方法,然后jiu ac 了。。
妈的,赶紧写题解敲代码。