[cpp]
#include<cstdio>
#include<cstring>
#include<queue>
#define M 1100
#define N 55
#define INF 100000000
using namespace std;
struct Edge{
int v,w,next;
}edge[M*2];
int head[N],cnt;
int n,m,k,K;
int st[N];
int dp[N][1100];
bool vis[N][1100];
int ans[1100];
queue<int>q;
void addedge(int u,int v,int w){
edge[cnt].v=v;
edge[cnt].w=w;
edge[cnt].next=head[u];
head[u]=cnt++;
edge[cnt].v=u;
edge[cnt].w=w;
edge[cnt].next=head[v];
head[v]=cnt++;
}
void init(){
int i,j;
K=1《(2*k);
cnt=0;
memset(head,-1,sizeof(head));
memset(st,0,sizeof(st));
memset(vis,0,sizeof(vis));
for(i=1;i<=n;i++)
for(j=0;j<K;j++)
dp[i][j]=INF;
for(i=1;i<=k;i++){
st[i]=1《(i-1);
dp[i][st[i]]=0;
}
for(i=1;i<=k;i++){
st[n-k+i]=1《(k+i-1);
dp[n-k+i][st[n-k+i]]=0;
[1] [2] 下一页