恒生电子笔试 杭州 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")
坏了,这次笔试看来要凉凉了。有点小难过。
查看7道真题和解析