摘要:
题目链接 思路 $dp[i]:$表示以$i$为结尾的所有方案数。 假设前一位数是$j$,再前一位数是$k$,连续的三个数满足条件$k<j<i$,那么当$k=i \bigoplus j$时便是不合法的方案,需要减去。所以可以列出这样的$dp$方程:\(dp[i]=\sum_{j=1}^{i-1}(dp 阅读全文
摘要:
题目链接 参考题解链接 思路 最基本的$dp$状态转移方程都能推。 $dp[i][j]:$到第$i$个数,前缀和为$j$的所有方案数。 考虑第$a_i$的两种选择方式: 1、当$a_i=b_i$时,前缀和为$j$时: \(dp[i][j]=dp[i-1][j-b_i](-inf \leq j \le 阅读全文
摘要:
题目链接:https://codeforces.com/contest/1446/problem/C 思路 一个数字选择异或最小的,对于当前位,一定选择数字相同的,例如3的第一位为000000000000000011,那么第一位尽可能地选择0. 可以注意到从高位到低位,如果一个位上既有0又有1,那么 阅读全文
摘要:
CCPC2020-绵阳-重现赛邀请码 dce06e265b24ad49 题目链接:https://pintia.cn/problem-sets/1322796904464203776/problems/1322798545527595019 参考题解:链接 思路 对于一个连续的段,例如样例 1 1 阅读全文
摘要:
题目链接https://atcoder.jp/contests/arc107/tasks/arc107_d 题目描述 用N个数使得其总和等于K,这些数必须是$\frac{1}{2^i}(i=0,1,2,...,n)$的其中一个。 思路 \(dp[i][j]\):取i个数,和为k的所有方案数。 对于取 阅读全文
摘要:
hdu2222 - Keywords Search 思路 AC自动机的模板题 代码 #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int, int> PII; const int N = 阅读全文
该文被密码保护。 阅读全文
摘要:
题目链接:https://codeforces.com/contest/1459/problem/D 思路 根据数据范围想到了背包。 \(dp[i,j,k]\):到第i个物品,已经选择j个,选择杯子的容量之和为k时,所有杯子中已有水量的最大值。 考虑选或者不选: \(dp[i,j,k]=max(dp 阅读全文
摘要:
题目链接 思路 因为前提条件$i$&\(j==0\),所以i和j的任意一位最高位一定不同,那么$log_2^{i+j}$就相当于看i或者j最高位为1在第几位,然后计算贡献。 转化为二进制考虑每一位的情况,数据范围只到1e9,考虑通过数位dp来得到所有方案数。如果没有两个位数不一样的其实可以当作默认把 阅读全文
该文被密码保护。 阅读全文