贤者之石 T435273
思路:
一维线性DP,dp[i]表示以i结尾的最大值,dp[i]=max(1,dp[sqrt(i)]+1);
琪露诺的位运算教室 T435274
思路:
数论题,尝试打表,a[i][j]为i&j是否大于等于i^j。
1 0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0
发现规律,枚举即可。
优秀的拆分 T435275
思路:
数论题,发现因数,考虑分解质因数。
设 i 为 n 的最小值质因数
若 n 中有3个以上i f[n]=0;
2 个 f[n]=f[n/i/i];
1 个 f[n]=f[i]*2;
递推即可
阴阳调和 T435276
思路:
区间dp, 需仔细推转移方程 注: a[i]为第i个连续1/0的长度,c[i]为第i个的颜色(0,1);
dp[i][j]为合并i至j的代价。
dp[i][j]=dp[i][k]+dp[k+1][j];
if(c[i]c[j]) dp[i][j]=dp[i+1][j-1]+(a[i]+a[j]2?1:0);
if(c[i]c[k]&&c[k]c[j]&&a[k]+min(a[i],a[j])==2)dp[i][j]=dp[i+1][k-1]+dp[k+1][j-1];