- 博客(7)
- 收藏
- 关注
原创 2025牛客寒假算法基础集训营2
不妨设长边平行于xxx轴,短边平行于yyy轴,我们先讨论第一种构造方向。不妨设在矩形上边界长边上选取两个点A,BA,BA,B ,右边界短边上选取一个点CCC。根据据正弦定律,我们知道三角形的外接圆半径由2R=len(A)sina=len(B)sinb=len(C)sinc2R=\frac{\mathrm{len}(A)}{\sin a}=\frac{\mathrm{len}(B)}{\sin b}=\frac{\mathrm{len}(C)}{\sin c}2R=sinalen(A)=sinble
2025-01-27 19:25:27
392
原创 猪猪养成计划2
可以考虑使用一个数组b用来存储u-v的值,sum来求出不陪小猪时的花费,后利用dp求出前i天陪小猪的最小值,sum+dp[n]即为结果。然而,因为 Tobo 精力有限,一天只能陪一只猪猪,显然 Tobo 大概率不能陪伴他的每只猪猪。Tobo 养了n只猪猪,但是 Tobo 为了不让它们吃醋,所以一视同仁不管陪哪只猪猪都只陪m天。(0≤bi,vali≤105)代表陪第i只猪猪需要花费的精力、不陪伴第i只猪猪需要花费的金钱。sumi为val数组的前缀和,用来求出不选编号为j+到i−1的猪猪所需要花费的金钱。
2025-01-21 11:50:29
1803
原创 数字三角形
写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。后面每行为这个数字金字塔特定行包含的整数。单独的一行,包含那个可能得到的最大的和。的路径产生了最大权值。题目翻译来自NOCOW。观察下面的数字金字塔。
2025-01-21 11:43:12
896
原创 最长公共子序列
因为两个序列都是n的全排列,那么两个序列元素互异且相同,也就是说只是位置不同罢了,那么我们通过一个map数组将A序列的数字在B序列中的位置表示出来——,可以考虑纳入LCS——那么就可以转变成nlogn求用来记录新的位置的map数组中的LIS。我们不妨给它们重新标个号:把3标成a,把2标成b,把1标成c……两个序列的子序列,一定是A的子序列。换句话说,只要这个子序列在B中单调递增,它就是A的子序列。当然是B的LIS最长。一个数,即最长公共子序列的长度。,求它们的最长公共子序列。因此这个子序列是单调递增的。
2025-01-21 11:26:29
655
原创 最长上升子序列
若是新插入的a[i]大于a[j],就更新f[i]。即if(a[i]>a[j])f[i]=max(f[i],f[j]+1);的正整数组成的序列。取出一些数字排在一起,这些数字是。最长上升子序列是指,从原序列中。这是一个简单的动规板子题。个整数,表示这个序列。
2025-01-21 11:23:22
905
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人