diff --git a/migrate/migrate.cpp b/migrate/migrate.cpp index 3fbcd53..180fd9f 100644 --- a/migrate/migrate.cpp +++ b/migrate/migrate.cpp @@ -1,12 +1,23 @@ #include using namespace std; int c, t; +int n, d; +int x[2000005]; int main() { freopen("migrate.in", "r", stdin); freopen("migrate.out", "w", stdout); scanf("%d%d", &c, &t); + while(t--) { + scanf("%d%d", &n, &d); + for(int i = 1; i <= n; ++i) { + scanf("%d", &x[i]); + } + } return 0; } /* g++ migrate/migrate.cpp -o migrate/migrate -std=c++14 -O2 -static -Wall && cp migrate/migrate ~ && chmod +x ~/migrate && ~/migrate + +每次飞行长度不超过 d +体力消耗为飞行次数 */ \ No newline at end of file diff --git a/subway/subway.cpp b/subway/subway.cpp index 26e83ce..5305e63 100644 --- a/subway/subway.cpp +++ b/subway/subway.cpp @@ -2,7 +2,7 @@ using namespace std; int c, n, m, d, q; // 25 500 5e5 20 1e5 int w[500005]; -vector> fri[500505]; +vector> fri[500505]; long long de[500505]; long long dline[505][505]; priority_queue, vector>, greater>> pq; @@ -13,7 +13,7 @@ void dig(int s) { while(!pq.empty()) { pair u = pq.top(); pq.pop(); - for(pair v : fri[u.second]) { + for(pair v : fri[u.second]) { if(de[v.second] > de[u.second] + v.first) { de[v.second] = de[u.second] + v.first; pq.push({de[v.second], v.second}); @@ -30,8 +30,9 @@ int main() { } for(int i = 1, k; i <= n; ++i) { scanf("%d", &k); - for(int j = 1, sta, ti; j <= k; ++j) { - scanf("%d%d", &sta, &ti); + for(int j = 1, sta; j <= k; ++j) { + long long ti; + scanf("%d%lld", &sta, &ti); fri[m + i].push_back({ti, sta}); fri[sta].push_back({ti, m + i}); } @@ -48,13 +49,13 @@ int main() { int x, y; scanf("%d%d", &x, &y); long long ans = LLONG_MAX; - for(pair i : fri[x]) { - for(pair j : fri[y]) { + for(pair i : fri[x]) { + for(pair j : fri[y]) { ans = min(ans, dline[i.second - m][j.second - m] + i.first + j.first); } } // dig(x); - printf("%lld\n", w[x] + w[y] + ans); + printf("%lld\n", 1ll * w[x] + 1ll * w[y] + ans); } return 0; }