- 博客(7)
- 收藏
- 关注
原创 第七次专题任务(图论)
本题考查分层最短路问题,变成二维建图。枚举子树保留k条边,因为从x到y还有一条边,所以得到转移方程f[x][i]=max(f[x][i],f[x][i-k-1]+f[y][k]+w),f[1][q]即为我们所要求的答案。使用单向边存图,然后使用Floyd算法,设map[i][j]为前k个点中i到j的最短路,可以得到转移方程map[i][j]=min(map[i][j],map[i][k]+map[k][j]),然后不断更新得到所求的答案。
2025-02-19 18:31:34
864
原创 第六次专题任务(动态规划)
dp[i][1]表示前i个人时,第i个人说真话的方案数,我们所求的答案即为dp[n][0]+dp[n][1]。先讨论第一个人的情况,a[1]=0时第一个才可能说真话,而且第一个人是一定有可能说假话的,所以dp[1][0]=1,dp[1][1]需要判断。ans[i]表示第i个数字往前的最大子段和,从第i个数字往前的最大子段和就等于第i-1个数字往前的最大子段和加上第i个数字与第i个数字二者的最大值即ans[i]=max(ans[i-1]+a[i],a[i])。需要在后续的练习中不断学习,纠正错误。
2025-02-16 18:39:48
715
原创 第五次专题任务
然后编写一个print函数,保证只输出前三个解。先特判整个地图方块的高度是否都相同,如果是则输出“1 1”,如果不是,则选择一个没搜过的点开始搜索周围与它高度相同的点,并标记搜过,然后再根据这个联通块的高度与它周围一圈的高度进行比较判断这个联通块是山谷还是山峰,或者什么都不是。使用BFS依每一个点次拓展,即把所有值为1的点距离都设为a,并将其依次加入队列,依次扩展没被计算过距离的点,然后每次把对头后移,那么对头到1点的距离+1就是拓展的点到最近的1点的距离。6.八皇后 Checker Challenge。
2025-02-13 18:11:21
284
原创 第四次专题任务(数论)
但有一个特殊情况即[1,1]这个区间互质,所以若l=1,如果r=1,结果为1而不是0,如果r>1,结果仍为r-l即r-1,因为[1,2]这个区间不是最小互质的了。ai中质数数量等于1时,只能选择x=p,p为唯一的质数,考虑p是否可以生成所有的ai,对于ai为偶数,只要ai小于等于2*p就可以构造出ai,若ai为奇数,只要ai-p小于等于2*p就可以构造出ai。所以所求P、Q的需要满足P*Q=x*y、gcd(P,Q)=x、lcm(P,Q)=y三个条件,从x到y依次枚举为P,并计算有无符合条件的Q即可解决。
2025-02-11 00:38:12
229
原创 第三次专题任务
根据输入的不同字符串使用优先队列的成员函数:如果输入的字符串为insert k,则使用push(k)函数插入元素k;要使体力耗费最小,就需要每次合并的果子堆为数量最少的两堆,可以使用小根堆的优先队列来实现,将数量最少的两堆果子从队列中选出相加,然后将其从队列中删除并将二者相加的结果压入队列,直到全部合并为一堆。可以使用deque去维护一个单调递减队列q,如果当前奶牛的身高小于等于最后一只奶牛的身高,压入队列,否则当前的奶牛就是队列里所有身高小于它的仰望对象。考察ST表模版的使用。
2025-02-07 17:11:48
235
原创 第二次专题任务(二分)
而题目要求输出的为尽可能让前面的人少抄写的方案,就需要倒序来解决,倒着输出。答案序列具备单调性,假设套牌数量为c,那么每种卡牌至少有c张,不够c张即用不超过手写牌上限的空白牌代替,并记录用下了多少空白牌,最后需要的空白牌不超过m张即说明这个c合法,用此思路写出check函数,并套用模版。将一排石头抽象为一组数列H,根据学长上课的讲解,小青蛙能完成路程的充要条件为的充要条件为每个长度为y的连续子序列的和至少为2*x,check函数就以此为检验标准,可以使用前缀和的方式来检验。
2025-01-26 21:52:06
569
原创 第一次专题任务
而对于没有优化思路的题目,可以先取一小部分出来分析,关心他的变化,从而得到全部数据的变化情况。而学习完STL常用组件的部分功能用法还有C++的语法糖之后,直接使用这些组件可以给我们编程带来极大的便利,虽然不能一时半会直接掌握,但可以在以后的学习中不断深入了解。直接通过遍历无法解决这个问题,会出现超时的情况。所以我们先用数组统计出n道题目中每种难度的题目分别有几题,再算出它还缺少几题,将其累加起来就是我们所需要的答案。通过统计代号为k的规则符合民意的天数,最后再判断符合民意的天数是否大于等于一半的天数。
2025-01-23 17:18:04
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅