首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
宫水三叶2
复旦大学 算法工程师
发布于上海
关注
已关注
取消关注
@keduoli:
牛客周赛 Round 11 解题报告 | 珂学家 | 线性dp+大剪枝
前言整体评价T3和round 9的T3重复了,好意外。T4有点意思,比赛中一度不敢下手,然后试试骗分,发现过了。后来才知道,原来元素两两不等,那基本就退化为了。A. 小美的外卖订单编号index 1 / index 0的问题先减1,再加1import java.io.BufferedInputStream;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(new BufferedInputStream(System.in)); int kase = sc.nextInt(); while (kase-- > 0) { int m = sc.nextInt(); int x = sc.nextInt(); int r = (x - 1) % m + 1; System.out.println(r); } }}B. 小美的数组操作2模拟就行,最后判定一下import java.io.BufferedInputStream;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(new BufferedInputStream(System.in)); int kase = sc.nextInt(); while (kase-- > 0) { int n = sc.nextInt(), m = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } for (int i = 0;i < m; i++) { int u = sc.nextInt() - 1; int v = sc.nextInt() - 1; arr[u]++; arr[v]--; } boolean f = true; int prev = Integer.MIN_VALUE; for (int i= 0; i < n; i++) { if (prev > arr[i]) f = false; prev = arr[i]; } System.out.println(f ? "Yes" : "No"); } }}C. 小美的01串翻转重题了,复制下上份题解枚举起点,然后线性模拟, 累加0/1开头的最小值代价即可。import java.io.BufferedInputStream;import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(new BufferedInputStream(System.in)); char[] str = sc.next().toCharArray(); long ans = 0; for (int i = 0; i < str.length; i++) { int c0 = 0, c1 = 0; for (int j = i; j < str.length; j++) { if ((j - i) % 2 == 0) { c0 += str[j] == '0' ? 0 : 1; c1 += str[j] == '1' ? 0 : 1; } else { c0 += str[j] == '1' ? 0 : 1; c1 += str[j] == '0' ? 0 : 1; } // 取两者最小值 ans += Math.min(c0, c1); } } System.out.println(ans); } }这个时间复杂度为那这题是否可以从贡献的角度切入呢?感觉有的难,因为子数组它是取代价最小的,每个点的贡献值好像是离散的,并不是一个范围区间。D. 小美的元素删除这题的切入点序列两两为倍数元素互不相等排序后,后一个元素都是前一个元素的倍数因为最大数为10^9, 而最小倍数为2那么序列的长度最多为31int x = n - k;if (x >= 31) { System.out.println(0); return;}我们把删除k个元素,转化为挑选n-k个那定义 dp[i][s], 以i元素为末尾元素,且前排累计挑选s个 的方案数同时为数组建图,这样可以减少状态转移的枚举数这题的难点在于,如果没有元素彼此不相同的约束,那该如何解?import java.io.*;import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(new BufferedInputStream(System.in)); int n = sc.nextInt(), k = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } int x = n - k; if (x >= 31) { System.out.println(0); return; } Arrays.sort(arr); long[][] opt = new long[n][x + 1]; long mod = 10_0000_0007; // 建图 List<Integer> []g = new List[n]; Arrays.setAll(g, t -> new ArrayList<>()); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (arr[j] % arr[i] == 0) { g[i].add(j); } } } // dp long ans = 0; for (int i = 0; i < n; i++) { opt[i][1] = 1; for (int j = 0; j < x; j++) { if (opt[i][j] == 0) continue; // 这个剪枝也很重要 for (int v: g[i]) { opt[v][j + 1] = (opt[v][j + 1] + opt[i][j]) % mod; } } } for (int i = 0; i < n;i++) { ans = (ans + opt[i][x]) % mod; } System.out.println(ans); }}写在最后
点赞 3
评论 2
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
12-05 10:30
美团_HR(准入职员工)
浩鲸科技内推,浩鲸科技内推码
浩鲸科技测试工程师(福州)timeline2.25投递3.13一面3.18二面一面✅线上进行,面试官很友好,深挖简历和项目,问得很细,细到比赛里使用的软件,还问了测试工程师需要具备什么特质;专业知识问了mysql相关的两个问题,只删除数据不删除整个表用什么语句命令?有个表格,想要按照什么要求进行升序排列,用什么语句?自我感觉mysql回答的不好,毕竟没怎么看过但是没想到还是收到了二面邀请全程持续二十分钟左右🕧二面✅线上进行,面试官更友好大多时候是在闲聊,简历问的很少,还让我用英文介绍自己的家乡(我也是二面才发现我投的是国际的岗位)全程持续30分钟左右🕧在讨论到我喜欢出差时,面试官觉得我更适...
点赞
评论
收藏
分享
12-04 17:40
已编辑
牛客用户运营
2025年对你来说是怎样的一年?
是终于冲破迷茫、在大雾中找到方向的一年,还是在平淡日子里积蓄力量、默默扎根的一年?你的2025年关键词是什么?先来看看牛客2025年的关键词吧👇1月关键词:“华为开奖”“暖心HR”“回家过年”.........牛友热门内容:《看到HR回的话想哭了》、《签了华为真是不一样》2月关键词:“春招启动”“26届备战暑期实习”“实习生职场受难记”.........牛友热门内容:《春招也是好起来了》《鼓起勇气管mentor要饭钱..》3月关键词:“校招笔试”“暑期实习上岸”“小公司实习历险记”.........牛友热门内容:《字节OC!26暑期提前结束》《老板主动提出团建请吃饭》4月关键词:“暑期实习晒...
简历在发光耶:
25年一直是充满焦虑的一年
2025年终总结
点赞
评论
收藏
分享
10-27 17:51
字节跳动_Seed_项目经理
姐你别这么钓鱼啊????
RT 问的问题如同1w5,实际情况1500,把哥们当250.。。
点赞
评论
收藏
分享
10-27 10:13
成都理工大学 C++
秋招日常被hr震惊
难不成除了我人均四五段大厂吗,怎么问出来的
迷茫的大四🐶:
干脆大厂搞个收费培训得了,这样就人均大厂了
点赞
评论
收藏
分享
12-05 10:08
SHEIN_HR(准入职员工)
SHEIN内推,SHEIN内推码
在SHEIN你可以获得什么? 1⃣️首先,时尚公司体验感直线拉满!我很多同学毕业都去做男装,做运动服,做轻熟装!但是shein真的很时尚!你可以在摄影棚直线面对外国模特,给她们搭配衣服和配饰! 2⃣️公司工作环境超级好,工作氛围也很轻松愉快啦~每个校招生都会有专门的带教导师,很重要!!不会走冤枉路,能快速学习到东西,快速成长~咱们就是说,直球女孩的快乐!! 3⃣️福利 超级翻倍!任何节日你都能收到来自公司满满的心意公司每个人都是shein专业的周边大户~下午茶吃到你嘴软,节日小礼物也是经常拿~ 4⃣️超值内购会!来到快时尚公司,妈妈再也不怕我没有衣服穿了!各种样衣全部十元!只要你敢来,公司就敢...
SHEIN希音公司福利 258人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
零经验也能斩获实习offer
4063
2
...
7天10面 来分享一下我的11月面筋!
3648
数字马力交流圈
热聊中
3
...
0实习冲明年前端暑期,要不要找寒假实习?
3199
4
...
这环境。。。我来谈谈选择和长期主义
2793
华为进展交流圈
热聊中
5
...
工作两年裸辞读研,我后悔了吗···
2629
6
...
百度网盘Golang开发一面凉经
2449
7
...
都是匆忙的选择,感觉人生真的很儿戏
2234
8
...
小红书26校招Java二面85min
1626
9
...
LangChain4j(Java 版 LangChain)速成教学
1430
10
...
26岁的我,后悔读双非硕士
1353
创作者周榜
更多
正在热议
更多
#
你今年做了几份实习?
#
2325次浏览
42人参与
#
实习必须要去大厂吗?
#
166178次浏览
1651人参与
#
百融云创求职进展汇总
#
8660次浏览
116人参与
#
实习越久越好,还是多多益善?
#
7202次浏览
64人参与
#
刚工作,应该先搞钱or搞成长?
#
3407次浏览
52人参与
#
0经验如何找实习?
#
9144次浏览
205人参与
#
求职低谷期你是怎么度过的
#
23649次浏览
316人参与
#
你是怎么和mt相处的?
#
81904次浏览
426人参与
#
25年找工作是什么难度?
#
5316次浏览
57人参与
#
一上班就想____,这正常吗?
#
1786次浏览
40人参与
#
你开始找寒假实习了吗?
#
5251次浏览
93人参与
#
你找工作经历过哪些骗局?
#
3218次浏览
60人参与
#
离职你会和父母说吗?
#
4687次浏览
61人参与
#
找工作能把i人逼成什么样
#
1073次浏览
19人参与
#
研究所VS国企,该如何选
#
230213次浏览
1954人参与
#
产品每日一题
#
73109次浏览
656人参与
#
面试题刺客退退退
#
490306次浏览
7280人参与
#
如果有时光机,你最想去到哪个年纪?
#
63212次浏览
842人参与
#
你的实习什么时候入职
#
323016次浏览
2182人参与
#
你觉得技术面多长时间合理?
#
153296次浏览
1100人参与
#
你会为了工作牺牲生活吗?
#
64832次浏览
438人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务