题面链接:Here

代码提交:Here

年终彩蛋

1466A. Bovine Dilemma

题意是:给定一个固定点(0,1),然后给定n个在x轴的点,求面积不同的三角形个数

简单思考一下就容易发现这个是一个高相等的三角形,只需要去比较底边的长度不同的有多少个即可。

//AC代码
void solve() {
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; ++i)
cin >> v[i];
if (n == 1) {
cout << 0 << endl;
return;
}
set<int> s;
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
if (i != j)
s.insert(v[j] - v[i]);
//由于直接暴力找的答案是正解的两倍(会存入等大小的负值),所以要除2
cout << s.size() / 2 << endl;
}

进阶挑战:Try to solve it for \(n,x_i≤10^5\).

//待补

1466B. Last minute enhancements

给定\(n\) 个音符的值,当可以为重复出现的值加一时,最终能有多少个不同音符

标记出现过的,如果下次还出现则令其加一再标记

//原提交写法
void solve() {
cin >> n;
vector<int> v(n);
int cnt = 0, sum = 0;
int book[2 * (n + 1)] = {0};
set<int> s;
for (int i = 0; i < n; ++i) {
cin >> v[i];
if (book[v[i]])
v[i]++;
s.insert(v[i]);
book[v[i]]++;
}
if (n == 1) {
cout << 1 << endl;
return;
}
cout << s.size() << endl;
}
//写法优化
void solve() {
ll n, x;
cin >> n;
set<ll> s;
for (int i = 0; i < n; ++i) {
cin >> x;
if (s.count(x))
x++;
s.insert(x);
}
cout << s.size() << endl;
}
//多利用STL函数帮助解决问题

进阶挑战:对于给定的 \(k_i\),如果我们可以将音符 \(x_i\) 增加 [0,\(k_i\)]中的任何整数,可以解决吗?

//待补

1466C. Canine poetry

如果存在一个长度大于3的回文,则存在一个长度为2或3的回文。此观察结果使我们可以简化擦除所有长度为2或3的回文的任务。 每个字符最多将被替换一次。

从现在开始,有几种可能的解决方案。 最简单的方法是从左到右遍历一个单词。 当我们遇到以当前位置结束的回文(长度为2或3),并且由未标记的元素组成时,我们会贪婪地将此字符标记为要替换的字符。 标记字符的数目就是答案,因为事实证明,通过仅替换标记位置上的字母,我们可以获得有效的无回文序列。 复杂度为O(n)。

当然这道题也可以用DP做,但更复杂:时间复杂度\(O(n*26^2)\)

char s[N];
bool vis[N];
void solve() {
cin >> (s + 1);
n = strlen(s + 1);
for (int i = 1; i <= n; i += 1)
vis[i] = 0;
int ans = 0;
for (int i = 1; i <= n; i += 1) {
if (i >= 2 and s[i] == s[i - 1] and not vis[i - 1]) {
vis[i] = 1;
ans += 1;
}
if (i >= 3 and s[i] == s[i - 2] and not vis[i - 2] and not vis[i]) {
vis[i] = 1;
ans += 1;
}
}
cout << ans << "\n";
}

进阶挑战:如果字母可以更改,并且每次更改后都需要计算结果怎么办?

1466D. 13th Labour of Heracles

树构造,写一下入度和出度

ll w[N];
int d[N];
void solve() {
cin >> n;
for (int i = 1; i <= n; i++)
cin >> w[i], d[i] = 0; for (int i = 1, u, v; i < n; i++) {
cin >> u >> v;
d[u] += 1, d[v] += 1;
} ll ans = 0;
vector<ll> v;
for (int i = 1; i <= n; i++) {
ans += w[i];
for (int j = 1; j < d[i]; j++)
v.push_back(w[i]);
}
sort(v.begin(), v.end(), greater<ll>());
cout << ans << " ";
for (ll x : v)
cout << (ans += x) << " ";
cout << endl;
}

1466E. Apollo versus Pan

//待补

1466F. Euclid's nightmare

//待补

Codeforce:Good Bye 2020 个人题解的更多相关文章

  1. Codeforces:Good Bye 2018(题解)

    Good Bye 2018! 题目链接:https://codeforces.com/contest/1091 A. New Year and the Christmas Ornament 题意: 给 ...

  2. Good Bye 2017 部分题解

    D. New Year and Arbitrary Arrangement 分析 \(dp[i][j]\) 表示已有 \(i\) 个 \(a\) 和 \(j\) 个 \(ab\) 的情况下继续构造能得 ...

  3. [题解][Codeforces]Good Bye 2019 简要题解

    构造题好评,虽然这把崩了 原题解 A 题意 二人游戏,一个人有 \(k_1\) 张牌,另一个人 \(k_2\) 张,满足 \(2\le k_1+k_2=n\le 100\),每张牌上有一个数,保证所有 ...

  4. Grakn Forces 2020 ABCDE题解

    看到老外评论区中说,这场的难度估计是\(div.1\)和\(div.1.5\)的合并 A. Circle Coloring #构造 题目链接 题意 给定三个长度为\(n\)数组\(a,b,c\),要你 ...

  5. JOI 2020 Final 题解

    T1. 只不过是长的领带 大水题,把 \(a_i,b_i\) 从小到大排序. 发现最优方案只可能是大的 \(a_i\) 跟大的 \(b_i\) 匹配,小的 \(a_i\) 与小的 \(b_i\) 匹配 ...

  6. DISCO Presents Discovery Channel Code Contest 2020 Qual题解

    传送门 \(A\) 咕咕 int x,y; int c[4]={0,300000,200000,100000}; int res; int main(){ cin>>x>>y; ...

  7. Codeforce 水题报告(2)

    又水了一发Codeforce ,这次继续发发题解顺便给自己PKUSC攒攒人品吧 CodeForces 438C:The Child and Polygon: 描述:给出一个多边形,求三角剖分的方案数( ...

  8. 【Nowcoder 上海五校赛】二数(模拟)

    题目描述: 我们把十进制下每一位都是偶数的数字叫做“二数”. 小埃表示自己很聪明,最近他不仅能够从小数到大:2,3,4,5....,也学会了从大数到小:100,99,98...,他想知道从一个数开始数 ...

  9. 【Home Page】本博客使用指南

    [关于] 坐标:ZJ.HZ.XJ. 高一现役 OIer,经常被吊打. Luogu:_Wallace_ [近期] 浙大 ICPC-ACM 2020 部分题解: 关键字「ZJU-ICPC Summer T ...

  10. Good Bye 2018题解

    Good Bye 2018题解 题解 CF1091A [New Year and the Christmas Ornament] 打完cf都忘记写题解了qwq 题意就是:给你一些黄,蓝,红的球,满足蓝 ...

随机推荐

  1. 安卓端出现https请求失败的一次问题排查

    背景 某天早上,正在一个会议时,突然好几个同事被叫出去了:后面才知道,是有业务同事反馈到领导那里,我们app里面某个功能异常. 具体是这样,我们安卓版本的app是禁止截屏的(应该是app里做了拦截), ...

  2. 企业数据分析免费试用的BI工具,有什么推荐?

    当涉及到企业数据分析的免费试用BI工具时,有几个受欢迎且功能强大的选项可供选择.以下是对每个工具的详细介绍,帮助您了解其特点和优势. Datainside BI(https://datainside. ...

  3. ARM汇编指令实验

    题目 地址为0x40008000起始的内存中存放了20个无符号的8位整数,请编写ARM汇编程序实现如下功能: 采用冒泡法将以上内存中的数据按照从小到大的顺序排列. 注意:在验收实验时,需要自己把具体的 ...

  4. C# 对象与JSON字符串互相转换

    一.JSON字符串转对象(反序列化) 1.使用Newtonsoft.Json 反序列化字符串转换为指定类型 (T) JsonConvert.DeserializeObject<T>(jso ...

  5. Unicode编码解码

    一.Unicode概述 Unicode是一种字符编码标准,旨在解决不同字符集之间的兼容性问题.它为全球所有语言提供了一种统一的编码方式,使得各种字符能够在计算机系统中正确显示和处理.Unicode字符 ...

  6. Java8新特性Optional

    Optional类的方法 1.empty private static void createNullOptional() { // 创建一个空的Optional实例 // 方式一 Optional& ...

  7. 介绍一款轻量型 Web SCADA 组态软件

    ​ 随着互联网.物联网技术的快速发展,图扑物联基于多年研发积累和私有部署实践打磨.以及对业务场景的深入理解,推出了适用于物联网应用场景的轻量型云组态软件. 该产品采用 B/S 架构,提供 Web 管理 ...

  8. Vue学习笔记-生命周期

    整体页面代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  9. 云MSP技本功|基于OGG 实现Oracle到Kafka增量数据实时同步

    简介: 在大数据时代,存在大量基于数据的业务.数据需要在不同的系统之间流动.整合.通常,核心业务系统的数据存在OLTP数据库系统中,其它业务系统需要获取OLTP系统中的数据.传统的数仓通过批量数据同步 ...

  10. Harbor私有镜像仓库搭建

    为什么选择Harbor 你可能会问既然我们已经有了 Docker 镜像仓库为什么还需要 Harbor 呢?嗯,Harbor 是 Docker 镜像仓库的企业级扩展,用途更广泛.这些新的企业级功能包括: ...