QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#71380 | #5252. Deforestation | Sorting# | AC ✓ | 27ms | 23672kb | C++ | 1.8kb | 2023-01-09 21:23:22 | 2023-01-09 21:23:26 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef unsigned long long ull ;
typedef pair < int , int > pii ;
typedef vector<int> vi;
#define fi first
#define se second
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
const int MAXN = 1e5 + 7 ;
int lim , n ;
vector < pii > v[ MAXN ] ;
pair < int , int > dp[ MAXN ] ;
void dfs ( int x ) {
vector < int > hh ;
for ( auto [ y , add ] : v[ x ] ) {
dfs ( y ) ;
dp[ x ].fi += dp[ y ].fi ;
int tot = dp[ y ].se + add ;
int rem = tot % lim ;
if ( rem == 0 ) { rem = lim ; }
hh.push_back ( rem ) ;
dp[ x ].fi += ( tot - rem ) / lim ;
}
sort ( hh.begin ( ) , hh.end ( ) ) ;
int tot = hh.size ( ) ;
for ( auto val : hh ) {
if ( dp[ x ].se + val <= lim ) {
dp[ x ].se += val ;
-- tot ;
}
}
dp[ x ].fi += tot ;
// printf ( "dp[ %d ] = { %d , %d }\n" , x , dp[ x ].fi , dp[ x ].se ) ;
}
void solve ( ) {
cin >> lim ;
stack < pii > s ;
s.push ( { 1 , 1 } ) ;
int tp = 1 ;
while ( s.empty ( ) == false ) {
auto [ x , cnt ] = s.top ( ) ;
s.pop ( ) ;
if ( cnt > 1 ) {
s.push ( { x , cnt - 1 } ) ;
}
int len , foo ;
cin >> len >> foo ;
++ tp ;
v[ x ].push_back ( { tp , len } ) ;
// printf ( "edge %d %d %d\n" , x , tp , len ) ;
if ( foo > 0 ) {
s.push ( { tp , foo } ) ;
}
}
dfs ( 1 ) ;
cout << dp[ 1 ].fi + 1 << "\n" ;
}
int main ( ) {
ios_base :: sync_with_stdio ( false ) ;
cin.tie ( NULL ) ;
int t = 1 ; // cin >> t ;
while ( t -- ) { solve ( ) ; }
return 0 ;
}
詳細信息
Test #1:
score: 100
Accepted
time: 22ms
memory: 8240kb
input:
999900000 7339 3 14947 2 12850 3 8986 10 11599 9 8889 10 10711 4 8015 1 11626 0 9492 1 7017 0 8863 0 8632 0 5321 5 9906 0 11687 0 9845 0 10469 0 11708 0 14950 5 11934 0 11922 0 13101 0 12000 0 9082 0 9273 5 12296 0 6119 0 9201 0 12652 0 12957 0 7454 5 12515 0 12976 0 10358 0 13997 0 8371 0 10181 5 8...
output:
1
result:
ok single line: '1'
Test #2:
score: 0
Accepted
time: 8ms
memory: 7176kb
input:
2 1 99999 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ...
output:
99999
result:
ok single line: '99999'
Test #3:
score: 0
Accepted
time: 18ms
memory: 16736kb
input:
7 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10000 0 10000 2 10...
output:
142862500
result:
ok single line: '142862500'
Test #4:
score: 0
Accepted
time: 22ms
memory: 23672kb
input:
2 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10000 1 10...
output:
500000000
result:
ok single line: '500000000'
Test #5:
score: 0
Accepted
time: 23ms
memory: 8668kb
input:
9717 14907 2 6953 2 10004 2 10949 2 11766 2 14015 2 5640 2 10370 2 6432 2 7602 2 10238 2 9755 2 5788 2 10885 2 11858 2 9182 2 14174 0 12614 0 12080 1 12497 0 7708 2 9108 1 14948 0 9107 1 13540 0 7400 2 6303 2 14462 1 8021 0 7659 1 7232 0 14314 2 9495 1 8459 0 13069 1 5777 0 12734 2 7061 2 12810 2 13...
output:
105756
result:
ok single line: '105756'
Test #6:
score: 0
Accepted
time: 12ms
memory: 8672kb
input:
39375 7550 2 13825 2 11034 2 7836 2 11683 2 9571 2 13888 2 11680 2 5713 2 13175 2 11057 2 7849 2 5598 2 9557 2 7974 2 13285 2 8251 0 13513 0 6254 1 11361 0 13651 2 6286 1 10397 0 5450 1 9590 0 12571 2 7519 2 5512 1 5430 0 9148 1 5281 0 6991 2 6310 1 12868 0 13487 1 6045 0 12298 2 10198 2 11601 2 127...
output:
29976
result:
ok single line: '29976'
Test #7:
score: 0
Accepted
time: 27ms
memory: 8308kb
input:
874898 10304 7 7634 3 7362 9 7960 8 12298 2 5668 1 11762 4 14379 4 6126 1 8135 0 12246 1 13096 0 10376 1 14935 0 9311 0 6256 5 14752 1 12903 0 9645 1 5986 0 14329 0 8683 0 6501 0 6337 1 14416 5 11161 1 10643 0 8900 0 13527 0 9644 0 11961 0 13251 4 9559 1 5799 0 7021 1 13442 0 12589 0 8301 0 5765 7 1...
output:
2116
result:
ok single line: '2116'
Test #8:
score: 0
Accepted
time: 18ms
memory: 8264kb
input:
907686 6329 4 11400 6 5913 8 6890 1 6329 9 10018 5 5234 4 14656 2 11517 0 7330 0 6160 1 11296 1 8221 0 14502 2 14628 0 11846 0 11999 1 5458 0 9845 7 14799 1 9492 0 5534 1 8513 0 12919 1 11676 0 7286 1 8698 0 11372 0 13707 0 12517 0 12094 4 11587 2 5442 0 12160 0 10344 2 13437 0 12069 0 13431 1 9757 ...
output:
2108
result:
ok single line: '2108'
Test #9:
score: 0
Accepted
time: 20ms
memory: 8100kb
input:
19439 9535 1 14066 1 13123 8 14498 10 12761 10 13889 3 5303 4 6155 5 8591 1 9992 0 6323 1 5747 0 12132 1 12189 0 9518 1 11132 0 12872 1 5985 0 12140 1 7932 4 6628 1 9177 0 9398 1 7981 0 7774 1 9833 0 7483 1 12017 0 6505 4 8924 2 8786 0 5604 0 7191 1 14168 0 11672 1 13618 0 8420 1 7884 0 5693 4 12159...
output:
64996
result:
ok single line: '64996'
Extra Test:
score: 0
Extra Test Passed