1
已解决
赵逸凡
初级启示者
初级启示者
#include <bits/stdc++.h>
using namespace std;
unsigned long long f(int n){
if(n==0)return 0;
return 2*f(n-1)+1;
}
int main(){
int n;
cin>>n;
cout<<2*f(n);
return 0;
}
这道递归题看起来没问题啊,为什么70分?WA6、7、9这3个点
@王源松 这道题对你来说很简单
赵逸凡在2020-08-05 10:42:42追加了内容
???????2分题没有人来回答正解??????
0
0
0
0
0
王俊杰
高级光能
高级光能
可以参考一下程天瑞的思路:
使用最少的坚果,当然就是在当前行第一个僵尸踏进家门前塞一个坚果过去
按照从第一行到第六行,时间先的在前 的顺序逐行逐个进行判断
-
如果换行了,答案加一,标记的时间改为这行第一个出现的时间
-
如果当前僵尸出现时间减去上一个坚果释放的时间>=60,那就再塞一个坚果过去
PS:样例前两个,当两个时间相减到达60时,等第二个僵尸出来再放坚果的话,脑子已经被吃掉了
只要记好这两条,然后按顺序轮着看一遍就好了
- 这道题的行数有6行而不是真正的pvz里的5行,我因为找不出这个错误还专门在讨论里发了个帖子……蠢啊
- 样例中zombie出现的次序是排序好的,但数据不是,所以要sort一下。如果刚学快排可以拿这题练练手。
- 注释中警告的那处。我们要碾压的最前面的zombie是在第1行,但第1+60=61行的那只zombie还没走上草地,所以那里应该是<而非<=。
- 主要程序
- for(int i=1;i<=6;i++) //对每一行分别处理
{
int x=1; //从这一行的第一只zombie开始碾压
while(x<=j[i])
{
ans++;
int x1=x;
while(t[i][x1]<t[i][x]+60) x1++;
//碾压所有同时在这一行的zombies!!注意<不能打成<=,否则样例都过不了
x=x1;
}
}
这不是我写的,我只是给你们参考的,不要举报
0
0
0