- 博客(31)
- 收藏
- 关注
原创 913.排序不等式--排队打水
从上面对题目例子的分析可以发现,实际上的总等待时间 sum 加了6次第一个人的打水时间,加了5次第二个的打水时间......,加了1次第六个人的打水时间,加了0次最后一个人的打水时间,所以可以推出公式:sum=a[1]*(n-1)+a[2]*(n-2)+a[3]*(n-3}+...+a[n-1]*1+a[n]*0。有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?③求前缀和,s[i]=s[i-1]+a[i]。
2024-03-30 11:27:23 253
原创 ACWing--基础算法--贪心(部分题解)
①~⑭为代码中for循环的过程,画了☆的表示这一步是在排序(每次有变化小根堆就会自动排序,将最小的值放到顶部,较大的值往下放,注意:堆只能访问根节点,其余结点无法操作)。②:区间1的右端点大于区间2的左端点,说明两区间有交集,需要重新开一个组,将区间2压入;⑩:区间3的右端点大于区间5的左端点,说明两区间有交集,需要重新开一个组,将区间5压入;④:区间3的左端点大于区间1的右端点,将区间1弹出;⑦:区间4的左端点大于区间2的右端点,将区间2弹出;⑫:区间6的左端点大于区间3的右端点,将区间3弹出;
2024-03-18 21:37:11 452
原创 AcWing--803.区间和并
原题:给定 n 个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。
2024-03-17 16:03:55 347
原创 AcWing--802.区间和(离散化)
(百度百科):离散化,就是把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小(这带来的是存储空间得缩小,访问效率的提高,即提高时空效率)。例如:原数据:1,999,100000,15;处理后:1,3,4,2;(1映射到1,999映射到3......)原数据:{100,200},{20,50000},{1,400};处理后:{3,4},{2,6},{1,5};假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。
2024-03-15 21:21:22 401
原创 团体程序设计天梯赛--练习集(PTA)--部分题目
的不包含空格的非空字符串,前两个数字表示需要剪切的位置,后两个字符串表示插入位置前和后的字符串,用一个空格隔开。如果有多个可插入的位置,选择最靠近当前操作字符串开头的一个。输入第一行是一个长度小于等于 200 的字符串 S,表示原始字符串。请实现一个简单的具有剪切和粘贴功能的文本编辑工具。每次操作后的字符串即为新的当前字符串。第二行是一个正整数 N (1≤N≤100),表示要进行的操作次数。单位 杭州百腾教育科技有限公司。输出一行,表示操作后的字符串。剪切的位置保证总是合法的。L1-094 剪切粘贴。
2024-03-13 16:50:31 636
原创 向0取整c++
也就是说对于大于 0的结果向下取整,例如 5/3=1,对于小于 0的结果向上取整,例如 5/(1−4)=−1。C++和Java中的整除默认是向零取整;Python中的整除。函数中的整除也是向下取整,一般不能直接使用。默认向下取整,因此Python的。一般整除是指向 0取整。
2024-03-07 20:05:26 421
原创 AcWing--798.差分矩阵(差分)
输入一个 n 行 m列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。①先b(x1,y1)+=c ,相当于 图中 a 矩阵(x1,y1)的右下角全部都加 c,即图中的右下角蓝色大矩形;接下来 q 行,每行包含 5 个整数 x1,y1,x2,y2,c,表示一个操作。④这时会发现绿色和红色区域重复的小方块的数据减去了两次 c,所以要加上 c;每个操作都要将选中的子矩阵中的每个元素的值加上 c。
2024-02-10 21:32:40 485
原创 AcWing--801.二进制中1的个数(位运算)
n & -n电脑存的是二进制的补码,正数的补码是它本身,负数的补码是原码按位取反再加一01010的最后一个 1 为 100101000的最后一个 1 为 1000举例:十进制数 10,对应的二进制原码为01010(首位0表示正数)十进制数-10,对应的二进制原码为 11010(首位1表示负数)11010的按位取反为:10101,再加一为:10111010101011100010所以最后结果为10,即为十进制数 10 转化为二进制后最后一个1。
2024-02-09 22:22:29 355
原创 2024牛客寒假算法基础集训营1--补题复盘
以"向右"按钮为例,点击一次该按钮会显示接下来的六道题,特别的,如果接下来的六道题超出了总题数,则会将最后一题放到当前显示的最右侧。这道题也是很简单的数学题,只用到了相似三角形,但是一定要审清题目!不要像我一样潜意识以为是要求白墙s上的最大阴影面积/流泪,其实求的是土地上的阴影面积,即xoy平面上的最大阴影面积。现在,在本次比赛的主页点击"排名",您就会看到本场比赛的榜单,可以看到,榜单中直接列出了本场比赛的所有题目。上述过程中,显示的六道题中,最左侧的题目编号分别是 A、G、I、C、A,因此答案为 4。
2024-02-04 20:28:10 987
原创 The 2023 ICPC Asia Regionals Online Contest (2)-2023 ICPC网络赛第二场部分题解 I,M
共n个阶段,要从第0个阶段到达第n个阶段,有两种方法:(1)每天走一个阶段,第n天后到达第n个阶段。(2)开启“挑战” 模式,成功直接到第n阶段,成功概率为p/1e5;共有n道题,每道题有(1-pi)的概率需要 ai 的时间AC,有 pi 的概率需要(ai+bi)的时间AC,最优策略下,只会在一个点挑战,该点成功即到达第n阶段,枚举每个点作为挑战点,取最小值。根据ICPC规则,对于第i道题,它的罚时为从比赛开始直到它被AC的总时间。现给出n道题的ai,bi,qi,求做完所有题目需要的最小期望罚时。
2023-09-25 21:27:17 634 1
原创 牛客竞赛-新手上路 1047-得不到的爱情 顺序结构
来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。
2023-07-23 17:20:13 461
原创 牛客竞赛-新手上路 1041-纸牌 顺序结构
来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K。
2023-07-22 18:18:15 396
原创 牛客竞赛-新手上路 1040-白兔的分身术 顺序结构
来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。
2023-07-20 13:45:37 280
原创 牛客竞赛-新手上路 1038-长方体 顺序结构
来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K。
2023-07-20 13:25:57 122
原创 埃氏筛 欧拉筛 c++
1.素数是仅能被它本身和1整除的任何整数。2.埃拉托斯特尼筛法,简称埃氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。3.判断一个数是不是素数,我们只用判[2,n]内有没有它的因子。在筛合数的时候也可以这样做,因为一个合数的最小质因子一定小于等于n。证明如下:设n为合数,那么n必有两个约数a,b 使得a*b=n。则a、b两个数中必有一个大于等于n,一个小于等于。
2023-07-13 17:05:26 277 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人