Link
Question
Monocarp 的一个学期有 \(n\) 天,需要修 \(P\) 个学分,完成一节课程加 \(l\) 个学费,完成一个任务加 \(t\) 个学分
Monocarp 一天可以完成一节课+两个任务
任务每周分配一个,也就是 day1,day8,day15...
问,在可以修满学分的情况下,Monocarp 最多休息的天数
Solution
由于任务可以在发布的那天到最后一天都可以做,所以贪心,把任务都放在最后做
并且一天能做两个任务就做两个任务。
Code
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
int ret=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-f;ch=getchar();}
while(ch<='9'&&ch>='0')ret=ret*10+ch-'0',ch=getchar();
return ret*f;
}
void solve(){
int n=read(),P=read(),l=read(),t=read(),m;
int num_t=(n-1)/7+1,day_t=num_t/2;
if(num_t*t+day_t*l>=P) { //都做任务
m=P/(l+t*2)+(P%(l+t*2)!=0);
}
else{
int P_=P-(num_t*t+day_t*l);
m=day_t+P_/l+(P_%l!=0);
}
printf("%lld\n",n-m);
}
signed main(){
freopen("B.in","r",stdin);
int T=read();
while(T--) solve();
}
标签:ch,num,CF1902,int,题解,ret,read,Points,day
From: https://www.cnblogs.com/martian148/p/17875208.html