吉比特笔试好难

选择填空感觉还好就是基础和c(c都快忘光了。。。)
coding第一题easy
第二题就开始不会了,俩哥们从数组左右取数,可以取1-n个数,但只能取一边,问最终俩哥们差值最大
给了个例题[10 -100 -200 20] ans=90 看了半天才懂是a取10,b取20,a取-100,b取-200才行。不能贪心,直接麻

第三题捉精灵
图问题没错,但是好麻烦啊,我的想法先判断几个连通图,然后每个连通图找个最小切入点,然后遍历连通图并且和直接捉精灵的值相比较取最小。
更坑的是,要捉n-1只精灵,这个还没想到咋搞。。。

这也太难了吧,23题偷了10就交卷了呜呜呜😥
全部评论
看来只有我第一题都不会
5 回复 分享
发布于 2023-08-30 21:16 江苏
第一题,排序重点是如何正确比较大小, 我用了递归来比较两个团队间排名。 type team struct { name string rank []int } func compare(a, b *team, start int) bool { if start >= len(a.rank) { return a.name < b.name } if a.rank[start] > b.rank[start] { return true } else if a.rank[start] < b.rank[start] { return false } return compare(a, b, start+1) } // 排序 for i := 0; i < len(rank); i++ { max := i for j := i + 1; j < len(rank); j++ { if compare(rank[j], rank[i], 0) { max = j } } rank[i], rank[max] = rank[max], rank[i] }
3 回复 分享
发布于 2023-08-30 21:48 广东
第一题我用的python傻子方法,有点像进制,因为比赛场<1000,for循环每场,那么第一名直接1000的26次方+上次的,第二名1000的25次方+上一轮的...。保存在字典里,最后结果排序。 为啥能成功呢,主要是无论多少个第二名加起来也比不上一个第一名的值。我感觉用c会比较难,得long long long long...
3 回复 分享
发布于 2023-08-30 21:28 新加坡
第三题是最小生成树叭
1 回复 分享
发布于 2023-08-30 21:44 广东
第一题30%,但给的用例和脑测都没问题,搞不懂
1 回复 分享
发布于 2023-08-30 21:32 福建
三题都是0%
1 回复 分享
发布于 2023-08-30 21:27 江苏
第一题咋做的,我模拟A了第二题
1 回复 分享
发布于 2023-08-30 21:15 陕西
求问23题思路
1 回复 分享
发布于 2023-08-30 21:13 新加坡
同a第一题,第2题连第二个案列都不理解。第三题直接没有做的欲望了
点赞 回复 分享
发布于 2023-08-31 22:27 四川
笑死,做一半打游戏去了
点赞 回复 分享
发布于 2023-08-31 15:27 安徽
痛苦😥
点赞 回复 分享
发布于 2023-08-31 12:00 辽宁
第三题dfs剪枝了还是超时,写了贼久就a了10
点赞 回复 分享
发布于 2023-08-31 00:02 四川
😓不知道为啥第一题就过了不到一半,还写了半天
点赞 回复 分享
发布于 2023-08-30 22:27 四川
第一题我写了一下,不知道能不能过,请大佬们看看 struct team { int index; bool flag; int BestMc; int BestMcCount; team(int i,bool f,int Mc,int McCount) { index = i; flag = f; BestMc = Mc; BestMcCount = McCount; } }; bool cmp(team a, team b) { if(a.BestMc!=b.BestMc) { return a.BestMc<b.BestMc; } else if(a.BestMcCount != b.BestMcCount) { return a.BestMcCount>b.BestMcCount; } else { return a.index < b.index; } } int main() { int n; cin>>n; vector<team> TM; for(int i = 0 ; i < 26; i++) { TM.push_back(team(i,false,27,0)); } string str; for(int i = 0 ; i < n; i++ ) { cin>>str; int MC = 1; for(int i = 0 ; i < str.size(); i++) { if(TM[str[i] - 'a'].BestMc == MC) { TM[str[i] - 'a'].BestMcCount++; } else if(TM[str[i] - 'a'].BestMc > MC) { TM[str[i] - 'a'].BestMc = MC; TM[str[i] - 'a'].flag = true; TM[str[i] - 'a'].BestMcCount = 1; } MC++; } } sort(TM.begin(),TM.end(),cmp); for(int i = 0 ; i < 26; i++) { if(TM[i].flag == true) { cout<<char(TM[i].index + 'a'); } } }
点赞 回复 分享
发布于 2023-08-30 22:21 黑龙江
我不明白为什么第二题的第二个案例a不选20,然后b选10,a选-100,这样a的出来的结果不是更大吗?
点赞 回复 分享
发布于 2023-08-30 21:54 广东
第一题咋做啊
点赞 回复 分享
发布于 2023-08-30 21:43 广东
就我第一题不会是吧
点赞 回复 分享
发布于 2023-08-30 21:35 广东
第一题啥思路
点赞 回复 分享
发布于 2023-08-30 21:35 广东
三题10难绷
点赞 回复 分享
发布于 2023-08-30 21:34 广东
很离谱,我第一题用例全过了,但是提交就是0。第二题用dp就好了
点赞 回复 分享
发布于 2023-08-30 21:30 湖北

相关推荐

05-25 10:45
西华大学 Java
Frank_zhang:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
点赞 评论 收藏
分享
评论
5
5
分享

创作者周榜

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