QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#102666 | #5259. Skills in Pills | zswzswzsw# | AC ✓ | 175ms | 14668kb | C++14 | 1.8kb | 2023-05-03 15:42:56 | 2023-05-03 15:42:58 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int res;
int n,a,b,lsta,lstb;
int ans=1e9+7;;
void solve(int opt,int t,int t1,int t2)
{
lsta=lstb=res=0;
lsta=t1;lstb=t2;
for(int i=1;i<=n;i++)
{
if(i-lsta>=a&&i-lstb>=b){
opt^=t;res+=2;
if(opt)lsta=i,lstb=i-1;
else lsta=i-1,lstb=i;
}
else if(i-lsta>=a){
++res;lsta=i;
}
else if(i-lstb>=b){
++res;lstb=i;
}
}ans=min(res,ans);
}
const int N=2010000;
int dp1[N],dp2[N];
int posa,posb,pos0;//a<b;a>b;
void init(void)
{
lsta=-1;lstb=0;
for(int i=1;i;i++){
if(i-lsta==a&&i-lstb==b){posa=i;break;}
if(i-lsta==a)lsta=i;
if(i-lstb==b)lstb=i;
}
lsta=0;lstb=-1;
for(int i=1;i;i++){
if(i-lsta==a&&i-lstb==b){posb=i;break;}
if(i-lsta==a)lsta=i;
if(i-lstb==b)lstb=i;
}
lsta=0;lstb=0;
for(int i=1;i;i++){
if(i-lsta==a&&i-lstb==b){pos0=i;break;}
if(i-lsta==a)lsta=i;
if(i-lstb==b)lstb=i;
}return;
}
void solve2(void)
{
if(n<pos0)ans=n/a+n/b;
for(int i=1;i<=n;i++)
{
dp1[i]=dp2[i]=n*3;
if(i<=pos0){
dp1[i]=pos0/a+pos0/b;
dp2[i]=pos0/a+pos0/b;
}
if(i-posa>0){
dp1[i]=min(dp1[i-posa]+posa/b+(posa+1)/a,dp1[i]);
dp2[i]=min(dp1[i-posa]+posa/b+(posa+1)/a,dp2[i]);
}
if(i-posb>0){
dp1[i]=min(dp1[i],dp2[i-posb]+posb/a+(posb+1)/b);
dp2[i]=min(dp2[i],dp2[i-posb]+posb/a+(posb+1)/b);
}
}
for(int i=n;i>=n-posa&&i>0;i--)
ans=min(ans,dp1[i]+(n-i)/b+(n-i+1)/a);
for(int i=n;i>=n-posb&&i>0;i--)
ans=min(ans,dp2[i]+(n-i)/a+(n-i+1)/b);
return;
}
int gcd(int x,int y){
return y?gcd(y,x%y):x;
}
int main()
{
cin>>a>>b>>n;
for(int i=-5;i<=0;i++)
for(int j=-5;j<=0;j++){
solve(1,0,i,j);
solve(1,1,i,j);
solve(0,0,i,j);
solve(0,1,i,j);
}
if(gcd(a,b)==1)
{
init();
solve2();
}
cout<<ans;
return 0;
}
/*
2 4 11
*/
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3328kb
input:
3 9 20
output:
8
result:
ok single line: '8'
Test #2:
score: 0
Accepted
time: 1ms
memory: 3312kb
input:
8 2 12
output:
7
result:
ok single line: '7'
Test #3:
score: 0
Accepted
time: 0ms
memory: 5324kb
input:
2 5 15
output:
10
result:
ok single line: '10'
Test #4:
score: 0
Accepted
time: 2ms
memory: 3508kb
input:
10 8 13
output:
2
result:
ok single line: '2'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3252kb
input:
6 6 19
output:
6
result:
ok single line: '6'
Test #6:
score: 0
Accepted
time: 2ms
memory: 5304kb
input:
2 3 5
output:
3
result:
ok single line: '3'
Test #7:
score: 0
Accepted
time: 2ms
memory: 3460kb
input:
4 2 8
output:
6
result:
ok single line: '6'
Test #8:
score: 0
Accepted
time: 2ms
memory: 3508kb
input:
5 5 5
output:
2
result:
ok single line: '2'
Test #9:
score: 0
Accepted
time: 2ms
memory: 5328kb
input:
3 8 11
output:
4
result:
ok single line: '4'
Test #10:
score: 0
Accepted
time: 0ms
memory: 5384kb
input:
5 8 16
output:
5
result:
ok single line: '5'
Test #11:
score: 0
Accepted
time: 0ms
memory: 5488kb
input:
9 7 279
output:
70
result:
ok single line: '70'
Test #12:
score: 0
Accepted
time: 2ms
memory: 5372kb
input:
8 3 56
output:
25
result:
ok single line: '25'
Test #13:
score: 0
Accepted
time: 2ms
memory: 5380kb
input:
5 9 46
output:
14
result:
ok single line: '14'
Test #14:
score: 0
Accepted
time: 1ms
memory: 3284kb
input:
8 4 251
output:
93
result:
ok single line: '93'
Test #15:
score: 0
Accepted
time: 2ms
memory: 5316kb
input:
8 7 41
output:
10
result:
ok single line: '10'
Test #16:
score: 0
Accepted
time: 2ms
memory: 5504kb
input:
60 17 360
output:
27
result:
ok single line: '27'
Test #17:
score: 0
Accepted
time: 2ms
memory: 5360kb
input:
16 55 388
output:
31
result:
ok single line: '31'
Test #18:
score: 0
Accepted
time: 2ms
memory: 5328kb
input:
25 38 292
output:
18
result:
ok single line: '18'
Test #19:
score: 0
Accepted
time: 2ms
memory: 5288kb
input:
22 59 177
output:
11
result:
ok single line: '11'
Test #20:
score: 0
Accepted
time: 2ms
memory: 5376kb
input:
4 3 82
output:
50
result:
ok single line: '50'
Test #21:
score: 0
Accepted
time: 77ms
memory: 9532kb
input:
77 18 511543
output:
35070
result:
ok single line: '35070'
Test #22:
score: 0
Accepted
time: 134ms
memory: 13144kb
input:
37 32 987861
output:
57612
result:
ok single line: '57612'
Test #23:
score: 0
Accepted
time: 37ms
memory: 9884kb
input:
29 8 300899
output:
48059
result:
ok single line: '48059'
Test #24:
score: 0
Accepted
time: 80ms
memory: 9952kb
input:
73 83 533839
output:
13745
result:
ok single line: '13745'
Test #25:
score: 0
Accepted
time: 23ms
memory: 7976kb
input:
12 23 181193
output:
23008
result:
ok single line: '23008'
Test #26:
score: 0
Accepted
time: 139ms
memory: 3328kb
input:
2 2 864514
output:
864514
result:
ok single line: '864514'
Test #27:
score: 0
Accepted
time: 25ms
memory: 5968kb
input:
27 7 165249
output:
29765
result:
ok single line: '29765'
Test #28:
score: 0
Accepted
time: 116ms
memory: 13524kb
input:
15 2 751665
output:
429522
result:
ok single line: '429522'
Test #29:
score: 0
Accepted
time: 123ms
memory: 3264kb
input:
2 16 818146
output:
460207
result:
ok single line: '460207'
Test #30:
score: 0
Accepted
time: 83ms
memory: 13688kb
input:
43 88 631366
output:
21860
result:
ok single line: '21860'
Test #31:
score: 0
Accepted
time: 3ms
memory: 5388kb
input:
215 1222 3597
output:
18
result:
ok single line: '18'
Test #32:
score: 0
Accepted
time: 142ms
memory: 10224kb
input:
9619 3375 604892
output:
241
result:
ok single line: '241'
Test #33:
score: 0
Accepted
time: 42ms
memory: 6600kb
input:
861 1924 311511
output:
522
result:
ok single line: '522'
Test #34:
score: 0
Accepted
time: 175ms
memory: 14216kb
input:
9249 3782 866972
output:
322
result:
ok single line: '322'
Test #35:
score: 0
Accepted
time: 133ms
memory: 6360kb
input:
7055 8386 206874
output:
53
result:
ok single line: '53'
Test #36:
score: 0
Accepted
time: 106ms
memory: 5852kb
input:
6273 7732 122377
output:
34
result:
ok single line: '34'
Test #37:
score: 0
Accepted
time: 134ms
memory: 5852kb
input:
8057 7746 89137
output:
22
result:
ok single line: '22'
Test #38:
score: 0
Accepted
time: 156ms
memory: 5668kb
input:
9215 8952 74618
output:
16
result:
ok single line: '16'
Test #39:
score: 0
Accepted
time: 67ms
memory: 6004kb
input:
7246 3709 129579
output:
51
result:
ok single line: '51'
Test #40:
score: 0
Accepted
time: 166ms
memory: 14140kb
input:
4052 6785 831888
output:
327
result:
ok single line: '327'
Test #41:
score: 0
Accepted
time: 17ms
memory: 7664kb
input:
9 2 91067
output:
56916
result:
ok single line: '56916'
Test #42:
score: 0
Accepted
time: 151ms
memory: 14668kb
input:
10 3 913595
output:
406041
result:
ok single line: '406041'
Test #43:
score: 0
Accepted
time: 26ms
memory: 3276kb
input:
2 2 152575
output:
152575
result:
ok single line: '152575'
Test #44:
score: 0
Accepted
time: 152ms
memory: 3508kb
input:
2 2 927771
output:
927771
result:
ok single line: '927771'
Test #45:
score: 0
Accepted
time: 93ms
memory: 13448kb
input:
6 7 637014
output:
200204
result:
ok single line: '200204'
Test #46:
score: 0
Accepted
time: 119ms
memory: 13872kb
input:
5 3 721417
output:
400786
result:
ok single line: '400786'
Test #47:
score: 0
Accepted
time: 25ms
memory: 9916kb
input:
5 9 183079
output:
57538
result:
ok single line: '57538'
Test #48:
score: 0
Accepted
time: 88ms
memory: 11288kb
input:
9 2 579290
output:
362055
result:
ok single line: '362055'
Test #49:
score: 0
Accepted
time: 92ms
memory: 11540kb
input:
3 4 546909
output:
341817
result:
ok single line: '341817'
Test #50:
score: 0
Accepted
time: 153ms
memory: 3488kb
input:
2 2 932611
output:
932611
result:
ok single line: '932611'