Codeforces Round 928 (Div. 4)赛后总结
1.Codeforces Round 918 (Div. 4)赛后总结(前缀和)(set部分用法)2.(区间覆盖问题)P5019 [NOIP2018 提高组] 铺设道路和Educational Codeforces Round 158 (Rated for Div. 2)3.Codeforces Round 922 (Div. 2)赛后总结4.Codeforces Round 923 (Div. 3)赛后总结5.Codeforces Round 913 (Div. 3)B(预处理)
6.Codeforces Round 928 (Div. 4)赛后总结
7.Codeforces Round 933 (Div. 3)赛后总结8.Div4 VP总结A
纯水
B
没仔细看题目,思考太多了,其实只有三角和正方形两种情况,一开始想了一堆奇奇怪怪的图形来恶心自己(主要是最近被hack太多了),后面看其他题目无果再回来看发现因为题目本身就只有两个图形,非常好判断。
C(重点)
首先,题目有卡时间0.5s.我意识到了,但却没有啥好办法。尝试正常模拟累加过程,果然t了。
补充知识点:
cf时间复杂度是
我之前一直以为每个t他都是单独算时间的。
我想过预处理所有答案的值,但由于一开始不知道t是总和算时间,太可惜了(掉大分了)
正确答案
就是直接模拟一遍所有值的答案,用数组存储(用到一点前缀和思想)做预处理,最后直接输出数字所对应的数组答案就行。
D
核心思路
知道2147483647是一组数据的和就很好做了,逐一判断就行。
由于数字过大没办法开数组用桶,所以用map做映射。
map的具体用法
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <math.h>
#include <map>
#define ll long long
using namespace std;
const int N = 2e5 + 10;
ll a[N];
int n;
ll ans = 0;
ll tr = 2147483647;
int main() {
int tt;
cin >> tt;
while (tt--) {
ans = 0;
cin >> n;
map<int, int >mp;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
if (mp[tr - a[i]]) {
mp[tr - a[i]]--;
} else {
ans++;
mp[a[i]]++;
}
}
cout << ans << endl;
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤