【OJ比赛日历】快周末了,不来一场比赛吗? #04.29-05.05 #16场

CompHub提供了实时的比赛聚合服务,涵盖了Kaggle、天池等数据类比赛和LeetCode、牛客等OJ类比赛。本周六至下周五的比赛中,包括了牛客的五一集训派对、LeetCode周赛、Codeforces分组赛以及AtCoder和Codechef的赛事。参赛者可关注CompHub获取最新比赛信息。

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注!

更多比赛信息见 CompHub主页 或 点击文末阅读原文


以下信息仅供参考,以比赛官网为准

目录

2023-04-29(周六) #6场比赛

2023牛客五一集训派对day1

🖥 牛客(Nowcoder) · ⚖️ ACM赛制

🥳 12:00开始 · ⏳ 时长5h

#提高训练营 #牛客系列赛

https://ac.nowcoder.com/acm/contest/55992


第 101 场周赛

🖥 AcWing · ⚖️ ACM赛制

🥳 19:00开始 · ⏳ 时长1h 15min

https://www.acwing.com/activity/content/3229/


ユニークビジョンプログラミングコンテスト2023 春 (AtCoder Beginner Contest 300)

🖥 AtCoder · ⚖️ ACM赛制

🥳 20:00开始 · ⏳ 时长1h 40min

https://atcoder.jp/contests/abc300


第 103 场双周赛

🖥 Leetcode · ⚖️ ACM赛制

🥳 22:30开始 · ⏳ 时长1h 30min

https://leetcode.cn/contest/biweekly-contest-103


Codeforces Round 869 (Div. 2)

🖥 Codeforces · ⚖️ ACM赛制

🥳 22:35开始 · ⏳ 时长2h 15min

https://codeforces.com/contests?complete=true


Codeforces Round 869 (Div. 1)

🖥 Codeforces · ⚖️ ACM赛制

🥳 22:35开始 · ⏳ 时长2h 15min

https://codeforces.com/contests?complete=true


2023-04-30(周日) #2场比赛

第 343 场周赛

🖥 Leetcode · ⚖️ ACM赛制

🥳 10:30开始 · ⏳ 时长1h 30min

https://leetcode.cn/contest/weekly-contest-343


2023牛客五一集训派对day2

🖥 牛客(Nowcoder) · ⚖️ ACM赛制

🥳 12:00开始 · ⏳ 时长5h

#提高训练营 #牛客系列赛

https://ac.nowcoder.com/acm/contest/55993


2023-05-01(周一) #2场比赛

2023牛客五一集训派对day3

🖥 牛客(Nowcoder) · ⚖️ ACM赛制

🥳 12:00开始 · ⏳ 时长5h

#提高训练营 #牛客系列赛

https://ac.nowcoder.com/acm/contest/55994


「DTOI」Round 5

🖥 洛谷 · ⚖️ IOI赛制

🥳 14:00开始 · ⏳ 时长4h

#Rated #团队公开赛

https://www.luogu.org/contest/100048


2023-05-02(周二) #2场比赛

2023牛客五一集训派对day4

🖥 牛客(Nowcoder) · ⚖️ ACM赛制

🥳 12:00开始 · ⏳ 时长5h

#提高训练营 #牛客系列赛

https://ac.nowcoder.com/acm/contest/55995


第五届太原理工大学程序设计新生赛决赛(重现赛)

🖥 牛客(Nowcoder) · ⚖️ ACM赛制

🥳 13:00开始 · ⏳ 时长5h

#高校校赛

https://ac.nowcoder.com/acm/contest/56446


2023-05-03(周三) #2场比赛

2023牛客五一集训派对day5

🖥 牛客(Nowcoder) · ⚖️ ACM赛制

🥳 12:00开始 · ⏳ 时长5h

#提高训练营 #牛客系列赛

https://ac.nowcoder.com/acm/contest/55996


Starters 88

🖥 Codechef · ⚖️ IOI赛制

🥳 22:30开始 · ⏳ 时长2h

https://www.codechef.com/START88


2023-05-04(周四) #1场比赛

Codeforces Round 870 (Div. 2)

🖥 Codeforces · ⚖️ ACM赛制

🥳 22:35开始 · ⏳ 时长2h

https://codeforces.com/contests?complete=true


2023-05-05(周五) #1场比赛

牛客练习赛111

🖥 牛客(Nowcoder) · ⚖️ ACM赛制

🥳 19:00开始 · ⏳ 时长2h 30min

#牛客系列赛 #牛客练习赛

https://ac.nowcoder.com/acm/contest/56458


是的,**你可以通过 `#define x first` 将 `first` 简写为 `x`**,但这属于宏替换(Macro Substitution),它会在预处理阶段无差别地将代码中所有 `x` 替换为 `first`。然而,这种做法虽然技术上可行,但**非常不推荐**,原因如下。 --- ### ✅ 技术上:可以这样用 ```cpp #include <iostream> #include <map> using namespace std; #define x first #define y second int main() { map<string, int> m; m["Alice"] = 25; auto it = m.find("Alice"); if (it != m.end()) { cout << it->x << ": " << it->y << endl; // 输出: Alice: 25 } return 0; } ``` ✅ 编译运行正常,输出: ``` Alice: 25 ``` 因为预处理器会把 `it->x` 替换成 `it->first`,`it->y` 替换成 `it->second`。 --- ### ⚠️ 但是:为什么不推荐? #### 1. **宏是全局的、无作用域的** 一旦你写了 `#define x first`,这个宏会影响整个文件(甚至被其他头文件包含时也会生效),可能导致命名冲突。 例如: ```cpp #define x first void func() { int x = 10; // 这里的 x 会被替换成 first → 变成:int first = 10; ❌ 编译错误! } ``` 这会导致语法错误或难以调试的问题。 #### 2. **降低代码可读性和可维护性** 其他开发者看到 `it->x` 会困惑:“x 是哪里来的?是成员变量吗?” 而 `first` 是标准名称,清晰明了。 #### 3. **容易误用在非 pair 类型上** 如果你不小心对一个不是 `pair` 的对象使用 `.x`,编译器报错会很奇怪: ```cpp pair<int, int> p = {1, 2}; p.x = 10; // 实际是 p.first = 10,能工作,但语义混乱 ``` 但对于普通结构体或类就不适用了。 #### 4. **现代 C++ 提供更好的替代方式** --- ### ✅ 推荐替代方案 #### ✔ 方案 1:使用结构化绑定(C++17) ```cpp auto it = m.find("Alice"); if (it != m.end()) { const auto& [key, value] = *it; cout << key << ": " << value << endl; } ``` 更清晰、安全、现代。 #### ✔ 方案 2:使用别名或局部变量(避免宏) ```cpp auto& key = it->first; auto& val = it->second; cout << key << ": " << val << endl; ``` 简洁且类型安全。 #### ✔ 方案 3:如果用于竞赛编程,短期使用可接受(但仍需谨慎) 在 OJ(如 LeetCode、Codeforces)中,有人为了打字会这么写,但仅限于短程序: ```cpp #define fi first #define se second ``` 然后写 `it->fi`, `it->se`,比 `x/y` 更安全,不易冲突。 --- ### 🔚 总结 | 方法 | 是否推荐 | 原因 | |------|----------|------| | `#define x first` | ❌ 不推荐 | 容易引发命名冲突,破坏代码可读性 | | `#define fi first` / `se second` | ⚠️ 竞赛可用,项目禁用 | 速输入,但仍是宏风险 | | 结构化绑定 `[key, value]` | ✅ 强烈推荐 | 清晰、安全、现代 C++ | | 局部引用 `auto& key = it->first` | ✅ 推荐 | 明确、高效 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值