这东西刚开始学觉得很显然是对的但是又挺奇怪的
题意:
给一张图,有k个特殊点,问最少用多少边将这些点连起来(k<=10,n<=100)
题解:
令dp[i][j]表示以i点为根(因为路径一定是一颗树),扩展出状态j
那么转移方程就是dp[i][j]=min(dp[i][k]+dp[i][j^k]);
dp[i][j]=min(dp[x][j]+1) (v[x][i]存在)
我们会发现,第二种dp是不满足无后效性的
所以考虑用spfa来转移
代码: