摘要: 这道题求取的本质是二进制不进位加法的队数,因此模型比较常见,因为我们不太会维护有下界的数位dp 所以往往使用容斥原理变成无下界的dp #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, 阅读全文
posted @ 2020-10-30 23:12 朝暮不思 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 常规做法,看出是破环成链后用哈希维护,只要枚举前k位,之后往后跳n次,看看是不是都有满足条件的字符串 注意,每个字符串只能用一次,因此还需要额外维护一个map表示是否已经使用 cf的数据比较强,卡了单哈希也卡了加法双哈希,因此用pll维护哈希即可 #include<bits/stdc++.h> us 阅读全文
posted @ 2020-10-30 18:12 朝暮不思 阅读(110) 评论(0) 推荐(0) 编辑
摘要: https://zhuanlan.zhihu.com/p/268630329 在知乎上有位网友总结出来一种贪心套路 这题的本质上是对于每对数,要将ai放入A集合或者把bi放入B集合 最后求min(MAX(A)+MAX(B)),因此采用排序后,保留合适的值 之后枚举每种可能答案即可 #include< 阅读全文
posted @ 2020-10-30 15:20 朝暮不思 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 暴力的做法就是枚举每一位选什么,但是过于暴力,我们只需要记忆化搜索一下,表示之后的有没有算过即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=5e5+10; const int mod= 阅读全文
posted @ 2020-10-30 10:34 朝暮不思 阅读(65) 评论(0) 推荐(0) 编辑