04 2020 档案

摘要:算法分析设计实践——最长公共子序列 1.问题 对于序列a和序列b,求其最长公共子序列 2.解析 通过动态规划的方式 dp[i][j] 前i个字符的x和前j个字符的y的最长公共子序列 当a[i] = b[j] 的时候 dp[i][j] = max(dp[i][j] , dp[i - 1][j - 1] 阅读全文
posted @ 2020-04-28 23:52 当然是斗笠呀 阅读(254) 评论(0) 推荐(0)
摘要:问题: 设N个矩阵序列,其中第i个矩阵式p[i - 1] * p[i]阶矩阵,给定矩阵的向量P,求一种乘法次序,使得基本运算总次数最小 解析: 设A[i][j] 为 ∏jk = ia[k] 设cnt[i][j]为A[i][j]的最少运算次数 cnt[i][j] = min(cnt[i][k] + c 阅读全文
posted @ 2020-04-21 23:37 当然是斗笠呀 阅读(250) 评论(0) 推荐(0)
摘要:Rotate Columns (easy version) 题意: 每一列的数字能够进行循环位移,问每一行最大值的和最大是多少 思路: 数据量较小,暴力模拟出每一种情况,然后取最大值即可 一开始想用贪心的思路去做,每次取总体增量最大 然后发现有一种情况会导致错误 第一种: 6 7 6 7 6 7 第 阅读全文
posted @ 2020-04-15 20:18 当然是斗笠呀 阅读(216) 评论(0) 推荐(0)
摘要:Save the Nature 题意: 在第n * a张卖掉的电影票能够提供x%的收益 在第n * b张卖掉的电影票能够提供y%的收益 问收益为k时,最少需要卖多少张电影票 思路: 二分一下答案就好了 1 #include<cstdio> 2 #include<cstring> 3 #include 阅读全文
posted @ 2020-04-15 20:10 当然是斗笠呀 阅读(198) 评论(0) 推荐(0)
摘要:Similar Arrays 题意: 题目要构造两个序列 A序列每个数字都不相同,B序列只有两个相同的数字 给M组关系 i ,j表示 ai > aj 或者 ai < aj 同时B序列有这个和A序列一样的关系 如果 ai > aj 就有 bi > bj 思路: 首先考虑不能构造的情况 ,如果A序列中任 阅读全文
posted @ 2020-04-15 20:01 当然是斗笠呀 阅读(156) 评论(0) 推荐(0)
摘要:1.问题 设m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的相依 I = 1 , 2 …. N 问:如何分配这m元钱,使得投资的总效益最高。 2.解析 1.我们设dp[i][j]为前i个项目花费j元所能得到的最大收益 2.假设我们分配个第i个项目k元, 那么实际上前i-1个项目一共得 阅读全文
posted @ 2020-04-14 20:27 当然是斗笠呀 阅读(609) 评论(0) 推荐(0)
摘要:Beautiful Array 题意: 给你一个序列,可以让一个区间 * k , 也可以不乘 ,让序列的区间和最大 思路: 动态规划 dp[1] 表示当前节点当前节点更新区间之前 , dp[2] 表示当前节点在更新区间中, dp[3]表示当前节点已经在更新区间之后 1 #include<cstdio 阅读全文
posted @ 2020-04-13 22:01 当然是斗笠呀 阅读(176) 评论(0) 推荐(0)
摘要:Salary Changing 题意: 有n个员工,每个员工的薪资区间为[li , ri] 问员工薪资的中位数最大是多少。 思路:二分答案,check()检查薪资 >= mid 的人数 >= n/2 + 1 则返回 true , 不然返回 false 1 #include<cstdio> 2 #in 阅读全文
posted @ 2020-04-13 21:56 当然是斗笠呀 阅读(248) 评论(0) 推荐(0)
摘要:Beautiful Sets of Points 题意: 给n和m,有一个点集满足0 <= x <= n && 0 <= y <= m 求任意两个点之间的距离不是整数的最大点集 思路: 取n和m的最小值,输出正方形(min(n , m ) , min(n ,m))的对角线就可以了 (x , y 不能 阅读全文
posted @ 2020-04-13 21:52 当然是斗笠呀 阅读(147) 评论(0) 推荐(0)
摘要:Vasya And Array 题意: 给你一个序列,再给你一些区间 t = 1时说明这些区间时非递减的 t = 0 时说明这些区间至少有一对数字 arr[i] > arr[i - 1] 思路: 只要左边的区间必然右边的区间大就好了 , 非递减区间中的数字都赋值为一样的数字 因为n只有1000 , 阅读全文
posted @ 2020-04-13 21:45 当然是斗笠呀 阅读(157) 评论(0) 推荐(0)
摘要:A - Vus the Cossack and Numbers 题意: 给你一些实数,可以向上取证也可以向下取整,要求取整之后序列的和为零 思路: 把能向下取整的数字全部向下取取整(已经是整数的数字是不能向下取整的),然后看总和比零小多少,再把一些数字改成向上取整的 1 #include<cstdi 阅读全文
posted @ 2020-04-13 21:36 当然是斗笠呀 阅读(183) 评论(0) 推荐(0)
摘要:Magical Girl Haze 思路: 分层最短路的实质是dp思想 + 最短路。 在跑最短路的过程中,我们可以选择将某一条边的代价变成零,但是最多只能使用k次 dis[i][j]表示到达点i使用j次免费机会的最小代价 这样就有状态转移方程 dp[i][j] = min(dp[from][j] + 阅读全文
posted @ 2020-04-12 23:04 当然是斗笠呀 阅读(225) 评论(0) 推荐(0)
摘要:1.问题 l 通过分治策略,选取第k小元素。 2.解析 通过快速排序和分治的思想,每次随机选取主元,判断小于主元的元素的个数,如果个数大于k则递归寻找左半段,如果个数小于k则递归寻找右半段 3.设计 1 int find_kth(int l, int r, int k) { 2 3 if (l == 阅读全文
posted @ 2020-04-06 23:50 当然是斗笠呀 阅读(781) 评论(0) 推荐(0)