提出 #44028774
ソースコード 拡げる
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define op(x) ((x&1)?x+1:x-1)
#define odd(x) (x&1)
#define even(x) (!odd(x))
#define lc(x) (x<<1)
#define rc(x) (lc(x)|1)
#define lowbit(x) (x&-x)
#define mp(x,y) make_pair(x,y)
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
using namespace std;
const ll MAXN = 310,INF = 2e18;
void tomax(ll& x,ll y){x = max(x,y);}
void tomin(ll& x,ll y){x = min(x,y);}
ll n,H,c[MAXN],d[MAXN],ans = INF;
ll dp[MAXN*2][MAXN*2],M = 605;
ll dp2[MAXN*MAXN*4];
ll val[MAXN*2];
vector<int>arr;
int main(){
cin>>n>>H;
rep(i,1,n){
cin>>c[i]>>d[i];
}
rep(i,0,M)rep(j,0,M)dp[i][j] = -INF;
dp[0][0] = 0;
rep(i,0,M-1)rep(j,0,M)if(dp[i][j] != -INF){
rep(k,1,n)if(j - c[k] >= 0 && j - c[k] <= M)tomax(dp[i+1][j-c[k]],dp[i][j] + d[k]);
}
rep(i,1,M){
val[i] = -INF;
rep(j,0,M)tomax(val[i],dp[i][j]);
if(val[i] != -INF)arr.push_back(i);
}
int cnt = arr.size();assert(cnt);
sort(arr.begin(),arr.end(),[&](int x,int y){return val[x] * y > val[y] * x;});
int f = arr[0];
rep(i,0,M*M)dp2[i] = -INF;
dp2[0] = 0;
rep(i,0,M*M-1)if(dp2[i] != -INF){
rep(j,1,cnt-1){
int x = arr[j];
if(i + x <= M*M)tomax(dp2[i+x],dp2[i] + val[x]);
}
}
rep(i,0,M*M)if(dp2[i] != -INF){
ll rest = H - dp2[i],cnt = i;
if(rest > 0)cnt += (rest + val[f] - 1) / val[f] * f;
tomin(ans,cnt);
}
cout<<ans<<endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | Ex - Negative Cost |
| ユーザ | Crying |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 625 |
| コード長 | 1538 Byte |
| 結果 | AC |
| 実行時間 | 392 ms |
| メモリ | 9452 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 625 / 625 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example0.txt, example1.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, 061.txt, 062.txt, 063.txt, 064.txt, 065.txt, 066.txt, 067.txt, 068.txt, 069.txt, 070.txt, 071.txt, 072.txt, 073.txt, 074.txt, 075.txt, 076.txt, 077.txt, 078.txt, 079.txt, 080.txt, 081.txt, 082.txt, 083.txt, 084.txt, 085.txt, 086.txt, 087.txt, 088.txt, example0.txt, example1.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 000.txt | AC | 215 ms | 9424 KiB |
| 001.txt | AC | 215 ms | 9384 KiB |
| 002.txt | AC | 216 ms | 9388 KiB |
| 003.txt | AC | 15 ms | 9440 KiB |
| 004.txt | AC | 306 ms | 9308 KiB |
| 005.txt | AC | 316 ms | 9304 KiB |
| 006.txt | AC | 226 ms | 9256 KiB |
| 007.txt | AC | 362 ms | 9228 KiB |
| 008.txt | AC | 270 ms | 9384 KiB |
| 009.txt | AC | 301 ms | 9388 KiB |
| 010.txt | AC | 303 ms | 9364 KiB |
| 011.txt | AC | 300 ms | 9380 KiB |
| 012.txt | AC | 300 ms | 9252 KiB |
| 013.txt | AC | 303 ms | 9248 KiB |
| 014.txt | AC | 301 ms | 9300 KiB |
| 015.txt | AC | 300 ms | 9380 KiB |
| 016.txt | AC | 301 ms | 9256 KiB |
| 017.txt | AC | 304 ms | 9428 KiB |
| 018.txt | AC | 300 ms | 9244 KiB |
| 019.txt | AC | 301 ms | 9340 KiB |
| 020.txt | AC | 300 ms | 9228 KiB |
| 021.txt | AC | 301 ms | 9428 KiB |
| 022.txt | AC | 300 ms | 9344 KiB |
| 023.txt | AC | 301 ms | 9224 KiB |
| 024.txt | AC | 304 ms | 9376 KiB |
| 025.txt | AC | 298 ms | 9228 KiB |
| 026.txt | AC | 300 ms | 9428 KiB |
| 027.txt | AC | 301 ms | 9304 KiB |
| 028.txt | AC | 300 ms | 9260 KiB |
| 029.txt | AC | 212 ms | 9452 KiB |
| 030.txt | AC | 214 ms | 9376 KiB |
| 031.txt | AC | 214 ms | 9380 KiB |
| 032.txt | AC | 212 ms | 9224 KiB |
| 033.txt | AC | 214 ms | 9428 KiB |
| 034.txt | AC | 214 ms | 9340 KiB |
| 035.txt | AC | 214 ms | 9364 KiB |
| 036.txt | AC | 214 ms | 9196 KiB |
| 037.txt | AC | 214 ms | 9196 KiB |
| 038.txt | AC | 216 ms | 9428 KiB |
| 039.txt | AC | 215 ms | 9380 KiB |
| 040.txt | AC | 216 ms | 9364 KiB |
| 041.txt | AC | 216 ms | 9360 KiB |
| 042.txt | AC | 215 ms | 9244 KiB |
| 043.txt | AC | 215 ms | 9344 KiB |
| 044.txt | AC | 214 ms | 9344 KiB |
| 045.txt | AC | 213 ms | 9192 KiB |
| 046.txt | AC | 213 ms | 9428 KiB |
| 047.txt | AC | 213 ms | 9340 KiB |
| 048.txt | AC | 213 ms | 9252 KiB |
| 049.txt | AC | 227 ms | 9252 KiB |
| 050.txt | AC | 384 ms | 9384 KiB |
| 051.txt | AC | 269 ms | 9244 KiB |
| 052.txt | AC | 235 ms | 9196 KiB |
| 053.txt | AC | 222 ms | 9384 KiB |
| 054.txt | AC | 323 ms | 9340 KiB |
| 055.txt | AC | 370 ms | 9428 KiB |
| 056.txt | AC | 326 ms | 9344 KiB |
| 057.txt | AC | 377 ms | 9364 KiB |
| 058.txt | AC | 346 ms | 9448 KiB |
| 059.txt | AC | 390 ms | 9368 KiB |
| 060.txt | AC | 388 ms | 9452 KiB |
| 061.txt | AC | 388 ms | 9428 KiB |
| 062.txt | AC | 385 ms | 9248 KiB |
| 063.txt | AC | 384 ms | 9252 KiB |
| 064.txt | AC | 386 ms | 9196 KiB |
| 065.txt | AC | 390 ms | 9344 KiB |
| 066.txt | AC | 384 ms | 9244 KiB |
| 067.txt | AC | 385 ms | 9384 KiB |
| 068.txt | AC | 385 ms | 9340 KiB |
| 069.txt | AC | 390 ms | 9384 KiB |
| 070.txt | AC | 386 ms | 9360 KiB |
| 071.txt | AC | 389 ms | 9340 KiB |
| 072.txt | AC | 390 ms | 9300 KiB |
| 073.txt | AC | 386 ms | 9452 KiB |
| 074.txt | AC | 386 ms | 9344 KiB |
| 075.txt | AC | 387 ms | 9364 KiB |
| 076.txt | AC | 385 ms | 9196 KiB |
| 077.txt | AC | 384 ms | 9360 KiB |
| 078.txt | AC | 384 ms | 9376 KiB |
| 079.txt | AC | 392 ms | 9228 KiB |
| 080.txt | AC | 391 ms | 9300 KiB |
| 081.txt | AC | 387 ms | 9380 KiB |
| 082.txt | AC | 388 ms | 9344 KiB |
| 083.txt | AC | 388 ms | 9364 KiB |
| 084.txt | AC | 386 ms | 9344 KiB |
| 085.txt | AC | 384 ms | 9428 KiB |
| 086.txt | AC | 387 ms | 9376 KiB |
| 087.txt | AC | 386 ms | 9240 KiB |
| 088.txt | AC | 382 ms | 9368 KiB |
| example0.txt | AC | 216 ms | 9344 KiB |
| example1.txt | AC | 228 ms | 9428 KiB |