A
只有三列且只有相邻行有限制
状压dp,f[i][s]表示考虑到i行,i行状态为s的方案数
直接转移的话复杂度是(O(192n^2)),过不去
考虑优化些细节
1.预处理合法关系转移
2.状态剪枝
3.循环展开
4.优化以上三点后在约束矩阵不为000 010 000这种情况下跑的还是很快的,合法转移只有不到三十对。
把最劣情况拎出来,用组合数直接算。被部分分提醒了
PS:注意空间
B
01分数规划,考场上憨憨了
k=B/A,B=Ak,最大化k,只要判断B-Ak?0,用网络流可以求解。
如果暴力建图点数是m级别,类似人员雇佣的优化思路
S向i连代价,m对i j双向连收益,i向T连所以关联i的收益和
发现割舍收益的话一定是割两条边,所以把代价乘2
这样点数n,边数n+m级别
我的代码加个当前弧才能过。
C
求(sumlimits_{i=1}^n 2^{f(i)}),(f(i))为(i)的不同质因子个数。n<=1e12
含义转化,相当于把(i)的所有质因子分成两组且相同质数在同一个集合的方案数
所以$$Ans=sumlimits_{i=1}^n sumlimits_{d|i}[gcd(d,frac{i}{d})]$$
莫比乌斯反演
[=sumlimits_{i=1}^nsumlimits_{d|i}sumlimits_{p|d & p|frac{i}{d}}mu(p)
]
[=sumlimits_{i=1}^nsumlimits_{p^2|i}d(frac{i}{p^2})mu(p)
]
[=sumlimits_{p=1}^{sqrt n}mu(p)sumlimits_{i=1}^{frac{i}{p^2}}frac{n}{p^2i}
]