第四周总结

今天是第四周的最后一天,回看今周定是颓废的一周,从周一开始我就想着要改变自己的学习方式,改变的过程是痛苦的,直到这个星期三我才正式看博客,我一开始开始看dfs的有关题目,一开始看的时候直接就是看不懂,我在题目不是很明确的情况下直接看代码,导致咋也看不读懂,看了好久才意识到这个问题,然后回看了问题,对着问题才一点点看懂,慢慢看了以后发现懂得多了,看的也快了,我又学习了一下bfs,又接着看关于bfs的有关博客,有些真的是咋看咋也看不懂,看了一遍两遍直到差不多第五遍才看的明白些,看了这些博客,感觉是一种享受,也渐渐感觉看博客的必要性了,感觉真的是真的太有用了,也涨了特别多见识,这个星期大部分时间都在看博客,很少去敲代码,不知道看的这些会不会写。在经历星期四的比赛后,我看博客又转向了思维题,真的好长好难懂。

一、先来总结一下我这个星期看的搜索的题目

1、

(53条消息) 一道题弄懂递归、深度优先搜索、记忆化搜索、DP动态规划_小小的香辛料的博客-CSDN博客_记忆化深度优先搜索我最开始是从这篇博客看的,当时被标题吸引了,我就迫不及待的看了。

这题的题意是有一个层数为n(n<=1000)的数字三角形。现有一只蚂蚁从顶层开始向下走,每走下一级,可向左下方向或右下方向走。求走到底层后它所经过数字的总和的最大值。

思路:用深度搜索的话就是简单的搜索模式一条路走到黑,枚举所有情况,找到符合条件的。

这道题的意义在于对递归了解的更加透彻了,不像之前仅仅是知道,也让我对记忆搜索和dp有了初步的了解。

2、第八届蓝桥杯第四题:方格分割

这道题真的是给我整麻了,我一看是关于dfs的题我就要从格子上找规律,因为之前看的那些题都是对空进行处理,但这是分割它是对边进行处理。

题意:6x6的方格,沿着格子的边线剪开成两部分。
要求这两部分的形状完全相同。

思路:第一考虑了旋转对称,(因为这个题的切割一开始可以有上下左右四个方向,旋转对称简单来说就是这个图形可以0、90°、180°和270°旋转,四种情况结果一样故算为一种)ans/4,第二考虑如何保证两图形形状相同,首先想到可以找到图形的中点,向四个方向进行搜索,那不免会想到如何结束呢?这就转变为dfs结束标志,因为从中心开始,故(x==0||y==0||x==N||y==N)时结束,既然对称既要保证在标记点(x,y)的同时,也要对(N-x,N-y)进行标记。

3、Prime Path(素数+BFS)

看这个题的时候感觉这就是正常的广度搜索的题。

题意:给出两个四位的素数n ,m要求n,m每次只能变换一位,并且变换后的数字依旧是素数。
求n经过多少步变换能够变成m;如果n无法变成m,输出Impossible。

思路:广度搜索的思想,先判断m和n是否相等,相等后就可以结束,当不相等时搜索的第一层是改变n的每一位得到的新的数要保证>=1000||<10000&&此数没有被判断过,还要对这个数是否为素数进行判断,这里运用了一个特别的方法,把范围内的素数都进行了标记,接下来接着广度搜索的第二层,最后数列为空或找到和m相等的结束。

for(int i=2;i<maxn;i++)
	{
		if(!vis[i])
		{
			for(int j=2;j*i<maxn;j++)
				vis[i*j]=1;
		}
	}

4、单词方阵 - 洛谷

看这个题和之前的不太一样,之前都是用一个dfs就可以解决问题,现在把for里面套着dfs,也不涉及回溯。

题意:给一n*m的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。

思路:先找到首字母y,然后再找第二个字母i,找第二个字母的同时也确定了搜索方向,接着对符合条件的进行标记,最后只输出标记的元素。

搜索的题目中dis[8][2]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};这一个是非常常用的。

二、我再写一下我这个星期看思维题印象最深刻且最明白的一道题,其他真的是又长又难懂。

小红的375(思维+数学)

题意:小红拿到了一个正整数。她希望你能重排这个正整数的数位,使得它能被 375 整除。你能帮帮她吗?

这道题要是不看别人写的博客真的是想不到呀,纵使能想到判断这个数能被3整除,也想不到判断125的倍数只需要判断末位3位数即可,如果可以{"000","500","250","750","125","375","625","875"} 这里面任意一种,就说明是可以的。防止这个数不会在最前面出现0,所以在定义这个数组的时候,数的顺序按照0最多的在前面,输出时也从9往1顺序输出。知道这些以后代码咋写就很明确了。

思维题我感觉非常重要,以后应该多看一些思维题,写一个正确的带码要有一个好的思路。

总结:这周学的知识还是比较少,不过也对新的学习方式慢慢适应,下个星期不再这么颓废,接着好好看博客,练出好的思维。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值