團體程式設計天梯賽 周遊世界(最短路)

2021-08-16 21:59:26 字數 3907 閱讀 5135

思路: 寫了好多版本, 都是按照點的關係入隊, 不知道怎麼會錯就是看該點是否是換乘點。。。。。後來按照邊的關係入隊之後就過了, dis[ci][si]:源點到si這個站點時,最後經過的一條路線是屬於公司ci的,然後就是記錄兩個資訊:經過的站點數還有換乘的次數, 按照最短路那樣更新就好了。

#includeconst int maxn = 1e2 + 5;

const int maxm = 1e4 + 5;

const int inf = 1e9 + 10;

using namespace std;

struct p

p(int n, int l, int d, int t) : now(n), las(l), dis(d), tot(t) {}

bool operator < (p p) const

};typedef pairpa;

int tot[maxn], rec[maxn][maxn];

int n, m, t, kase = 1, num;

mapmp;

int vis[maxm];

pa flag[maxn][maxm], dis[maxn][maxm];

int val[maxm];

vectorgx[maxm];

pa sta;

int dijkstra(int ss, int st)

}priority_queueque;

for(int i = 0; i < gx[ss].size(); i++)

while(!que.empty())

for(int i = 0; i < gx[s].size(); i++)

}return inf;

}int main()

for(int j = 0; j < tot[i] - 1; j++)

}num = cnt;

int q; scanf("%d", &q);

while(q--)

printf("%d\n", ans1);

while(sta.first != -1)

int ssz = vec.size();

for(int i = ssz - 1; i >= 0; i--)

for(int i = 0; i < ans.size(); i++)

printf("go by the line of company #%d from %04d to %04d.\n", ans[i].now, ans[i].las, ans[i].dis);}}

return 0;

}/**

#includeconst int maxn = 1e2 + 5;

const int maxm = 1e4 + 5;

const int inf = 1e9 + 10;

using namespace std;

struct p

p(int n, int l, int d) : now(n), las(l), dis(d) {}

bool operator < (p p) const

};typedef pairpa;

int tot[maxn], rec[maxn][maxn];

int n, m, t, kase = 1, num;

mapmp;

vectorg[maxm], pre[maxm];

int vis[maxm];

pa flag[maxn][maxm];

int val[maxm];

int dis[maxn][maxm];

vectorgx[maxm];

int bfs1(int s, int t)

vis[s] = 0;

queueque; que.push(s);

while(!que.empty())

}return vis[t];

}pa sta;

void solve(int s, int t, int st)

}for(int i = 0; i < g[s].size(); i++)

while(!que.empty())

for(int i = 0; i < pre[u].size(); i++) }}

}int main()

for(int i = 1; i <= n; i++)

for(int j = 0; j < tot[i] - 1; j++)

}num = cnt;

int q; scanf("%d", &q);

while(q--)

printf("%d\n", ans1);

solve(toid, fromid, ans1);

while(sta.first != -1)

int ssz = vec.size();

for(int i = 0; i < vec.size(); )

for(int i = 0; i < ans.size(); i++)

printf("go by the line of company #%d from %04d to %04d.\n", ans[i].now, ans[i].las, ans[i].dis);}}

return 0;

}#includeconst int maxn = 1e2 + 5;

const int maxm = 1e4 + 5;

const int inf = 1e9 + 10;

using namespace std;

struct p

p(int n, int l, int d, int t) : now(n), las(l), dis(d), tot(t) {}

bool operator < (p p) const

};typedef pairpa;

int tot[maxn], rec[maxn][maxn];

int n, m, t, kase = 1, num;

mapmp;

vectorg[maxm];

pa flag[maxn][maxm], dis[maxn][maxm];

int val[maxm];

vectorgx[maxm];

pa sta;

int dijkstra(int s, int t)

}priority_queueque;

for(int i = 0; i < g[s].size(); i++)

while(!que.empty())

for(int i = 0; i < gx[si].size(); i++) }}

}int main()

for(int i = 1; i <= n; i++)

for(int j = 0; j < tot[i] - 1; j++)

}num = cnt;

for(int i = 1; i < num; i++) gx[i].push_back(i);

for(int i = 1; i < num; i++)

int q; scanf("%d", &q);

while(q--)

printf("%d\n", ans1);

while(sta.first != -1)

int ssz = vec.size();

for(int i = ssz - 1; i >= 0; i--)

for(int i = 0; i < ans.size(); i++)

printf("go by the line of company #%d from %04d to %04d.\n", ans[i].now, ans[i].las, ans[i].dis);}}

return 0;

}*/

團體程式設計天梯賽

l1 001 hello world l1 002 列印沙漏 l1 009 n個數求和 l1 010 比較大小 l1 011 a b l1 013 計算階乘和 l1 014 簡單題 l1 015 跟歐巴馬一起畫方塊 l1 016 查驗身份證 l1 017 到底有多二 l1 020 帥到沒朋友 l1 ...

團體程式設計天梯賽 05

每個pat考生在參加考試時都會被分配兩個座位號,乙個是試機座位,乙個是考試座位。正常情況下,考生在入場時先得到試機座位號碼,入座進入試機狀態後,系統會顯示該考生的考試座位號碼,考試時考生需要換到考試座位就座。但有些考生遲到了,試機已經結束,他們只能拿著領到的試機座位號碼求助於你,從後台查出他們的考試...

團體程式設計天梯賽 18

微博上有個自稱 大笨鐘v 的傢伙,每天敲鐘催促碼農們愛惜身體早點睡覺。不過由於笨鐘自己作息也不是很規律,所以敲鐘並不定時。一般敲鐘的點數是根據敲鐘時間而定的,如果正好在某個整點敲,那麼 當 數就等於那個整點數 如果過了整點,就敲下乙個整點數。另外,雖然一天有24小時,鐘卻是只在後半天敲1 12下。例...