题解 | #障碍#

链接
D 障碍
思想
优美的暴力,利用x的数据范围有上限暴力求解。
代码

#include<bits/stdc++.h>
using namespace std;
const int N  = 100010;
int a[N];
void solve()
{//思想:优美的暴力
    int n,m;
    cin >> n >> m;
    for(int i=1;i<=m;i++)cin>>a[i];
    sort(a+1,a+1+m);
    a[0] = 0,a[m+1] = n;
    int x = (int)sqrt(n), ans = -1;
    for(int i = x; i >= 0; i --)
    {//L-x*x>=0,因此x<=sqrt(L)<448
        for(int j = 0;j<=m+1-i;j++)
        {//每次拆的板子保证是连续的,保证最大值递增
            ans = max(ans,a[j+i+1]-a[j]-i*i);
        }//连续拆x个板子,遍历所有拆的可能种类数
    }
    cout << ans << endl;
}
int main()
{
    solve();
    return 0;
}
全部评论

相关推荐

09-02 11:14
已编辑
四川大学 Java
吴offer选手:这种面试是最烦的,学不到东西,然后还被挂的莫名其妙。之前看到一种说法是面试官如果不想要你了,就会问一些很简单的问题,防止你举报他
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务