提出 #494426


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;

#define for_(i,a,b) for(int i=(a);i<(b);++i)

struct Edge {
	int to, d, v;
};

vector< Edge > edges[222];
double dp[1010][222];

void maxUpdate(double& a, double b) { a = max(a, b); }

int main() {
	int N, M, P;
	cin >> N >> M >> P;
	
	for_(i,0,M) {
		int s, t, d, v;
		cin >> s >> t >> d >> v;
		--s; --t;
		edges[s].push_back(Edge{t, d, v});
		edges[t].push_back(Edge{s, d, v});
	}
	
	for_(i,0,1010) for_(j,0,222) dp[i][j] = -1.0;//0.0;
	dp[0][0] = 0.0;
	
	for_(p,0,P) {
		int pp = P - 2 * p;
		if (pp < 0) break;
		
		for_(v,0,N) {
			if (dp[p][v] < 0) continue;
			
			for (Edge e : edges[v]) {
				if (p + e.d <= P) maxUpdate(dp[p + e.d][e.to], dp[p][v] + (double)e.v);
				maxUpdate(dp[P][0], 2. * dp[p][v] + (double)pp * (double)e.v / (double)e.d);
			}
		}
	}
	
	printf("%.9lf", dp[P][0]);
}

提出情報

提出日時
問題 F - Marching Course
ユーザ tsu_ra_i
言語 C++11 (GCC 4.8.1)
得点 100
コード長 890 Byte
結果 AC
実行時間 358 ms
メモリ 3112 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 52
セット名 テストケース
All 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 10_complete_00, 10_complete_01, 10_complete_02, 10_complete_03, 10_complete_04, 11_complete_max_00, 11_complete_max_01, 11_complete_max_02, 11_complete_max_03, 11_complete_max_04, 20_rnd_00, 20_rnd_01, 20_rnd_02, 20_rnd_03, 20_rnd_04, 21_rnd_max_00, 21_rnd_max_01, 21_rnd_max_02, 21_rnd_max_03, 21_rnd_max_04, 30_sparse_00, 30_sparse_01, 40_star_00, 40_star_01, 50_uniform_00, 50_uniform_01, 51_almost_uniform_00, 51_almost_uniform_01, 60_hard_far_00, 60_hard_far_01, 60_hard_far_02, 60_hard_far_03, 60_hard_far_04, 61_hard_layer_00, 61_hard_layer_01, 61_hard_layer_02, 61_hard_layer_03, 61_hard_layer_04, 62_hard_chain_00, 62_hard_chain_01, 62_hard_chain_02, 62_hard_chain_03, 62_hard_chain_04, 99_handmade_00, 99_handmade_01, 99_handmade_02, 99_handmade_03, 99_handmade_04
ケース名 結果 実行時間 メモリ
00_sample_00 AC 31 ms 2592 KiB
00_sample_01 AC 31 ms 2544 KiB
00_sample_02 AC 29 ms 2584 KiB
00_sample_03 AC 30 ms 2580 KiB
10_complete_00 AC 45 ms 2592 KiB
10_complete_01 AC 238 ms 3108 KiB
10_complete_02 AC 83 ms 2676 KiB
10_complete_03 AC 231 ms 3108 KiB
10_complete_04 AC 59 ms 2660 KiB
11_complete_max_00 AC 284 ms 3104 KiB
11_complete_max_01 AC 150 ms 3108 KiB
11_complete_max_02 AC 358 ms 3096 KiB
11_complete_max_03 AC 138 ms 3104 KiB
11_complete_max_04 AC 132 ms 3100 KiB
20_rnd_00 AC 30 ms 2472 KiB
20_rnd_01 AC 78 ms 2852 KiB
20_rnd_02 AC 36 ms 2600 KiB
20_rnd_03 AC 83 ms 2716 KiB
20_rnd_04 AC 30 ms 2456 KiB
21_rnd_max_00 AC 169 ms 2856 KiB
21_rnd_max_01 AC 125 ms 2848 KiB
21_rnd_max_02 AC 134 ms 2856 KiB
21_rnd_max_03 AC 184 ms 2856 KiB
21_rnd_max_04 AC 184 ms 2848 KiB
30_sparse_00 AC 29 ms 2468 KiB
30_sparse_01 AC 29 ms 2464 KiB
40_star_00 AC 30 ms 2468 KiB
40_star_01 AC 28 ms 2464 KiB
50_uniform_00 AC 62 ms 3108 KiB
50_uniform_01 AC 60 ms 3112 KiB
51_almost_uniform_00 AC 41 ms 2584 KiB
51_almost_uniform_01 AC 120 ms 2984 KiB
60_hard_far_00 AC 31 ms 2588 KiB
60_hard_far_01 AC 42 ms 2596 KiB
60_hard_far_02 AC 39 ms 2600 KiB
60_hard_far_03 AC 32 ms 2592 KiB
60_hard_far_04 AC 33 ms 2472 KiB
61_hard_layer_00 AC 64 ms 2600 KiB
61_hard_layer_01 AC 64 ms 2604 KiB
61_hard_layer_02 AC 62 ms 2600 KiB
61_hard_layer_03 AC 62 ms 2588 KiB
61_hard_layer_04 AC 53 ms 2588 KiB
62_hard_chain_00 AC 41 ms 2588 KiB
62_hard_chain_01 AC 36 ms 2608 KiB
62_hard_chain_02 AC 45 ms 2596 KiB
62_hard_chain_03 AC 42 ms 2552 KiB
62_hard_chain_04 AC 35 ms 2596 KiB
99_handmade_00 AC 31 ms 2468 KiB
99_handmade_01 AC 29 ms 2588 KiB
99_handmade_02 AC 31 ms 2468 KiB
99_handmade_03 AC 28 ms 2464 KiB
99_handmade_04 AC 29 ms 2576 KiB