-
是否有超过baseline的朋友可以分享一下自己的思路,万分感谢。
-
能看看 27 期 28 期的数据是不是规律弄反了吗?根据下一个行星 id 预测当前行星的情况,正确率可以达到 99.6%。反过来根据上一个行星 id 预测当前行星 ID 的白天黑夜,正确率就 80% 不到行号 id day/night694 918382 DAY695 380309 NIGHT301381 918382 DAY301382 380309 NIGHT377227 918382 DAY377228 380309 NIGHT411739 918382 DAY411740 380309 NIGHT512300 918382 DAY512301 380309 NIGHT654034 918382 DAY654035 380309 DAY705379 918382 DAY705380 380309 NIGHT863394 918382 DAY863395 380309 NIGHT874807 918382 DAY874808 380309 NIGHT931411 918382 DAY931412 380309 NIGHT1038798 918382 DAY1038799 380309 NIGHT1345055 918382 DAY1345056 380309 NIGHT1364500 918382 DAY1364501 380309 NIGHT1412440 918382 DAY1412441 380309 DAY1762827 918382 DAY1762828 380309 NIGHT1939502 918382 DAY1939503 380309 NIGHT1953898 918382 DAY1953899 380309 NIGHT1984027 918382 DAY1984028 380309 NIGHT2038796 918382 DAY2038797 380309 NIGHT2300149 918382 DAY2300150 380309 NIGHT2394467 918382 DAY2394468 380309 NIGHT2945815 918382 DAY2945816 380309 NIGHT2958381 918382 DAY2958382 380309 DAY2974366 918382 DAY2974367 380309 NIGHT2993826 918382 DAY2993827 380309 DAY3026384 918382 DAY3026385 380309 NIGHT3332775 918382 DAY3332776 380309 NIGHT3336190 918382 DAY3336191 380309 DAY3510752 918382 DAY3510753 380309 NIGHT3688372 918382 DAY3688373 380309 NIGHT3695855 918382 DAY3695856 380309 NIGHT3725529 918382 DAY3725530 380309 NIGHT3754436 918382 DAY3754437 380309 DAY3761809 918382 DAY3761810 380309 DAY3830525 918382 DAY3830526 380309 DAY3989463 918382 DAY3989464 380309 NIGHT4058095 918382 DAY4058096 380309 NIGHT4065453 918382 DAY4065454 380309 DAY4146817 918382 DAY4146818 380309 NIGHT4162313 918382 DAY4162314 380309 DAY4236501 918382 DAY4236502 380309 NIGHT4244734 918382 DAY4244735 380309 NIGHT4248308 918382 DAY4248309 380309 NIGHT4277716 918382 DAY4277717 380309 NIGHT4286633 918382 DAY4286634 380309 NIGHT4431958 918382 DAY4431959 380309 NIGHT4499151 918382 DAY4499152 380309 NIGHT4615921 918382 DAY4615922 380309 NIGHT4677321 918382 DAY4677322 380309 DAY4919544 918382 DAY4919545 380309 NIGHT5002131 918382 DAY5002132 380309 NIGHT5057794 918382 DAY5057795 380309 NIGHT5096017 918382 DAY5096018 380309 DAY5250759 918382 DAY5250760 380309 NIGHT5280242 918382 DAY5280243 380309 NIGHT5362585 918382 DAY5362586 380309 NIGHT5374762 918382 DAY5374763 380309 NIGHT5377078 918382 DAY5377079 380309 NIGHT5504002 918382 DAY5504003 380309 NIGHT5564302 918382 DAY5564303 380309 NIGHT5572660 918382 DAY5572661 380309 NIGHT5682547 918382 DAY5682548 380309 NIGHT5838455 918382 DAY5838456 380309 NIGHT5943830 918382 DAY5943831 380309 NIGHT6291755 918382 DAY6291756 380309 NIGHT6469725 918382 DAY6469726 380309 NIGHT6610479 918382 DAY6610480 380309 NIGHT6841717 918382 DAY6841718 380309 DAY6865437 918382 DAY6865438 380309 NIGHT6910165 918382 DAY6910166 380309 DAY可以看出下一个行星id是380309,918382行星就一定是白天
-
正如我的理解, 评分完全依托自己写的线下评测脚本, 那这个分数还有什么意思, 公平性在哪里?如果复测会用统一的评测脚本, 那么为什么不直接部署到线上, 是觉得在榜上比谁会造梗数字好玩吗(笑)
-
如题......................................
-
[问题求助] 第24期-Checker returned an error: row 61595: col 1: Token a_j is empty (maybe you forget to read whitespace characterChecker returned an error: row 61595: col 1: Token a_j is empty (maybe you forget to read whitespace character请问我这里的格式是为什么输出不正确了?
-
‼34万奖金‼“电网杯”算法大赛正火热开赛中🔥🔥🔥🔥技术集结令! 「电网杯」算法大赛火热开赛中,邀你解锁电力未来密码!🌟这里有真实电网场景的硬核赛题,等待你用算法突破能源优化难题;🌟这里有数十万奖金池与荣誉证书,为技术实力加冕;🌟这里有行业大咖组成的评委天团,帮你直通职业快车道!不管你是算法新秀还是代码战神,这里都是你的创新秀场‼用智慧为电网赋能,让每一行代码都闪耀价值!👍👉 即刻加入这场能源与智能的狂欢盛宴吧~
-
比赛页只提供了这三个文件,而28期提供了,这是啥情况?
-
🥰两个链表的第一个公共结点😄题目描述😊问题描述给定两个单向链表,找出它们的第一个公共节点。如果两个链表没有交点,则返回 null。这意味着链表从某个结点之后开始共享相同的后续节点。需要注意的是,这里的"公共"结点不是指值相同,而是指两个链表引用的同一个结点,即在内存中的地址相同。🥳解题思路解决这个问题的核心在于如何找到链表的第一个公共节点。可以通过观察链表的结构来思考:设链表 A 的长度为 a + c,其中 a 是链表 A 不与链表 B 共享的部分的长度,c 是 A 和 B 共有的部分长度。同样地,设链表 B 的长度为 b + c,其中 b 是链表 B 不与链表 A 共享的部分。两条链表在某个节点开始共享尾部节点,因此可以得到以下等式:链表 A 的总长度 = a + c链表 B 的总长度 = b + c可知:如果我们从头开始遍历链表 A 和链表 B,由于它们的长度不同,直接同时遍历无法保证两条链表的指针在公共部分的第一个节点相遇。但是,如果我们遍历完一条链表后,切换到另一条链表继续遍历,则可以通过控制遍历的顺序来同步两个指针的速度。即遍历完链表 A 后从链表 B 的头部重新开始遍历,同样地,遍历完链表 B 后从链表 A 的头部重新开始遍历。通过这样的方式,两个指针会在相同的时刻访问到链表的公共部分。具体步骤如下:初始化两个指针 l1 和 l2,分别指向链表 A 和链表 B 的头节点。如果 l1 和 l2 不相等,则分别遍历链表 A 和 B。当某个指针到达尾部时,切换到另一条链表的头部继续遍历。当两个指针相遇时,返回该指针所指向的节点,即第一个公共节点。时间复杂度和空间复杂度分析时间复杂度: O(m + n),其中 m 和 n 分别是链表 A 和 B 的长度。每个指针遍历链表的次数最多为两次,因此时间复杂度为 O(m + n)。空间复杂度: O(1),只用了两个指针来进行遍历,因此不需要额外的空间。💝代码实现下面是基于上述思路的 Java 实现代码:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Solution { public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { ListNode l1 = pHead1; ListNode l2 = pHead2; // 当两个指针不相等时,继续遍历 while (l1 != l2) { // l1 先走完链表 A,转向链表 B l1 = (l1 == null) ? pHead2 : l1.next; // l2 先走完链表 B,转向链表 A l2 = (l2 == null) ? pHead1 : l2.next; } // 相遇时即为第一个公共结点,或者为 null(无公共节点) return l1; } } 代码详解ListNode 类:定义了链表的节点结构,每个节点包含一个整数值 val 和指向下一个节点的指针 next。FindFirstCommonNode 方法:该方法接受两个链表的头节点作为参数,并返回第一个公共节点。遍历链表的方式如前面所述,通过指针的切换,两个指针会在公共节点相遇。示例考虑以下两个链表:链表 A: 1 -> 2 -> 3 -> 6 -> 7链表 B: 4 -> 5 -> 6 -> 7在这种情况下,链表 A 和 B 的第一个公共节点是 6。通过上述方法,程序会正确找到该节点。😄总结通过同步两个指针的遍历方式,能够有效地解决两个链表寻找第一个公共节点的问题。该方法的时间复杂度为 O(m + n),空间复杂度为 O(1),在链表问题中是非常高效的一种解法。这种技巧值得学习,因为它不仅解决了本题,还可以运用于其他链表相关的题目中,比如寻找链表的环起点等。
-
🥰数组中的逆序对😄问题描述给定一个数组,数组中的两个数字如果满足以下条件,则它们组成一个逆序对:假设数组为 nums[i] 和 nums[j],若 i < j 并且 nums[i] > nums[j],则 (nums[i], nums[j]) 是一个逆序对。目标是计算数组中这样的逆序对的数量。示例假设给定的数组为 [7, 5, 6, 4]。通过观察可以得到以下逆序对:(7, 5)(7, 6)(7, 4)(5, 4)(6, 4)总共有 5 对逆序对,因此最终结果为 5。😃解题思路直接使用双重循环暴力枚举每一对元素来检查是否为逆序对的复杂度为 O(n2)O(n^2)O(n2),这在数组规模较大时效率较低。为了解决这个问题,我们可以借助归并排序算法,通过将问题分解为更小的子问题来提高效率。归并排序思想归并排序是一种分治算法。它将一个大的问题分解为两个小的子问题,递归地解决子问题,最后将子问题的解合并成原问题的解。在计算逆序对时,我们可以通过在归并的过程中统计逆序对的数量,从而实现线性对数级别的时间复杂度 O(nlogn)O(n \log n)O(nlogn)。具体步骤分解问题: 将数组分成左右两部分,分别对左右部分进行归并排序。归并: 在归并的过程中,若左半部分的某个数字大于右半部分的某个数字,那么这个数字及左半部分后续的所有数字都比右半部分的数字大,形成逆序对。我们可以在归并的过程中统计这些逆序对。💖代码实现以下是基于归并排序来解决逆序对问题的Java代码实现:private long cnt = 0; // 用于计数逆序对的数量 private int[] tmp; // 辅助数组,避免在递归过程中多次创建新数组 public int InversePairs(int[] nums) { tmp = new int[nums.length]; mergeSort(nums, 0, nums.length - 1); return (int) (cnt % 1000000007); // 结果对1000000007取模,防止结果过大 } private void mergeSort(int[] nums, int l, int h) { if (h - l < 1) // 当子数组的长度小于等于1时,不需要进行排序 return; int m = l + (h - l) / 2; // 计算中间位置 mergeSort(nums, l, m); // 递归排序左半部分 mergeSort(nums, m + 1, h); // 递归排序右半部分 merge(nums, l, m, h); // 合并排序后的两个子数组 } private void merge(int[] nums, int l, int m, int h) { int i = l, j = m + 1, k = l; // 初始化左右指针和辅助数组的指针 while (i <= m || j <= h) { // 当左、右两部分数组未完全处理完时 if (i > m) { tmp[k] = nums[j++]; // 左边处理完了,直接将右边的元素加入辅助数组 } else if (j > h) { tmp[k] = nums[i++]; // 右边处理完了,直接将左边的元素加入辅助数组 } else if (nums[i] <= nums[j]) { tmp[k] = nums[i++]; // 左边元素小于等于右边元素,加入辅助数组 } else { tmp[k] = nums[j++]; // 右边元素小于左边元素,加入辅助数组 cnt += m - i + 1; // 统计逆序对,左边的剩余元素都比当前右边元素大 } k++; } // 将辅助数组的结果复制回原数组 for (k = l; k <= h; k++) nums[k] = tmp[k]; } 代码讲解cnt:用于计数逆序对的总数量。tmp:辅助数组,用于在归并时暂存排序后的子数组。InversePairs 方法:对输入数组调用归并排序,并返回逆序对数量。为了避免结果过大,返回时对 1000000007 取模。mergeSort 方法:实现归并排序的递归逻辑,将数组分为两部分,分别进行排序,并在排序过程中调用 merge 方法。merge 方法:实现两个已排序子数组的合并过程,同时统计逆序对的数量。若左边子数组的某个元素大于右边子数组的当前元素,则说明该元素与右边子数组当前元素及其后的所有元素都形成了逆序对。时间复杂度分析归并排序的时间复杂度是 O(nlogn)O(n \log n)O(nlogn),其中 nnn 是数组的长度。由于在归并的过程中我们只需额外进行 O(n)O(n)O(n) 的操作来统计逆序对,因此整个算法的时间复杂度仍然是 O(nlogn)O(n \log n)O(nlogn)。这比直接使用 O(n2)O(n^2)O(n2) 的双重循环要高效得多,特别是在数组规模较大时。😄总结逆序对问题是一个经典的算法问题,借助归并排序可以将其优化至 O(nlogn)O(n \log n)O(nlogn) 的时间复杂度。通过在归并排序的过程中适时地统计逆序对,我们可以有效地解决这个问题。
-
🥰第一个只出现一次的字符位置🤔题目描述在一个字符串中找到第一个只出现一次的字符,并返回它的位置。字符串只包含 ASCII 码字符。Input: abacc Output: b💖解题思路方法一:使用 HashMap最直观的方法是使用 HashMap 来统计每个字符的出现次数。具体步骤如下:遍历字符串,将字符作为键,出现次数作为值存入 HashMap。再次遍历字符串,查找第一个出现次数为 1 的字符,返回其位置。示例代码如下:public int FirstNotRepeatingChar(String str) { // 创建一个 HashMap,用于统计每个字符的出现次数 Map<Character, Integer> countMap = new HashMap<>(); // 遍历字符串,将字符作为键,出现次数作为值存入 HashMap for (char c : str.toCharArray()) { countMap.put(c, countMap.getOrDefault(c, 0) + 1); } // 再次遍历字符串,查找第一个出现次数为 1 的字符 for (int i = 0; i < str.length(); i++) { if (countMap.get(str.charAt(i)) == 1) { // 返回该字符的位置 return i; } } // 如果没有找到,返回 -1 return -1; } 以上实现的空间复杂度还不是最优的。考虑到只需要找到只出现一次的字符,那么需要统计的次数信息只有 0,1,更大,使用两个比特位就能存储这些信息。方法二:使用整型数组考虑到 ASCII 码字符有限,可以使用长度为 128 的整型数组代替 HashMap,来记录每个字符的出现次数。实现方法与上面类似,但效率更高。public int FirstNotRepeatingChar(String str) { // 创建一个长度为 128 的整型数组,用于统计字符出现次数 int[] cnts = new int[128]; // 遍历字符串,统计每个字符的出现次数 for (int i = 0; i < str.length(); i++) { cnts[str.charAt(i)]++; } // 再次遍历字符串,查找第一个出现次数为 1 的字符 for (int i = 0; i < str.length(); i++) { if (cnts[str.charAt(i)] == 1) { // 返回该字符的位置 return i; } } // 如果没有找到,返回 -1 return -1; } 方法三:使用位集(BitSet)为了进一步优化空间复杂度,可以使用 BitSet 来存储每个字符的状态,分为三种情况:未出现(0)、出现一次(1)和出现多次(2)。通过两个 BitSet,可以高效地统计字符的出现情况。public int FirstNotRepeatingChar2(String str) { // 创建两个 BitSet,用于记录字符的状态 BitSet bs1 = new BitSet(128); // 用于记录字符出现一次 BitSet bs2 = new BitSet(128); // 用于记录字符出现多次 // 遍历字符串,更新字符的状态 for (char c : str.toCharArray()) { if (!bs1.get(c) && !bs2.get(c)) { // 状态 0 -> 1(首次出现) bs1.set(c); } else if (bs1.get(c) && !bs2.get(c)) { // 状态 1 -> 2(再次出现) bs2.set(c); } } // 再次遍历字符串,查找第一个状态为 1 的字符 for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (bs1.get(c) && !bs2.get(c)) { // 状态 1 // 返回该字符的位置 return i; } } // 如果没有找到,返回 -1 return -1; } 😄总结本文介绍了三种方法来找到字符串中第一个只出现一次的字符。通过不同的数据结构和算法,解决方案的效率和空间复杂度各有不同。选择合适的方法取决于具体需求和数据规模。
-
官方的交流群已经扫码过期了,求官方邀请我进群,或者大佬们比赛结束后能否分享下自己的解决方案供学习下,提前感谢了!
-
这是一场什么样的比赛?“华为智联杯”无线程序设计大赛 ,是由华为无线产品线面向高校软件精英精心构筑的巅峰竞技场。本赛事旨在点燃软件精英的创意火花与探索激情,在数字智能浪潮中,探索AI、高性能算法等软件技术与无线通信的融合创新。赛题来源于无线通信技术的前沿业务场景,融合了工程技术实践和学术实践,力图挖掘并培养未来的科技领航者。我们诚邀怀揣梦想的软件精英,加入这场启迪智慧、挑战极限的非凡旅程!让我们一起启航“智联杯“,引领无线技术的新纪元!如何报名参赛?报名链接:cid:link_0有问题如何求助?· 在本版论坛发帖求助:比赛过程中参赛选手可以在论坛中发帖,详细描述您遇到的问题,大赛组委会工作人员将会在工作日工作时间,在社区回复(为保证大赛公平公正原则,大赛官方仅针对报名方式、赛制、赛题、大赛安排等问题进行答疑)。· 联系大赛组委会工作邮箱:如没有得到及时回复,可以发邮件至大赛工作人员邮箱:zhongziyi@huawei.com· 赛事交流QQ群:257010855Q:队伍的每个队员都要在华为云的报名通道完成报名吗?A:参赛的每个队员都需要报名,报名之后组件团队,后续软件挑战赛道的提交以团队为单位进行提交。 Q:通用算法赛道具体赛制是什么,有语言限制吗?电脑如何分配?A:通用算法赛道参考ACM赛制,语言没有限制,一组一台电脑。Q:软件挑战赛道主要是干什么,是完成需求开发吗?A:软件挑战赛道可以参考软挑赛,针对给定的需求场景,通过不断迭代获取最佳性能。Q:软件挑战赛道和通用算法赛道在时间上会冲突吗?A:两个比赛的线下提交是同一个时间,因此从时间上看会存在冲突的可能。Q:非上海市高校学生是否可以参加本次比赛?A:非常欢迎非上海市高校学生参加本次比赛。有两点需要注意:1)本次比赛为线下比赛,比赛地点为上海大学宝山校区,选手需要现场签到2)由于本次比赛的通用算法赛道的结果会应用于2025年中国大学生程序设计竞赛上海市选拔,因此通用算法赛道的奖金方案也将作用于选拔范围,因此非上海市高校学生在通用算法赛道上按照打星方式参赛。软件挑战赛道则无该约束,可正常参与奖金评选。Q:通用算法赛道和软件挑战赛道是否可以跨学校跨专业组队? A:由于通用算法赛道的结果会应用于2025年中国大学生程序设计竞赛上海市选拔,不建议跨校组队。软件挑战赛道可以跨学校和跨专业组队Q:通用算法赛道结果如果作为上海市赛选拔,会有CCPC的榜单和奖牌吗?A:本次比赛由华为进行赞助,为通用算法赛道和软件挑战赛道设置了对应的奖金,除此之外,兼顾上海市赛选拔,通用算法赛道会按照10%,20%, 30%的比例颁发奖牌和证书。Q:我如果不报名可以直接参加比赛吗?A: 不可以哦。本次比赛评奖赛道必须与选手的报名赛道保持一致,如果不报名,或者报名时选择的赛道和现场比赛的赛道不一致则没法参加评奖。
-
对于每个请求来说,我是允许可以让一个用户的推理样本的请求送到不同的server吗?如果这样的话,题目中的move(move中写的是NPU标号不同,但没有说不同的server的情况(给出的输出样例里有不同server情况的))如何计算呢?能不能额外补充一份赛题解释,光看这份的话感觉get到的信息不是很多。
-
1、涉嫌利用小号占据前排,影响公平竞争环境,违反社区规范(1)25期(1)24期2、黑科技???or内幕???在下表示不相信世界上有这么全能的人3、有些前排选手未见0分,突然从未上榜到直接冲榜前几名???4、差异不大,排名固定。你品你细品此行为严重破坏公平竞争环境,损害用户体验,违背平台秩序!以上信息请平台核实后,尽快处理。谢谢!!!给其他选手一个说法:我们还有必要继续参加吗请平台立即核实并严肃处理,清除违规账号,还社区一片清净公平之地!
-
请问有编程语言的限制吗?貌似没有看到编译环境说明以及其他的附件请问获奖条件是否需要超过历史基线?在奖项配置中没有看到相关说明
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签