比赛链接:Here

1551A. Polycarp and Coins (签到)

题意:

我们有任意个面额为 \(1\) 和 \(2\) 的硬币去支付 \(n\) 元账单,

现在请问怎么去分配数额使得 \(c_1 +2 * c_2 = n\) 并且要最小化 \(|c_1-c_2|\)


贪心,

很容易想到最小化 \(|c_1 - c_2|\) 等于 \(0\) 或 \(1\)

int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n;
cin >> n;
if (n % 3 == 0) cout << n / 3 << " " << n / 3 << "\n";
else if (n % 3 == 1) cout << n / 3 + 1 << " " << n / 3 << "\n";
else cout << n / 3 << " " << n / 3 + 1 << "\n";
}
}

1551B1. Wonderful Coloring - 1(easy)

题意:

给定长度为 \(n\) 的字符串和 \(k = 2\) 种颜色,

对于字符串每一个位置要么不涂颜色,要么每种颜色的字母都要不同并且最后 \(k\) 种颜色涂的个数相同

请输出每种颜色最后的个数


统计 26 个字母出现次数,然后出现超过 2 的+1,仅出现一次的个数 / 2即可(易证明)

int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
string s;
cin >> s;
int a[30] = {0};
for (int i = 0; i < int(s.length()); ++i) {
a[s[i] - 'a']++;
}
int a2 = 0, a1 = 0;
for (int i = 0; i < 26; ++i) {
if (a[i] == 1)a1++;
if (a[i] > 1)a2++;
}
cout << a1 / 2 + a2 << "\n";
}
}

1551B2. Wonderful Coloring - 2 (hard版本)

题意基本同 B1 一致,

但需输出每个位置数字涂的颜色


写了两罚模拟 \(\mathcal{O}(n^2)\) 不出所料肯定 T了,

转换一下思路,首先和 B1 一样我们需要去统计每种数字的个数,但由于最后需要输出每个位置的颜色编号,所以还得存一下下标 (pos)

  • \(cnt[a[i]] \le k\) 的将下标存储
  • \(cnt[a[i]] > k\) 无需使用标 \(0\)

当然对于多余的元素,可以直接从删除

while (pos.size() % k != 0)pos.pop_back();

此时 pos 中所有元素均为有效下标,我们只要对应原数组标记颜色编号即可

int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n, k;
cin >> n >> k;
vector<int>a(n), cnt(n);
vector<int>pos;
for (int i = 0; i < n; ++i) {
cin >> a[i], a[i] -= 1;
cnt[a[i]] += 1;
if (cnt[a[i]] <= k) pos.push_back(i);
}
while (pos.size() % k != 0)pos.pop_back();
sort(pos.begin(), pos.end(), [&](int i, int j) {return a[i] < a[j];});
vector<int>ans(n);
for (int i = 0; i < pos.size(); ++i)
ans[pos[i]] = i % k + 1;
for (int i = 0; i < n; ++i)
cout << ans[i] << " \n"[i == n - 1];
}
}

1551C. Interesting Story

题意:

一个作家有 \(n\) 个单词,每一个单词只会由 a,b,c,d,e 构成,他想用 \(m(0\le m\le n)\) 个单词写一个故事

一个故事是否有趣在于:

  • 故事中存在一个字母的个数比其他字母个数的总和还更多

    比如:bac,aaada,e 三个单词,a 出现的次数比其他 4 种单词出现次数都多

请输出在保证故事有趣的情况下用更多的单词写故事


这里建议直接看代码便于理解

【AC Code】代码参考于比赛 高Rank dalao

int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n;
cin >> n;
vector<string>s(n);
for (int i = 0; i < n; ++i) cin >> s[i];
int ans = 0;
for (int c = 0; c < 5; ++c) {
vector<int>f(n);
for (int i = 0; i < n; ++i) {
for (auto x : s[i])
if (x == 'a' + c)f[i]++;
else f[i]--;
} sort(f.begin(), f.end(), greater<int>());
int sum = 0;
for (int i = 0; i < n; ++i) {
sum += f[i];
if (sum <= 0)break;
ans = max(ans, i + 1);
}
}
cout << ans << "\n";
}
}

很好奇自己是怎么读题读成使用连续的单词去写故事的啊?kola

1551D1. Domino (easy version)

题意:待补


多米诺骨牌的排放似乎在ABC的某一场也出现过

如果 \(n\) 为奇数

  • 最少要横放 \(m / 2\) 个,不然最少 \(0\) 个
  • 最多 \(n * m / 2 = (m \% 2 == 1 ?\ n / 2 : 0)\) 个

对于给出的 \(k\) 只要在 \([mn,mx]\) 就输出 YES

int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n, m, k;
cin >> n >> m >> k; int mn = (n % 2 == 1 ? m / 2 : 0);
int mx = n * m / 2 - (m % 2 == 1 ? n / 2 : 0);
if (mn <= k and k <= mx and (k - mn) % 2 == 0) cout << "YES\n";
else cout << "NO\n";
}
}

Codeforces Round #734 (Div. 3) A~D1 个人题解的更多相关文章

  1. 刷题记录:Codeforces Round #734 (Div. 3)

    Codeforces Round #734 (Div. 3) 20210920.网址:https://codeforces.com/contest/1551. 编程细节:下标定义不要一会[1,n]一会 ...

  2. Codeforces Round #609 (Div. 2)前五题题解

    Codeforces Round #609 (Div. 2)前五题题解 补题补题…… C题写挂了好几个次,最后一题看了好久题解才懂……我太迟钝了…… 然后因为longlong调了半个小时…… A.Eq ...

  3. Codeforces Round #741 (Div. 2), problem: (D1) Two Hundred Twenty One (easy version), 1700

    Problem - D1 - Codeforces 题意: 给n个符号(+或-), +代表+1, -代表-1, 求最少删去几个点, 使得     题解(仅此个人理解): 1. 这题打眼一看, 肯定和奇 ...

  4. Codeforces Round #556 (Div. 2) D. Three Religions 题解 动态规划

    题目链接:http://codeforces.com/contest/1150/problem/D 题目大意: 你有一个参考串 s 和三个装载字符串的容器 vec[0..2] ,然后还有 q 次操作, ...

  5. Codeforces Round #604 (Div. 2) E. Beautiful Mirrors 题解 组合数学

    题目链接:https://codeforces.com/contest/1265/problem/E 题目大意: 有 \(n\) 个步骤,第 \(i\) 个步骤成功的概率是 \(P_i\) ,每一步只 ...

  6. Codeforces Round #624 (Div. 3) F. Moving Points 题解

    第一次写博客 ,请多指教! 翻了翻前面的题解发现都是用树状数组来做,这里更新一个 线段树+离散化的做法: 其实这道题是没有必要用线段树的,树状数组就能够解决.但是个人感觉把线段树用熟了会比树状数组更有 ...

  7. Codeforces Round #677 (Div. 3) E、G题解

    E. Two Round Dances #圆排列 题目链接 题意 \(n\)(保证偶数)个人,要表演一个节目,这个节目包含两种圆形舞蹈,而每种圆形舞蹈恰好需要\(n/2\)个人,每个人只能跳一种圆形舞 ...

  8. Codeforces Round#402(Div.1)掉分记+题解

    哎,今天第一次打div1 感觉头脑很不清醒... 看到第一题就蒙了,想了好久,怎么乱dp,倒过来插之类的...突然发现不就是一道sb二分吗.....sb二分看了二十分钟........ 然后第二题看了 ...

  9. Codeforces Round #604 (Div. 2) 练习A,B题解

    A题 链接 思路分析: 因为只需要做到相邻的不相同,利用三个不同的字母是肯定可以实现的, 所以直接先将所有的问号进行替换,比如比前一个大1,如果与后面的冲突,则再加一 代码(写的很烂): #inclu ...

  10. Codeforces Round #599 (Div. 2)的简单题题解

    难题不会啊…… 我感觉写这个的原因就是因为……无聊要给大家翻译题面 A. Maximum Square 简单题意: 有$n$条长为$a_i$,宽为1的木板,现在你可以随便抽几个拼在一起,然后你要从这一 ...

随机推荐

  1. Linux配置静态IP解决无法访问网络问题

    Linux系统安装成功之后只是单机无网络状态,我们需要配置Linux静态IP来确保服务器可以正常连接互联网 1.首先安装ifconfig Centos7安装成功后,高版本会把ping命令给移除了,所以 ...

  2. Modbus 转PROFIBUS DP网关在工厂自动温度控制系统中的应用案例

    Modbus 转PROFIBUS DP 网关PM-160 在工厂自动温度控制系统中的应用案例 摘要 随着科技的发展和工业生产水平的提高,自动温度控制系统在纺织.化工.机械等各类工业控制过程中得到了广泛 ...

  3. windows server 2019 2012 server 2022 无线网卡驱动安装报错,无线网卡驱动不能安装, inf服务安装段落无效

    windows server 2019 无线网络 服务安装段落无效 windows server 2019 无线网卡驱动安装报错,无线网卡驱动不能安装, inf服务安装段落无效 indows serv ...

  4. 从0开始用Maven

    一.Maven的介绍即相关概念 Maven是一款构建和管理Java项目的工具,它将项目开发和管理过程抽象成一个项目对象模型(POM),提供了一种统一的项目结构. Maven官网 1.为什么使用Mave ...

  5. K8s 里如何优雅地使用 /dev/shm 实现容器间共享内存

    目录 1. 从 docker run 的 --shm-size 参数聊起 2. Linux 里的 /dev/shm 3. Docker 对共享内存的支持 4. K8s 里如何设置 /dev/shm 大 ...

  6. Feign远程调用丢失请求头问题

    问题 项目中我使用feign进行远程调用时,在请求头设置了参数(UserId),结果在调用方却收获取不到... 解决办法 feign提供了一个拦截器,在远程调用之前执行 核心代码 package co ...

  7. Python 中如何编写类型提示

    哈喽大家好,我是咸鱼 我们知道 Python 是一门具有动态特性的语言,在编写 Python 代码的时候不需要显式地指定变量的类型 这样做虽然方便,但是降低了代码的可阅读性,在后期 review 代码 ...

  8. 【内核】ELF 文件执行流程

    # ELF 文件分类 Linux中,ELF文件全称为:Executable and Linkable Format,主要有三种形式,分别是: 可执行文件 动态库文件(共享文件 .so) 目标文件(可重 ...

  9. 华企盾DSC防泄密系统:半透明问题调试方法

    1.先添加下图中的注册表​ 2.用debugview工具监控操作过程,然后找到后面是DSE_SANDBOX,把它前面的值一个一个加到控制台的半透明沙盒对象里面调,直到找到可以正常的为止 3.用supe ...

  10. 袋鼠云数栈UI5.0设计实战|B端表单这样设计,不仅美观还提效

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:大喜 相关文章:袋鼠云出品!数栈UI 5.0全新体验升级, ...