Codeforces Round #552 (Div. 3) C. Gourmet Cat (数学,模拟)
Posted lr599909928
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #552 (Div. 3) C. Gourmet Cat (数学,模拟)相关的知识,希望对你有一定的参考价值。
-
题意:你要带着你的喵咪一起去旅行,你的喵在星期(1,4,7)吃喵粮(x),在星期(2,6)吃喵粮(y),在星期(3,5)吃喵粮(z),你只有(a)个(x),(b)个(y),(c)个(z),一旦吃完旅行就结束了,问你选择星期几出发能使旅行的天数最长.
-
题解:这已经是这个星期第三次碰到这种idea的题了,我们一定是旅行了几个(或者0)星期的循环后才会结束,所以先求出最多能跑几个循环,然后剩下的枚举求个最大值即可.
-
代码:
int a,b,c; // a:1 4 7 // b:2 6 // c:3 5 int d[7]={1,2,3,1,3,2,1}; int ans; int main() { ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); cin>>a>>b>>c; int mi=min({a/3,b/2,c/2}); a-=mi*3; b-=mi*2; c-=mi*2; int cnt=0; rep(i,0,6){ int a1=a; int b1=b; int c1=c; cnt=0; rep(j,i,i+6){ int cur=j%7; if(d[cur]==1) a1--; if(d[cur]==2) b1--; if(d[cur]==3) c1--; if(a1==-1 || b1==-1 || c1==-1){ ans=max(ans,mi*7+cnt); break; } cnt++; } } cout<<ans<<‘ ‘; return 0; }
以上是关于Codeforces Round #552 (Div. 3) C. Gourmet Cat (数学,模拟)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #552 (Div. 3)-D-Walking Robot-(贪心)
Codeforces Round #552 (Div. 3) Editorial 1154C - Gourmet Cat
Codeforces Round #552 (Div. 3) C. Gourmet Cat (数学,模拟)
Codeforces Round #552 (Div. 3)-1154E-Two Teams-(模拟+双指针)