題:
題意:求減掉最長邊加上最短邊的最短路
分析:多出了倆維,第一維0/1:是否去掉這條邊,第二維0/1:是否加上這條邊,答案就是套上dij後的dis[ i ] [ 1 ] [ 1 ]
#includeusingview codenamespace
std;
#define pb push_back
#define mp make_pair
#define um unordered_maptypedef
long
long
ll;const
int mod=1e9+7
;const
int inf=0x3f3f3f3f
;const ll inf=1e18;
#define pi 3.1415926535898
#define dec (pi/180)
#define lson root<<1,l,midd
#define rson root<<1|1,midd+1,r
#define lc root<<1
#define rc root<<1|1
const
int m=2e5+5
;ll dis[m][
2][2
];int book[m][2][2
];vector
< pair >g[m];
void
pn()
void
py()
struct
node
bool
operator
< (const node &b)const
};priority_queue
que;
void dij(int
n)
if(f0==0&&dis[v][1][f1]>cost)
if(f1==0&&dis[v][f0][1]>cost+2*w)
if(f0==0&&f1==0&&dis[v][1][1]>cost+w)}}
}int
main()
dij(n);
for(int i=2;i<=n;i++)
printf(
"%lld
",dis[i][1][1
]);
return0;
}
C語言中 s, 5 3s, e, 10 2e的意思
前兩個都是s格式符,用來輸出字串。m.ns 輸出佔m列,但只取字串中左端n個字元。這n個字元輸出在m列的右側,左補空格。include stdafx.h include include int main 輸出結果 後兩個都是e格式符,以指數形式輸出實數。1.e 不指定輸出資料所佔的寬度和數字部分的小...