[codeforces] 暑期训练之打卡题(三)
每个标题都做了题目原网址的超链接
Day21《Alphabetic Removals》
题意:
给定一个字符串,要求按照字典序按照出现的前后顺序删除 k 个字母
题解:
- 记录字符串中各个字母出现次数
- 删去字典序下前 k 个
代码注释会比较清楚,题解可能讲的有点模糊了
上板子:
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int num[26] = { 0 };
- int main()
- {
- int n, k;
- cin >> n >> k;
- string s;
- cin >> s;
- string t = s;
- sort(s.begin(), s.end());//按照字典序 a-z 排序
- for (int i = 0; i < k; i++)
- {
- num[s[i] - 'a']++;//前k个字符都删除,记录其对应的字母的个数
- }
- for (int i = 0; i < t.size(); i++)
- {
- if (num[t[i] - 'a']) num[t[i] - 'a']--;//按照出现次序删除字母
- else cout << t[i];//该字母已无需删除
- }
- return 0;
- }
Day22《Anti-Sudoku》
题意:
更改一个数独使其满足:每行、列、3*3的方格内,至少有两个元素相等
题解:
更改一个数为另一个数就行
上板子:
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- const int N = 2e5 + 7;
- int cnt[N];
- int main() {
- int t;
- cin >> t;
- while (t--) {
- for (int i = 0; i < 9; i++) {
- string s;
- cin >> s;
- for (char& c : s)
- if (c == '1')//随便一个1~9的数字变成1~9的另一个数字即可
- c = '2';
- cout << s << endl;
- }
- }
- }
Day23《Boats Competition》
题意:
给定 n 个数构成的数组, 让我们自定义一个数 s , 使得对于任选 ai 与 aj(i≠j),满足 ai+aj=s 的组合尽可能多,输出个数
题解:
一点闲话:
- 这个题关键的地方就是注意到数据范围都很小,这就启示我们可以暴力。
- 想到了用map<int,int>记录 s 与 s 的出现次数,但是没有想到怎么合适地处理循环问题
正经题解:记录给出的数组中每个数字出现的次数(代码注释较为详细)
上板子:
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- const int N = 1E2 + 10;//n最大只有50, wi最大也只有50, 所以s最大不会超过100
- int a[N], b[N]; //a数组存放n个数据(可以不要), b数组存放为x的值有多少个
- int main()
- {
- int t;
- cin >> t;
- while (t--) {
- memset(b, 0, sizeof b);
- int n;
- cin >> n;
- for (int i = 1; i <= n; ++i)
- scanf("%d", &a[i]), b[a[i]]++;
- int ans = 0;
- for (int k = 2; k <= 2 * n; ++k) {
- int cnt = 0; //s=k时的结果数量
- for (int i = 1; i <= k / 2; ++i) { //避免重复只枚举前一半即可
- if (b[i] && b[k - i] && i != k - i) { //要避免取到相同的数字情况
- int temp = min(b[i], b[k - i]);
- cnt += temp;
- }
- }
- if ((k & 1) == 0) cnt += b[k >> 1] >> 1; //是偶数, 可能由相同数字组成
- ans = max(ans, cnt);
- }
- cout << ans << endl;
- }
- return 0;
- }
[codeforces] 暑期训练之打卡题(三)的更多相关文章
- [codeforces] 暑期训练之打卡题(一)
每个标题都做了题目原网址的超链接 Day1<Vanya and Lanterns> 题意: 一条长度为 l 的街道,在这条街道上放置了n个相同的灯,街道一端位置记为0,每个灯的位置在ai处 ...
- [codeforces] 暑期训练之打卡题(二)
每个标题都做了题目原网址的超链接 Day11<Given Length and Sum of Digits...> 题意: 给定一个数 m 和 一个长度 s,计算最大和最小在 s 长度下, ...
- Codeforces Round #524 (Div. 2)(前三题题解)
这场比赛手速场+数学场,像我这样读题都读不大懂的蒟蒻表示呵呵呵. 第四题搞了半天,大概想出来了,但来不及(中途家里网炸了)查错,于是我交了两次丢了100分.幸亏这次没有掉rating. 比赛传送门:h ...
- Codeforces Round #378 (Div. 2) D题(data structure)解题报告
题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常 ...
- [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10
[小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10 各位看众朋友们,你们好,今天是2018年08月14日,星期二,农历七月初四,欢迎阅看今天的颓废联编节目 最近发生的灵异事件有 ...
- Codeforces Round #612 (Div. 2) 前四题题解
这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...
- Noip2019暑期训练2 反思
经过两次测试,通过深刻的反思,我主要发现了以下易犯错误: 1.做题目时过于追求速度,导致好几处代码都出现手误打错的现象!而且,千万不要图快.图方便就复制粘贴,非常容易出错!(例如T3-party中直接 ...
- Android测试基础题(三)
今天接着给大家带来的是Android测试基础题(三). 需求:定义一个排序的方法,根据用户传入的double类型数组进行排序,并返回排序后的数组 俗话说的好:温故而知新,可以为师矣 packag ...
- 算法训练 Hankson的趣味题
算法训练 Hankson的趣味题 时间限制:1.0s 内存限制:64.0MB 问题描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Han ...
随机推荐
- 前端每日实战:133# 视频演示如何用 CSS 和 GSAP 创作有多个关键帧的连续动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eLMKJG 可交互视频 此视频是可 ...
- 王下邀月熊_Chevalier的前端每周清单系列文章索引
感谢 王下邀月熊_Chevalier 分享的前端每周清单,为方便大家阅读,特整理一份索引. 王下邀月熊大大也于 2018 年 3 月 31 日整理了自己的前端每周清单系列,并以年/月为单位进行分类,具 ...
- 将本地代码上传到gitLab
1. 在远程gitLab仓库创建项目, 执行下列命令 git init git remote add origin git@10.10.xxx.git (gitLab刚刚创建的工程地址) git ...
- c++对c的拓展_命名空间_简单使用
名字的控制:c可使用static关键字使该关键字在本单元内可见,c++则使用命名空间对名字的可见性及产生进行控制 命名空间:控制标识符的作用域(本质上就是一个作用域) 使用特点:1.必须定义在全局范围 ...
- ubuntu下安装typora、pycharm、搜狗拼音、MySQL、docker
安装typora # or run: # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE ...
- C++ functional库中的仿函数
一.仿函数简介 仿函数(functor)又称之为函数对象(function object),实际上就是 重载了()操作符 的 struct或class. 由于重载了()操作符,所以使用他的时候就像在调 ...
- 探索Django验证码功能的实现 - DjangoStarter项目模板里的封装
前言 依然是最近在做的这个项目,用Django做后端,App上提交信息的时候需要一个验证码来防止用户乱提交,正好我的「DjangoStarter」项目脚手架也有封装了验证码功能,不过我发现好像里面只是 ...
- Codeforces Round #707 (Div. 2)A.英语漏洞 + C.Going Home C题收获不小
A题英语漏洞 A题传送门: https://codeforces.com/contest/1501/problem/A 其实题目说的很明白, 只是我傻傻的会错了意, 话不多说, 开整. 前两行是说, ...
- Promise了解
Promise是一个构造函数,excutor是他的执行函数,同时也是构造函数的参数. new Promise(excutor) excutor有两个参数(resolve,reject) Promise ...
- Java语言学习day39--8月14日
今日内容介绍1.Map接口2.模拟斗地主洗牌发牌 ###01Map集合概述 A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形 ...