【每日1题】修剪灌木的一些解题思路

alt

很简单的一个找规律题目:

先自己手画打个表,找找一般数值的规律:

alt

1.可以发现先让他从左到右,再从右到左循环一次,然后每一株灌木的高度变化就会一直循环了。
2.在这些循环里刚好每一株的灌木高度最大值都包含在内

(运气真好)

3.第一个灌木高度起始值为2*n-2

规律找好了直接走代码

using namespace std;
int a, b,n,i,t=1,g=1;
int c[10005],d[10005],e[10005];
int main()
{
  cin>>n;
  if(n==1)//1是特殊值,不然输出0了
  {
    cout<<1;
    return 0;
  }
  c[1]=2*n-2;
  for(i=1;i<=n;i++)
  {
    c[i+1]=i;
  }
  i=1;
  while(i!=n+1)
  {
    for(t=1;t<=n;t++)
    {
      if(t!=i)
      {
        c[t]++;
      }
      else
      {
        d[t]=c[t];
        c[t]=1;
      }
    }
    i++;
  }
  c[n]=2*n-2;
  for(i=n-1;i>=1;i--)
  {
    c[i]=g;
    g++;
  }
  i=n;
  //cout<<c[1]<<endl;
  while(i!=0)
  {
    for(t=n;t>=1;t--)
    {
      if(t!=i)
      {
        c[t]++;
      }
      else
      {
        e[t]=c[t];
        c[t]=1;
      }
    }
    i--;
  }
  for(i=1;i<=n;i++)
  {
    if(i!=n)
    cout<<max(d[i],e[i])<<endl;
    if(i==n)
    cout<<max(d[i],e[i]);
  }
}

全部评论

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
今天 09:08
裁应届生,一分钱补偿没有,离职了还脑控你,跟踪你,定位你,丁东服务是搞系每一个人
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 8人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务