专栏文章
8.21
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mio790j8
- 此快照首次捕获于
- 2025/12/02 14:30 3 个月前
- 此快照最后确认于
- 2025/12/02 14:30 3 个月前
T1
题目大意:
给定两个数l,r,每次求出l~r总共发生变化的数字位数
正解:
每次统计个位数要变几次,然后l和r都除以10直到r=0
T2
题目大意:
给定n个结构体,里面分别有两个数x,y,选若干个结构体,在x总和=y的总和的情况下,求x总和+y的总和最大值
原思路:
暴力dfs
正解:
每个数有两种选择方式,所以是01背包,dp[i][j]代表前n个结构体,x、y的差为j,最大总和
dp[i][j]可能由dp[i-1][j]直接更新,也可能是由dp[i][j-x、y的差]+x、y的和更新,找两个中的最大值。
差可能是负数,所以要偏移
T3
题目大意:
给定一个数组,相同的数为一个连通块,每次更改能更改一个连通块,算出最少次数
原思路:
无,没有想到怎么写
正解:
序列dp,先算出每个数对应的连通块,发现n只能支持双重循环,所以就枚举开头和长度,如果开头和结尾的连通块相同,那就是他们两个中间的序列的次数+1,如果不同就看开头+1~结尾和开头~结尾-1的次数+1
T4
题目大意:
给定 n 个元素和一个二维数组,有p个位置,需要各对应一个元素(每个编号对应二维中的一个值),再从剩余中选 k 个作为对应其他。求总数值的最大值
原思路:
暴力dfs
正解:
dp[i][j]:已选取i个数,选取的位置状态为j。
先按每个元素从大往小排序,枚举每个i和j,什么都不做就是dp[i-1][j],如果还能选的数+k>=i,那就做观众,枚举每种做队员的编号dp[i][j]就是最大的上一种情况(dp[i-1][j^(1<<位置)])+贡献。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...