codevs2800

3369 단어
보아하니, 상압은 먼저 플로이드로 최단로를 뛰쳐나와 dp에 존재한다. 그리고 dp1상압을 사용한다. 만약 당신이 현재 점 i에서 점 j 상태를 s로 바꾸면 |(1<dp1s|(1<#include #include #include using namespace std; int dp[16][16]; int dp1[1<<16][16]; int main() { int n; cin>>n; //memset(dp,-0xff,sizeof(dp)); memset(dp1,-0xff,sizeof(dp1)); for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) cin>>dp[i][j]; for(int k=0;k<=n;k++) for(int i=0;i<=n;i++) if(i!=k) for(int j=0;j<=n;j++) { if(j!=i&&j!=k) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]); } int len=(1<1))-1; for(int i=0;i<=n;i++) dp1[1<0][i]; for(int s=0;sfor(int i=0;i<=n;i++) for(int j=0;j<=n;j++) { dp1[s|(1<1<cout<0]; return 0; }

좋은 웹페이지 즐겨찾기