- 博客(10)
- 收藏
- 关注
原创 白兔分身术
当 k≥2 时,p 需取 n 的1/k次方(即 n 的 k 次方根)。n=16,k=2,p= 根号16=4,和为 4+2=6,远小于 16+1=17。每轮白兔数目乘以p,k轮后总数为p^k,题目中白兔总数需满足 p的k次方=n。根据问题分析,为了最大化p + k的值,当k=1时,p必须等于n,由于当k≥2时,p + k的值必然小于n + 1。k=4,则 p= 16的根号4次方根 =2;要求找到两个正整数p,k,最大化p+k。,因此最优解为选择k=1,p=n。k=2,则 p= 根号16=4;
2025-03-25 13:59:56
299
原创 寻找第一个大于或等于目标值x的元素的位置
这段代码实现的是二分查找中寻找l=0r=n[l, r)l == ra[m] >= xr = ml = m + 1la[l] >= xn。
2025-03-22 11:17:06
345
原创 找相同数对
排序后数组满足单调性,使得双指针法能够通过单向移动高效统计目标值。例如输入排序后为,便于后续查找。a[i]=4c=3a[j]=7a[k]=8k-1=5a[5]=7a[i]+ck-1 >= 1kk-1 = 0k-jj=4k=6772双指针的单向移动使得整体时间复杂度为,结合排序的,总复杂度为,远优于暴力枚举的。
2025-03-21 12:08:18
182
原创 百钱百鸡C语言实现
最多买100只,所以用100除价钱得出最多数量,小鸡三只一块所以必须是三的倍数。本算法只用了双重循环,比上面的三重循环实现了更快时间解决问题。此代码为三重循环实现,x,y,z代表公鸡,母鸡,小鸡。
2025-03-18 10:33:20
628
原创 MAXSUM最大子序列(hdu1003)
给定由n个整数(可能为负整数)组成的序列a1,a2, a3… , an, 寻找它的某个连续子段,使得其和最大。例如( -2,11,-4,13,-5,-2 )最大子段是{ 11,-4,13 }其和为20。
2025-03-12 14:10:59
417
原创 哈夫曼编码实现Entropy(poj1521)
输入一个字符串,分别用普通ASCII编码(每个字符8bit)和Huffman(哈夫曼)编码,输出两者编码后的长度,以及压缩比(即编码后两者相除的结果)
2025-03-12 13:43:39
622
原创 约瑟夫问题(洛谷P1996)
有n个人,编号为1-n,按顺序围城一圈,从第一个人开始报数, 数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出列,以此类推 直到所有的人都出列,请一依次输出出列人的编号 输入:两个整数n和m,1<=m,n<=100. 输出:n个整数,按顺序输出每个出列人的编号
2025-03-12 10:40:50
387
怎么弄都是只能输入第一行(语言-c++)
2025-03-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅