TC SRM 573 (二)

2014-11-24 07:22:09 · 作者: · 浏览: 1
for(int i=0;i
w[i]=h[i];
sort(w,w+n);
bool in[n];mem(in,false);
mem(dp,-1);
for(int i=0;i
dp[0][i]=abs(h[0]-w[i]);
queueque;
que.push(0);
in[0]=true;
while(!que.empty()){
int u=que.front();
que.pop();
in[u]=false;
for(int i=0;i
if(r[u][i]=='N') continue;
for(int j=0;j
for(int k=0;k<=j;k++){
if(dp[i][k]==-1||dp[i][k]>dp[u][j]+abs(h[i]-w[k])){
dp[i][k]=dp[u][j]+abs(h[i]-w[k]);
if(in[i]==false){
in[i]=true;
que.push(i);
}
}
}
}
}
}
LL ans=-1;
for(int i=0;i
if(dp[n-1][i]!=-1){
if(ans==-1||dp[n-1][i]
ans=dp[n-1][i];
}
return ans;
}
}
class SkiResorts
{
public:
long long minCost(vector r, vector h)
{
int n=h.size();
int w[n];
LL dp[n][n];
for(int i=0;i
w[i]=h[i];
sort(w,w+n);
bool in[n];mem(in,false);
mem(dp,-1);
for(int i=0;i
dp[0][i]=abs(h[0]-w[i]);
queueque;
que.push(0);
in[0]=true;
while(!que.empty()){
int u=que.front();
que.pop();
in[u]=false;
for(int i=0;i
if(r[u][i]=='N') continue;
for(int j=0;j
for(int k=0;k<=j;k++){
if(dp[i][k]==-1||dp[i][k]>dp[u][j]+abs(h[i]-w[k])){
dp[i][k]=dp[u][j]+abs(h[i]-w[k]);
if(in[i]==false){
in[i]=true;
que.push(i);
}
}
}
}
}
}
LL ans=-1;
for(int i=0;i
if(dp[n-1][i]!=-1){www.2cto.com
if(ans==-1||dp[n-1][i]
ans=dp[n-1][i];
}
return ans;
}
}