上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 18 下一页
摘要: Poj AcWing Description Sol 这题长得就比较像数位$DP$叭. 所以先用$DP$进行预处理,再基于拼凑思想,通过"试填法"求出最终的答案. 设$F[i][3]$表示由$i$位数字构成的魔鬼数有多少个,$F[i][j](0<=j<=2)$表示由$i$位数字组成的,开头有$j$个 阅读全文
posted @ 2019-07-27 22:46 DTTTTTTT 阅读(196) 评论(0) 推荐(0) 编辑
摘要: Poj AcWing Description 给定一个长度为N的序列 A,要求把该序列分成若干段,在满足“每段中所有数的和”不超过M的前提下,让“每段中所有数的最大值”之和最小. N<=105,M<=1011,0<Ai<=106 Sol 一篇比较清楚的题解 $OvO$ $F[i]$表示把前$i$个数 阅读全文
posted @ 2019-07-27 11:43 DTTTTTTT 阅读(159) 评论(0) 推荐(0) 编辑
摘要: AcWing Description Sol 设f[i][j]表示前i个饲养员接走前j只猫咪的最小等待时间. 要接到j猫咪,饲养员的最早出发时间是可求的,设为d: $ d[j]=Tj-\sum_{k=1}^{Hi}Dk$ 然后把d从小到大排序并且求出前缀和s.注意到,一个饲养员带走的猫咪一定是按d排 阅读全文
posted @ 2019-07-27 08:38 DTTTTTTT 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 任务安排1 1≤N≤5000,1≤S≤50,1≤Ti,Ci≤100 朴素做法: $f[i][j]=min\ {f[k][j-1]+(S*j+sumT)*(sumC[i]-sumC[k])}$ 复杂度为$O(N^{3})$ 优化: "费用提前计算思想" 发现每重新启动一次,由于启动而增加的总费用是可以 阅读全文
posted @ 2019-07-26 21:24 DTTTTTTT 阅读(261) 评论(0) 推荐(0) 编辑
摘要: Poj Acwing Description 有N块木板等待被M个工匠粉刷,每块木板至多被刷一次.第i个工匠要么不粉刷,要么粉刷包含木块Si的,长度不超过Li的连续的一段木板,每粉刷一块可以得到Pi的报酬.求如何安排能使工匠们获得的总报酬最多. 1<=N<=16000,1<=M<=100 Sol 先 阅读全文
posted @ 2019-07-26 10:01 DTTTTTTT 阅读(136) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-07-26 08:02 DTTTTTTT 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 很基本很基本的基本算法QwQ 阅读全文
posted @ 2019-07-25 15:52 DTTTTTTT 阅读(526) 评论(0) 推荐(0) 编辑
摘要: ACWing Description 给定一个长度为N的数列A以及一个整数T.我们要把A分成若干段,使得每一段的'校验值'都不超过N.求最少需要分成几段. Sol 首先是校验值的求法: 要使得'每对数的差的平方'之和最大,显然就是先排序,然后取最大和最小为一对,次大和次小为一对..... 然后是问题 阅读全文
posted @ 2019-07-24 19:09 DTTTTTTT 阅读(219) 评论(6) 推荐(0) 编辑
摘要: Poj Description 给定一个长度为n的序列a,如果只允许进行比较和交换相邻两个数的操作,求至少需要多少次交换才能把a从小到大排序. Sol 只允许比较和交换相邻两个数,就是冒泡排序算法. 只有在前者大于后者的时候才会交换相邻两个数,也就是每交换一次逆序对就减少一个 最后序列排序完毕后,逆 阅读全文
posted @ 2019-07-24 15:18 DTTTTTTT 阅读(171) 评论(0) 推荐(0) 编辑
摘要: Poj Description 动态维护中位数问题 Sol "对顶堆"的在线做法 建立两个二叉堆,一个大根堆一个小根堆 在依次读入这个整数序列的过程中,设当前序列为l,要始终保证: 1.序列中从小到大排名为1~l/2的整数存在大根堆中 2.序列中从小到大排名为l/2+1~l的整数存在小根堆中 每次插 阅读全文
posted @ 2019-07-24 11:41 DTTTTTTT 阅读(166) 评论(1) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 18 下一页