04 2020 档案

摘要:问题: 给定序列$X,Y$,求最长公共子序列。 解析: 设$dp[i][j]$表示前$i$个$x$和前$j$个$y$的最长公共子序列。 $dp[i][j]=max(dp[i][j],dp[i-1][j],dp[i][j-1])$ 当前最长由前一个转移过来 $if(x[i]==y[j]) dp[i][ 阅读全文
posted @ 2020-04-28 22:06 Big-Kelly 阅读(154) 评论(0) 推荐(0)
摘要:问题: 设$n$个矩阵序列,其中第i个矩阵是$p[i-1]*p[i]$阶矩阵,给定矩阵链的向量$P$,求一种乘法次序,使得基本运算的总次数最小。 解析: 设$A[i][j]$为$\prod_{k=i}^{j}{a[k]}$ 设$F[i][j]$为$A[i][j]$的最少运算次数。 $F[i][j]= 阅读全文
posted @ 2020-04-21 15:30 Big-Kelly 阅读(180) 评论(0) 推荐(0)
摘要:题意: 给定 $n,m$,给定 $m$ 个无序对 $(a,b)$ 代表位置 $a$ 上的数字和位置 $b$ 上的数字进行比较。且这 $m$ 个无序对无重复。 让你寻找两个序列: 第一个序列由 $1 \sim n$ 组成,元素互不相同且唯一。 第二个序列,要满足和第一个序列对于 $m$ 个比较的结果相 阅读全文
posted @ 2020-04-14 22:09 Big-Kelly 阅读(153) 评论(0) 推荐(0)
摘要:题意: 有$n$件商品,每天可以卖一件,每件商品的售价是$p[i]$元,在$a$的倍数天可以获得$x$%的利润,在$b$的倍数天可以获得$y$%的利润,利润可叠加。 如果需要获得$k$的利润,问最少需要卖多少天。 思路: 二分答案。对于售价高的商品分配给前$mid$天中利润高的时间。 代码: 1 / 阅读全文
posted @ 2020-04-14 20:48 Big-Kelly 阅读(147) 评论(0) 推荐(0)
摘要:题意: 给一个序列,问有多少个区间的异或和大于等于$K$。 思路: 处理出前缀异或和。 对于每个区间$(l,r)$的异或和为$sum[l] $^$ sum[r]$。 对于每个$sum[i]$,如果大于$K$,$ans+1$。 在字典树上查询二进制的每一位。 ①$sum=1,k=1$:走$next[0 阅读全文
posted @ 2020-04-14 18:21 Big-Kelly 阅读(201) 评论(0) 推荐(0)
摘要:问题: 设$m$元钱,$n$项投资,函数$f[i][x]$表示将$x$元投入第i项项目所产生的效益,$i=1,2,…,n$.问:如何分配这$m$元钱,使得投资的总效益最高? 解析: 背包问题。 设$dp[i][j]$表示在前$i$个项目投入$j$元所产生的最大效益。 转移方程为: $dp[i][j] 阅读全文
posted @ 2020-04-13 21:40 Big-Kelly 阅读(197) 评论(0) 推荐(0)
摘要:题意: 给出一个序列$a[n]$和数字$x$,你可以选择任意一个区间把区间中的每个数乘上$x$。 问区间和的最大值是多少。 思路: $dp[i][0]$表示第i位在更新区间的前面,$dp[i][1]$表示在更新区间中,$dp[i][2]$表示在更新区间的后面。转移为: $dp[i][0]=max(0 阅读全文
posted @ 2020-04-13 20:15 Big-Kelly 阅读(144) 评论(0) 推荐(0)
摘要:题意: 有$n$个员工,$s$元钱,现在要给每个员工发工资。每个员工的工资的范围$(l_i,r_i)$,求所有员工的工资中位数的最大值。 思路: 二分答案,$check$的时候判断工资可以大于等于$mid$的员工个数,用最小代价购买之后判断总价钱会不会超出范围。 代码: 1 //#include<b 阅读全文
posted @ 2020-04-13 19:19 Big-Kelly 阅读(140) 评论(0) 推荐(0)
摘要:题意: 给出一个二维坐标系,求一个最大集合,使得集合中每两个点之间的距离不为整数。 思路: 先确定集合大小,因为点不能同行或者同列,所以集合大小最大为$min(n,m)+1$。 然后考虑对角线就好了,因为$(0,0)$不能选,所以考虑从$(0,min(n,m))$到$(min(n,m),0)$的点即 阅读全文
posted @ 2020-04-13 11:37 Big-Kelly 阅读(102) 评论(0) 推荐(0)
摘要:题意: 有两种操作: ① $1$ $l$ $r$ 表示区间$(l,r)$中不递减。 ② $0$ $l$ $r$ 表示区间$(l,r)$中存在递减。 要求构造这个序列。 思路: 对于$1,l,r$中的每一个数等于前一个数,其余的数$a[i]=a[i-1]-1$。 对于$0,l,r$判断$a[l]$和$ 阅读全文
posted @ 2020-04-13 11:01 Big-Kelly 阅读(148) 评论(0) 推荐(0)
摘要:题意: 给出一棵树,选一个节点作为根,使得所有子树的和最大,输出最大值。 思路: 换根$DP$。 代码: 1 //#include<bits/stdc++.h> 2 #include <set> 3 #include <map> 4 #include <stack> 5 #include <cmat 阅读全文
posted @ 2020-04-12 21:22 Big-Kelly 阅读(149) 评论(0) 推荐(0)
摘要:题意: 给一棵树,问有多少条边的长度大于$K$。 思路: 对于一个点$x$,处理出所有其他点到它的距离,$n^2$找出经过它的所有长度加起来大于$K$的点对的数量。 但是找到的这些点对中存在不经过点$x$的点对,则减去这些点对的数量,若$v$是$x$的子节点,$w$是$v$到$x$的距离,则减去距离 阅读全文
posted @ 2020-04-12 17:05 Big-Kelly 阅读(182) 评论(0) 推荐(0)
摘要:题意: 给一张有向图,可以把$k$条边的边权变成$0$,求点$1$到$n$的最短路。 思路: $dp$+$dijkstra$思想。 $dis[i][k]$表示点$1$到$i$实行了$k$次把边权变为$0$的操作之后的最短距离。转移为: $dis[v][k]=min(dis[v][k],dis[u][ 阅读全文
posted @ 2020-04-12 14:58 Big-Kelly 阅读(223) 评论(0) 推荐(0)
摘要:题意: 给定合法括号序列,可以给括号涂三种颜色:红色,蓝色,不上色。涂色需要满足以下两个要求: ①匹配括号必须一个上色一个不上色。 ②相邻括号不能上同一种颜色,但可以同时不上色。 求上色方案数。 思路: $dp[i][j][k][l]$表示区间$(i,j)$中$i$上颜色$k$,$j$上颜色$l$的 阅读全文
posted @ 2020-04-12 14:10 Big-Kelly 阅读(155) 评论(0) 推荐(0)
摘要:问题: 给出一个数组$a[n]$,求第$k$小元素是什么。 解析: 分治思想,将数组五个一组划分,并计算出每组数的中位数。然后把各组中位数的中位数找出。统计数组中小于中位数的个数$num$,有三种情况。 ① $num = k$,则中位数就是要查询的数。 ② $num > k$,则在小于中位数的集合中 阅读全文
posted @ 2020-04-07 21:49 Big-Kelly 阅读(223) 评论(0) 推荐(0)
摘要:题意: 给定一个序列,可以把左边任意长度为$i$的连续序列移动到最右边(不改变连续序列的顺序)。如: 原序列为:$a_1,a_2,a_3,...,a_i,a_{i+1},...,a_{n-1},a_n$ 移动后的序列为:$a_{i+1},a_{i+2},...,a_{n-1},a_n,a_1,a_2 阅读全文
posted @ 2020-04-06 12:09 Big-Kelly 阅读(112) 评论(0) 推荐(0)