自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 信息学奥赛一本通 1206:放苹果(dp动态规划做法)

2. 当i < j时,苹果数小于盘子数,一定有j - i个盘子是空的,他们的状态是一样的,那么只考虑将i 个苹果放进i 个盘子的情况。答案表示:把m个同样的苹果放在n个同样的盘子里,f[ m ][ n ]1. 初始化:当苹果数为0,以及盘子数为1时,只可能有一种方法。2)没有空盘子,即每个盘子都至少有1个苹果。f[ i ][ j ]表示将i个苹果放入前j个篮子中的方法。(这题递归或dfs都可以做,这里写一种动态规划的方法)3. 当i >= j时,又有两种可能。

2024-10-13 22:59:06 452

原创 信息学奥赛一本通 1203:扩号匹配问题

3. 如果是‘ )’,需要判断栈是否空。如果栈非空,说明还有未匹配的左括号,栈顶与之最近,和它匹配并出栈;如果栈空,匹配失败,将字符变成‘?5. 最后先输出原字符串s,后输出字符串a,a中如果不是‘ $ ’或‘?1. 定义一个字符串a复制输入的字符串s,我们可以保留原字符串s并在a中进行修改。4. 扫描结束时,栈内的所有左括号都是无法匹配的左括号,全部变‘ $ ’。2. 扫描整个字符串,如果是‘( ’ ,直接将此时下标压入栈中。2. 建一个int类型的栈,存左括号的下标。

2024-10-12 22:56:07 433

原创 约数问题(分解质因数、约数个数、约数之和、辗转相除)

也叫因数。若a%b==0,则称b是a的因数。对于一个数N,可以构造N = p1^a1 + p2^a2 +...+ pn^an。其中,p是,也必须是质因数,比如在分解12 = 2×2×3 = 2^2+3^1的式子中,2和3就是底数;a是,是底数出现的次数,比如2的指数是2,3的指数是1。

2024-09-17 00:06:14 346

原创 信息学奥赛一本通1328:【例7.7】光荣的梦想 (归并排序求逆序对)

求最少需要交换几次能构成上升序列,实际上就是求原序列中有多少个逆序对:若i < j && a[i] > a[j] ,则a[i]、a[j]为一组逆序对。可以用归并排序求逆序对。

2024-09-08 22:54:21 259

原创 信息学奥赛一本通1337:【例3-2】单词查找树(字典树tire)

题目说文件总长度不超过32K,32 K B = 32 ∗ 1024 B = 32768 B,总字符个数不会超过33000个。因此结点体总数量可设为33000。假设一个字母x,若他的下一个字母 i 不存在,则node[ x ] . child[ i ]=0。若存在,则该值为节点编号(大于0)。单词中的每一个字母,对于他的下一个字母,都有26种可能。我们可以用一个结构体来判断下一个字母是什么。【数据结构】字典树tire。2.插入单词进字典树。

2024-06-25 17:37:48 258

原创 高精度算法模板(正整数的加,减,乘,除)c++

计算正整数a+b,其中a.size<=1e6 , b.size<=1e6。

2024-05-13 00:12:12 404

原创 信息学奥赛一本通1266:【例9.10】机器分配

可得第i个公司分配k个设备的状态转移方程为 f[ i ][ j ]=max( f[ i ][ j ] , f[ i-1 ][ j-k ]+a[ i ][ k ])。当从前 i-1 个公司转移到前 i 个公司时,对于第 i 个公司可以分配0,1,2,3,...,m-1,m个设备。可以理解为背包问题。当第 i 个公司分配1个设备时,f[ i ][ j ]=f[ i-1 ][ j-1 ] + a[ i ][ 1 ];当第 i 个公司分配0个设备时,f[ i ][ j ]=f[ i-1 ][ j ];

2024-05-09 15:20:01 524 1

原创 信息学奥赛一本通1284:摘花生

即f[ i ][ j ]=max(a[ i ][ j ], max( f[ i-1 ][ j ]+a[ i ][ j ],f[ i ][ j-1 ]+a[ i ][ j ]) );状态计算:只能向东或向南走,所以a[ i ][ j ]可以接在a[ i ][ j -1 ]和a[ i-1 ][ j ]后面,取最大值。状态表示:f[ i ][ j ]表示到达( i , j )能得到的最大花生数。数据范围1到100,双重循环遍历即可。

2024-05-07 23:10:32 441 1

原创 信息学奥赛一本通1283:登山

up[ i ] 表示以第 i 位结束的最长上升子序列,dn[ i ] 表示以第 i 位起始的最长下降子序列。需要注意的是,最长上升子序列是从前往后遍历,接在比a[ i ] 小的元素后面;因为up[ i ]和dn[ i ]都包含了第i位元素,最终答案为最大的up[ i ]+dn[ i ]-1。五一到了,ACM队组织大家去登山观光,队员们发现山上一共有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的。队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么?

2024-05-07 22:46:34 467 1

原创 信息学奥赛一本通1282:最大子矩阵

遍历: 先确定上下边界,左右边界从1到n遍历,第 v 列的第 i 行到第 j 行的和为lie [ v ][ j ] - lie [ v ][ i - 1 ]。最小子矩阵为1 * 1,上下边界可以相等,左右边界也可以相等。动态规划:lie [ j ][ i ]表示第 j 列从第一行到第 i 行的数和。注意 需要全局变量或初始化为0,(全局变量自动初始化为0)下标从1开始。

2024-04-29 14:50:19 338

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除