怎么样才可以有提交题解的权限呀
by JAs0n @ 2022-09-21 02:03:48
1
by 曾治茗 @ 2022-09-21 14:51:44
- 代码请勿加上过长的预编译指令、宏定义或头文件。
这一条建议严肃整治
by Φρανκ @ 2022-09-24 01:04:43
那个,题解怎么发呀
~~本蒟蒻不会发~~
by William_Hu @ 2022-09-24 22:23:47
@[yurzhang](/user/126486) 您好,请问一下,提交题解时显示表示符重复是什么原因?
by shensteve @ 2022-09-29 22:09:08
我的题解出什么问题了?
某题解(P8508)
/Huge 理解题意
~~我们发现这道题“通俗易懂”。~~
大意就是$Eric$要在保证睡眠的情况下完成作业。
/Large 定义“保证睡眠”:
/large 1.每天睡觉(至少睡$1$(睡够$1$和没睡够$1$没啥区别,所以默认为1))。
/large 2.前$i$天要睡够$i*x*r$的时间。
/Huge 简化题意
我们会发现“每天睡觉”这事超级烦,所以我们可以把每天睡觉这事消掉(将$x$减去一,对$r$做出一些改变);
为了让做题时更直观些,我们可以计算前i天写作业时间不能超过多少。
/Huge 主干做法
我们可以通过一个一个做任务,每做完一个算“结余”的方式来做:我们知道前$i$天还可以做多长时间的作业,以及今天剩余的时间,如果都大于等于做当前任务的时间,那么这两项都减去做当前任务的时间,并进入下一个任务;否则就在睡几天,直到能做当前任务为止。当做完所有任务后,输出用的天数,并结束程序。
/Huge 代码
```cpp
#include<bits/stdc++.h>
using namespace std;
long long a[1000009];\\不开long long见祖宗
int main(){
long long n,m,aaa,bbb;
cin>>n>>m>>aaa>>bbb;
aaa*=m;
aaa-=bbb;
m--;
bbb*=m;
aaa=bbb-aaa;
bbb/=m;\\预处理
for(long long i=1;i<=n;i++){
long long x;
cin>>x;
x*=bbb;\\预处理 too
a[i]=x;
//sum+=x;
}
long long sum;
sum=0;
long long s;
long long t;
t=0;
m*=bbb;
s=0;
for(long long i=1;i<=n;i++){
if(a[i]<=s&&a[i]<=sum){
s-=a[i];
sum-=a[i];\\今天有时间写作业
continue;
}
if(a[i]<=sum){
t++;
sum+=aaa;
s=m;
s-=a[i];\\今天没时间写作业
sum-=a[i];
continue;
}
s=m;\\若写作业,则会出现“睡眠时间不足”
long long xy;
xy=ceil((a[i]-sum)*1.0/aaa);
t+=xy;\\凑睡眠时间
sum+=xy*aaa;
if(a[i]<=s&&a[i]<=sum){
s-=a[i];
sum-=a[i];
continue;
}
}
cout<<t;
return 0;
}
```
管理员说:_RSY_
by sbno333 @ 2022-10-01 16:58:08
@[chen_zhe](/user/8457) 为什么我发不了题解
by oldnet @ 2022-10-01 18:02:39
@[oldnet](/user/713602) 你得先开博客
by Disjoint_cat @ 2022-10-02 16:27:07
https://cdn.luogu.com.cn/fe/wechat_qr.png?b14b3f14422842b842e982efe6c41eb9
by x_white @ 2022-10-03 11:00:56
我傻眼了,还是不能?!
by CBC18 @ 2022-10-03 14:14:06