DFS对于每个数选或不选进行递归即可
再用二进制记录一下选择过的数
主要还是dp的状态转移方程
拿一维作为走过哪些路,另一维表示现在站在哪个点上
然后再去枚举从哪个走过的点转移过来的
$dp[i][j]=min(dp[i][j],dp[i-(1<<j)][k]+a[k][j])$
需要注意的是初始状态,因为只能从0这个点转移过来,所以$dp[1][0]=0$
其他都需要被更新所以都赋值成正无穷
快速幂的加法版,拆分b即可,函数里不小心传了int一直WA,醉了
这题感觉该用unsigned long long,long long要是卡的话是可以卡掉的
但是评测了long long也是能过的
被$b=0,p=1$卡了,以后快速幂得注意了,返回ans时也要模p
补了一波美团2019春招的题目,据说这次美团的题目有点难QAQ,第三题的树形dp太恶心了,吃了没文化的亏。。。