网易C++后台开发笔试编程题

通过: 100 0 100 100
第一题,水题,直接在牛客上写的,没保存代码
第二题,一眼题,实在不知道自己哪里写错了,用了各种方法都不行。思路:只要堆高度为 0  1  2  3  4  5 ....就行
第三题, 尺取法,前缀法维护下
typedef long long LL;

using namespace std;

int T;
int n;
int a[MAXN];
LL sum[MAXN];
int main()
{
    scanf("%d", &T);
    while(T--)
    {
        memset(sum, 0, sizeof(sum));
        scanf("%d", &n);

        for(int i=1; i<=n; i++)
        {
            scanf("%d", a+i);
            sum[i] = sum[i-1]+a[i];
        }

        if(n == 1)
        {
            puts("1");
            continue;
        }

        int ans = 1;
        int cur = 1;
        for(int i=1; i<=n; i++)
        {
            while(cur <= n && a[cur] >= sum[cur-1] - sum[i-1])
            {
                ans = max(ans, cur-i+1);
                cur++;
            }
            if(cur > n)
                break;

        }
        printf("%d\n", ans);
    }
    return 0;
}
第四题, dp
dp[i][j] 表示前 i 个数生成 j 的最小代价

typedef long long LL;
using namespace std;
int n, b;
int a[1007];
int dp[1007][1007];
vector<int> fac;
map<int, int> mp;
int main()
{
    scanf("%d%d", &n, &b);
    for(int i=0; i<n; i++)
        scanf("%d", a+i);
    for(int i=1; i*i<=b; i++)
    {
        if(b%i == 0)
        {
            if(i != b/i)
            {
                fac.push_back(i);
                fac.push_back(b/i);
            }
            else
                fac.push_back(i);
        }
    }
    sort(fac.begin(), fac.end());
    int tot = fac.size();

    for(int i=0; i<tot; i++)
        dp[1][i] = abs(fac[i] - a[0]);

    for(int i=2; i<=n; i++)
    {
        for(int j=0; j<tot; j++)
        {
            dp[i][j] = 0x7fffffff;
            for(int k=0; k<=j; k++)
            {
                if(fac[j] % fac[k] == 0)
                {
                    dp[i][j] = min(dp[i][j], dp[i-1][k] + abs(a[i-1] - fac[j]/fac[k] ));
                }
            }
        }
    }
    printf("%d\n", dp[n][tot-1]);
    return 0;
}


#网易##笔试题目##C/C++#
全部评论
你第二题多少,我也是看了半天实在不懂为啥不对。。
点赞 回复
分享
发布于 2019-09-21 17:18

相关推荐

头像
不愿透露姓名的神秘牛友
04-02 21:36
点赞 评论 收藏
转发
3 4 评论
分享
牛客网
牛客企业服务