百度20200903笔试思路分享

第一题,经典差分思路,不用对区间内每一个点加1。
差分模板:  v[0] = a[0]; v[i] = a[i] = a[i-1];
如果对[l,r]区间内每个位置+1相当于v[l]++,v[r+1]--;
最后求个v的前缀和即为每一个位置的最终地毯层数。
附上代码:
#include<bits/stdc++.h>
using namespace std;

int main()
{
    int T;
    cin>>T;
    while(T>0)
    {
        int L,n;
        cin>>L>>n;
        vector<int> v(L+2,0);
        for(int i=0;i<n;i++)
        {
            int l,r;
            cin>>l>>r;
            v[l]++;v[r+1]--;
        }
        for(int i=1;i<=L;i++)
        {
            v[i] += v[i-1];
            if(i!=L)cout<<v[i]<<" ";
            else cout<<v[i]<<endl;
        }
        T--;
    }
    return 0;
}
第二题,思路是贪心,代码就不列了,比较简单。
第三题,dfs超时,求大佬思路。

最终A了2.4。

#百度##笔试题型#
全部评论

相关推荐

01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
26牛牛不会梦到感谢信:羡慕离职了还能吃吗现在就赶回去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务