矩阵拿宝物--Codeforces 1201D - Treasure Hunting Codeforces Round #577 (Div. 2)(二)
(R[posr])resl=min(resl,preresr+dis(posr,R[posr])+dis(R[posr],RV[i])+dis(RV[i],LV[i]));
//进行转移;
if(L[posl])resr=min(resr,preresl+dis(posl,L[posl])+dis(L[posl],LV[i])+dis(RV[i],LV[i]));
if(R[posl])resr=min(resr,preresl+dis(posl,R[posl])+dis(R[posl],LV[i])+dis(RV[i],LV[i]));
if(L[posr])resr=min(resr,preresr+dis(posr,L[posr])+dis(L[posr],LV[i])+dis(RV[i],LV[i]));
if(R[posr])resr=min(resr,preresr+dis(posr,R[posr])+dis(R[posr],LV[i])+dis(RV[i],LV[i]));
ans=min(resl,resr);
preresl=resl;
preresr=resr;
posl=LV[i];
posr=RV[i];
}
}
pr("%lld\n",ans);
return 0;
}
/**************************************************************************************/
int maxx(int a,int b)
{
return a>b?a:b;
}
void swapp(int &a,int &b)
{
a^=b^=a^=b;
}
int lowbit(int n)
{
return n&(-n);
}
int Del_bit_1(int n)
{
return n&(n-1);
}
int abss(int a)
{
return a>0?a:-a;
}
double fabss(double a)
{
return a>0?a:-a;
}
int minn(int a,int b)
{
return a<b?a:b;
}
|