(題目鏈結)
從無向圖圖上一點到達另一點,可以步行,搭公交或者是打的,不同的交通方式花的錢不同,當然消耗的時間也不同。求從起點s到終點t在花費的總錢數少於l的情況下的最短時間。
應yzc的邀請做了這道題,就是乙個分層圖最短路,轉移有點噁心。
注意初始化,以及公交車兩兩之間走的不是最短路,而是兩點之間的直接相連的邊。
// csuoj1014#include#include#include#include#include#include#include#include#define ll long long
#define inf 1000000000
#define pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std;
const int maxn=200,maxm=1010,maxw=3010;
struct edge e[maxm<<1];
struct data ;
int head[maxn],vis[maxn][maxw],t[maxn][maxn],n,m,s,t,b,l,cnt;
int dis[maxn][maxw],f[maxn][maxn],d[maxn][maxn];
vectorv[maxn];
queueq;
void link(int u,int v,int w)
void init()
void floyed()
void walk(data x) );
vis[e[i].to][x.w+e[i].w*3]=1;}}}
void bus(data x) );
vis[t[p][s]][x.w+6]=1;}}
} }}void taxi(data x) );
vis[i][w]=1;}}
}}void spfa(int s) );
while (!q.empty())
}int main()
for (int i=1;i<=b;i++)
} floyed();
spfa(s);
int ans=inf;
for (int i=0;i<=l;i++) ans=min(ans,dis[t][i]);
if (ans==inf) printf("no\n");
else printf("%d\n",ans);
} return 0;
}
PAT乙級 三人行
子曰 三人行,必有我師焉。擇其善者而從之,其不善者而改之。本題給定甲 乙 丙三個人的能力值關係為 甲的能力值確定是 2 位正整數 把甲的能力值的 2 個數字調換位置就是乙的能力值 甲乙兩人能力差是丙的能力值的 x 倍 乙的能力值是丙的 y 倍。請你指出誰比你強應 從之 誰比你弱應 改之 輸入在一行中...
1088 三人行 (20 分)
子曰 三人行,必有我師焉。擇其善者而從之,其不善者而改之。本題給定甲 乙 丙三個人的能力值關係為 甲的能力值確定是 2 位正整數 把甲的能力值的 2 個數字調換位置就是乙的能力值 甲乙兩人能力差是丙的能力值的 x 倍 乙的能力值是丙的 y 倍。請你指出誰比你強應 從之 誰比你弱應 改之 includ...
三人行我來領頭!
三人行我來領頭!三人行必有我師 這一經典的聖人聖言真可謂婦孺皆知,它教育人們一定要謙遜,是多少人遵崇並堅持修?的美德,它成就了多少人的美名,真是難以想象!但是,它也令多少人因為太過謙讓而與 成功失之交臂!謙虛的確是一項美德,但是,千萬別忘記 該出手時就出手 的梁山好漢歌。三人行必有我徒 太狂妄自大,...