2023.3.10
考柿考完了的第一天。
今天的任务是:
Spider(话说我的目的是—)
UC/OS-2、与AJ的课程–制定计划
算法–查找
力扣-5个题
开始收集信息-参加夏令营-老师-需要哪些芝士
1.自己准备好自己的各项资料,包括成绩排名证明、荣誉称号、奖学金、科研竞赛奖状、英语成绩、近期一寸照片、身份证扫描、学生证扫描等等。
2.撰写文书:一页纸简历、个人陈述、自我介绍。
3.复习专业课以及准备可能被问到的英语问题及回答。
4.报名夏令营的同时积极联系老师。
资料:成绩排名、各类奖状、身份证学生证扫描
文书:简历(个人陈述),推荐信
二分查找
基本条件是==数组有序,查找的数量是一个==。
需要注意的是[low,high]还是[low,high)or(low,high]。
1 | while(low<=high){ |
下面是梳理过程:
二分答案
二分答案指的是我想要的答案在一个区间(需要自己去找到这个区间),然后逐步缩小这个区间,得到我们的值。
luogugu上面有典题:木材加工P2440 木材加工
大概题意是给你一些数量的木头,然后把这些木头分别裁成相同长度的小块。比如有11 21cm的两块木头,需要被裁成6块等长的小木块。
我可以在11上切2块,21上切4块。那么切割出来的6块小木块的最长长度是5。我是这么算的:
(11+21)/6=5······2
当然这个例子是很简单的一个例子,可能存在的情况是:
- 得到的数字远远大于其中某一节木块(1 100切5块),那么我应该选择不使用1这个木块,而是选择把100切5段,得到20.
- 在相差不是很大的情况下,均分除出来的数字比其中一节木块大,考虑直接使用最小的那节木块的长度来切。
==将最值问题转化为判定问题==
init区间:[1,max(木头)]
- 长度越长,切出来的个数越少。
- 当长度x能满足条件时,小于长度x的一定也能满足条件。(low符合)
- 所以看high这边还有没有符合的。(进行二分)
1 | bool check(int mid){ |