恒生电子笔试 杭州 c++岗

简单题目没有AC,数据库不会,pdf了

数据库——非常长的一道题。由于楼主非科班+刚开始学数据库,只写了LEETCODE上热门50 的30题,根本cover不住

c++ 第一题,给定若干个点,求解最长斜率 连续递增序列。AC

第二题,给若干个坐标(x,y) 和对应的电量s作为初始状态,以及一个全局的阈值c 规定 每秒s自增一次,如果s==c+1则自动归零。

输入若干个t,x1,y1,x2,y2

求解t时刻由x1,y1 x2,y2围的矩形内的电池电量总和。其中x y的范围是1-100。

但是不知道为什么只过了20%的用例。

后来问deepseek,他说可能每一个x,y会对应好多个小电池。。。。额。有可能是这个原因,不然只过了20%说不过去啊。

把代码贴一下,大家发现问题欢迎提示我。

#include <iostream>
#include <map>
#include <vector>

using namespace std;
int main() 
{
    int n,q,c;
    cin>>n>>q>>c;
    vector<int>x,y,s;
    vector<vector<int>>map_data(101,vector<int>(101,-1));
    for(int i=0;i<n;i++)
    {
        int xx,yy,ss;
        cin>>xx>>yy>>ss;
        map_data[xx][yy]=ss;
    }    
    vector<int>res;
    for(int i=0;i<q;i++)
    {
        int x1,y1,x2,y2,t;
        cin>>t>>x1>>y1>>x2>>y2;

        int sum_this = 0;
        for(int xxx=x1;xxx<=x2;xxx++)
        for(int yyy=y1;yyy<=y2;yyy++)
        {
            if(map_data[xxx][yyy]==-1)continue;
            sum_this += (map_data[xxx][yyy] + t) % (c+1);
        }
        res.push_back(sum_this);
    }
    for(int i:res)
    cout<<i<<endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

坏了,这次笔试看来要凉凉了。有点小难过。

全部评论
超时了吧,这题c只有10,按照c分类做一个二维前缀和就行
1 回复 分享
发布于 03-28 21:10 甘肃
数据库那道没做,后面编程也一道没a,今天居然收到测评了
1 回复 分享
发布于 04-01 10:12 陕西
笔试题好难
点赞 回复 分享
发布于 03-28 21:09 河南
忘记做笔试了,但是刚才发现这个是春招岗,不是实习岗吗?为什么会给我发笔试链接呢
点赞 回复 分享
发布于 03-29 00:20 江苏
数据库实操直接傻掉,编程第二道也有点难度
点赞 回复 分享
发布于 03-29 14:02 辽宁

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务