摘要: 题目链接 题解 可以发现,如果$a_i>x$且不对$a_i$执行操作,$a_{i+1}-a_n$便无法执行操作。这个性质可以保证下述方法的正确性与最优性: 找到第一个满足$a_$之后序列单调不降的$pos$,依次对所有$1\le i\le pos$且$a_i>x$的元素将$x$与$a_i$互换。因为 阅读全文
posted @ 2020-12-20 10:58 violet_holmes 阅读(64) 评论(1) 推荐(1) 编辑
摘要: 题目链接 题解 LCS就是经典的dp问题,所以看到这道题时觉得大概与LCS差不多,只是多加一些条件罢了。 LCS的转移方程:\(dp[i][j]= \begin{cases} max(dp[i-1][j],dp[i][j-1]) \quad a[i]!=a[j] \\ dp[i-1][j-1]+1 阅读全文
posted @ 2020-12-20 10:56 violet_holmes 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题解 由题易得,当$p<q$或$p%q\not=0$时$x=p$。 其他情况:先使$x=p$ 将$p$分解为$k_1^\cdot k_2^\cdot k_3^...\cdot k_m^$,若将$k$中任意一个满足$k_i^|p$的$k_i$,使$x$中$k_i$的幂数$\le n_i$,则 阅读全文
posted @ 2020-12-20 10:54 violet_holmes 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 题解 由题意得,每一个节点仅经过一条边可以到达的节点一定是递增的。因此可以将bfs序列分成若干个递增序列,然后模拟建树。 AC代码 #include<bits/stdc++.h> using namespace std; const int N=2e5+10; int a[N],len[N]; in 阅读全文
posted @ 2020-12-20 10:49 violet_holmes 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题解 如果贪心(尽量选择$t_i$)的话会在一些情况下WA,如:$1,2,3,3,3,4,5$,因此是dp啦。 $dp[i][j]$表示前$i$个时刻做前$j$道菜的最小不美味值。 转移方程:\(dp[i][j]=min(dp[i-1][j],dp[i-1][j-1]+abs(i-t[i] 阅读全文
posted @ 2020-12-20 10:48 violet_holmes 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题解 这道题$10^5$的数据范围显然不可以用图论,因此是贪心和dp中的一种,可是在单个子问题中最优的方案不一定满足全局最优,所以只能用dp。 $dp[i]$表示前$i$个人中可以拍下的最大人数(必须选择第$i$个人)。转移则在所有可以到达$i$的点中选取$dp$值最大即可,转移方程:\( 阅读全文
posted @ 2020-12-20 10:46 violet_holmes 阅读(57) 评论(0) 推荐(0) 编辑