如下图所示,我们在门前一条笔直的道路上栽了 N 棵树苗。
但是,最近我们发现,如果两棵树苗的距离小于一个常数 D ,这两棵树苗的发育都会受到阻碍。因此我们决定移除一些树苗,从而使任意两棵树苗的距离都不小于 D ,并且我们希望留下的树苗越多越好。
本文共 1119 字,大约阅读时间需要 3 分钟。
51 372 13 42 23 47 21 2 3 5 6 8 97 41 2 3 5 6 8 9
12143
解题思路:对输入的数据进行判断,若两者距离合法,则加入栈中;弄一个计数的变量应该也可以,不够想联系联系栈而已~
AC代码:
#include#include #include using namespace std;int t,n,d,temp,temp2;stack s;int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&n,&d); scanf("%d",&temp); s.push(temp); for(int i=1;i =d) { s.push(temp2); temp=temp2; } } printf("%d\n",s.size()); while(!s.empty())//清空栈 s.pop(); } return 0;}
转载地址:https://blog.csdn.net/ZP_nanfangguniang/article/details/52263288 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!