摘要:
题意:给出一个长度为$n$的序列$a$,根据$a$构造一个序列$b$,要求: 1.\(b_{1}=0\) 2.对于$i,j(i\le i,j \le n)$,若$a_=a_$,则$b_=b_$ 3.对于$i\in [1,n-1]$,有$b_{i+1}=b_$或$b_{i+1}=b_+1$ 阅读全文
posted @ 2020-09-05 18:26
_Kolibri
阅读(141)
评论(0)
推荐(0)
摘要:
题意:给你一个长度为$3*n$的字符串,要求修改最少的次数,使得字符串中$0,1,2$的个数相同,并且在最少次数的情况下使字典序最小. 题解:贪心,$0$一定放在前面,$1$和$2$放后面,首先统计$0,1,2$的个数,因为题目要求字典序最小,所以我们先从左边开始遍历,如果$2$的个数大于$n/3$ 阅读全文
posted @ 2020-09-05 18:02
_Kolibri
阅读(253)
评论(0)
推荐(0)
摘要:
题意:有$n$扇门,你每次可以攻击某个门,使其hp减少$x$($\le 0$后就不可修复了),之后警察会修复某个门,使其hp增加$y$,问你最多可以破坏多少扇门? 题解:首先如果$x>y$,那么我肯定全部都能破坏,否则,统计$hp\le x$的门的个数,谁先碰门谁先赢,而我是先手,所以能破坏的门的个 阅读全文
posted @ 2020-09-05 17:52
_Kolibri
阅读(202)
评论(0)
推荐(0)
摘要:
题意:给你$n$个数字,用$k$种颜色给他们涂色,要求每个数字都要涂,每种颜色都要用,相同的数字不能涂一样的颜色. 题解:用结构体读入每个数字和它的位置,然后用桶记录每个数字出现的次数,判断是否合法,然后对数字进行排序,从$[1,k]$不断循环的去涂颜色,这样的好处是一定能保证相同数字涂的颜色不同, 阅读全文
posted @ 2020-09-05 17:43
_Kolibri
阅读(168)
评论(0)
推荐(0)
摘要:
题意:有一个$n$X$m$的图,"#"表示障碍物,"."表示道路,只能向右或向下走,问从左上角走到右下角的方案数. 题解:这题可以用bfs来搞,但dp更简单点吧~~.首先,只有当向右和向下都能走时,方案数才会增加,我们用dp表示从起点走到某个单位的方案数,这个单位只能从左边或上边走过来,所以它的方案 阅读全文
posted @ 2020-09-05 17:33
_Kolibri
阅读(161)
评论(0)
推荐(0)
摘要:
题意:给你一张DAG,求图中的最长路径. 题解:用拓扑排序一个点一个点的拿掉,然后dp记录步数即可. 代码: int n,m; int a,b; vector<int> v[N]; int in[N]; int dp[N]; int main() { //ios::sync_with_stdio(f 阅读全文
posted @ 2020-09-05 17:23
_Kolibri
阅读(189)
评论(0)
推荐(0)
摘要:
题意:有两个字符串,求他们的最长公共子序列并输出. 题解:首先跑个LCS记录一下dp数组,然后根据dp数组来反着还原路径,只有当两个位置的字符相同时才输出. 代码: char s[N],t[N]; int dp[10000][10000]; int main() { //ios::sync_with 阅读全文
posted @ 2020-09-05 17:20
_Kolibri
阅读(196)
评论(0)
推荐(0)
摘要:
题意:有$n$个物品,第$i$个物品价值$v_$,体积为$w_$,你有容量为$W$的背包,求能放物品的最大价值. 题解:经典01背包,但是物品的最大体积给到了$10^9$,dp数组下标会造成越界,因此我们不能用dp下标来存物品的体积,但是我们发现,物品的价值范围很小,所以我们反着想,枚举所有可能的总 阅读全文
posted @ 2020-09-05 16:14
_Kolibri
阅读(135)
评论(0)
推荐(0)

浙公网安备 33010602011771号