矩阵取数游戏(区间DP + int128)
摘要:原题链接 https://ac.nowcoder.com/acm/problem/16645 思路 考虑后发现每一行独立,可以每一行单独算最大值,最后加起来即可,f[l][r]表示考虑第i行的l到r这个区间,能取到的最大值,这里可以记忆化搜索。转移方程为:f[l][r] = max(f[l + 1]
阅读全文
posted @
2021-05-18 21:20
Laurance
阅读(120)
推荐(0)
F.Four-tuples
摘要:原题链接 https://ac.nowcoder.com/acm/contest/123/F 思路 四个集合的容斥原理:|A∪B∪C∪D|=|A|+|B|+|C|+|D|-|A∩B|-|A∩C|-|A∩D|- |B∩C| - |B∩D| - |C∩D|+|A∩B∩C|+|A∩B∩D|+|A∩C∩D|
阅读全文
posted @
2021-05-07 16:38
Laurance
阅读(84)
推荐(0)
E.Sequence
摘要:原题链接 https://ac.nowcoder.com/acm/contest/123/E 思路 题意是给出一个序列和好数的定义,所谓好数就是对于一个数a[i],存在一个a[j](j < i),使得a[i] > a[j],就是在它前面如果有比它小的数,那它就是好数。那么对于一个序列,可以设置一个第
阅读全文
posted @
2021-05-07 16:33
Laurance
阅读(57)
推荐(0)
D.Dance
摘要:原题链接 https://ac.nowcoder.com/acm/contest/123/D 思路 题意比较复杂,大致意思是说给了一棵树,根节点是0号点,然后需要我们从叶节点开始往上走,每个节点都有一个价值和一个次数,我们每次往上走需要花费一个次数,问所有从叶节点开始往上走到根节点的路径价值之和是多
阅读全文
posted @
2021-05-07 15:43
Laurance
阅读(59)
推荐(0)
C.Cities
摘要:原题链接 https://ac.nowcoder.com/acm/contest/123/C 思路 题意是最少花费多大的代价可以将所有城市连通,在两个城市之间建一条路的花费是两个城市的价值之和,那么直接贪心即可,找出价值最小的城市,用它来连接所有城市即可。 代码 #include <iostream
阅读全文
posted @
2021-05-07 15:31
Laurance
阅读(67)
推荐(0)
A.Anagram
摘要:原题链接 https://ac.nowcoder.com/acm/contest/123/A 思路 题目的意思是说,最少经过多少次变化,能将一个串变为另一个串的相似串,相似串的意思是:两个串中同样的字母数相同,例如:ABCD和BADC。那么对于这个题看数据范围只有50可以轻易的想到暴力枚举即可,时间
阅读全文
posted @
2021-05-07 15:22
Laurance
阅读(64)
推荐(0)
小木棍(dfs + 剪枝)
摘要:原题链接 https://ac.nowcoder.com/acm/problem/50243 思路 这个题一开始考虑的是二分然后验证答案是否可行,但是后来发现要求的是最大长度的最小值,而且数据范围只有3000,所以可以从小到大枚举长度,第一次找到的就是最小的合法数据。首先来看以下性质: 1.枚举出来
阅读全文
posted @
2021-05-03 16:10
Laurance
阅读(179)
推荐(0)
背包(堆动态维护前后缀和 + 二分)
摘要:原题链接 https://ac.nowcoder.com/acm/problem/17315 思路 题意是从所有物品中选m个出来,使得物品中位数最大,那么可以先将物品组按照价值排序,然后枚举中位数是谁,这里要注意,如果m是奇数,那么直接枚举即可,如过是偶数,那么没办法直接枚举,因为此时中位数有两个,
阅读全文
posted @
2021-05-01 17:32
Laurance
阅读(83)
推荐(0)