[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 ...
随机推荐
- 【AD】Altium Designer 原理图的绘制
原理图设置基础 原理图的设置 设置原理图图纸大小 在原理图的绘制过程中,各个元件的大小是不能调整的. 如果原理图纸张放不下,需要对图纸进行设置:设计->文档选项,右键->选项-> ...
- js和原生应用常用的数据交互方式
场景1 在原生app中经常会使用到H5页面,比如说电商中的活动页,一些电商中的详情页,等等...这些页面都有一个特点,那就是在未来修改的可能性,和一次性的几率特别的大.所以用H5的页面是最睿智的一种选 ...
- 我的python学习记_01
一切的开始都是从打招呼开始的,python也不例外,首先和将要陪伴我后半生的朋友说句情话: print("不是在最美好的时光遇见你,而是因为遇见你才让我有了最美好的时光") 初写代 ...
- java基础-字符流
字符流 * 字符流是可以直接读写字符的IO流 * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. FileReader * FileRea ...
- jboss7学习2-jboss7入门(端口和访问的ip问题)
1.下载地址: http://www.jboss.org/jbossas/downloads ,下载Certified Java EE 6 Full Profile版本. 2.解压 jboss-as- ...
- XXE漏洞——介绍及利用
什么是xxe XML外部实体注入,简称XXE漏洞.XML文档结构包括XML声明,DTD文档类型定义,文档元素. XML示例 <?xml version="1.0"?>X ...
- Python里的引用与拷贝规律
python的可变不可变与各种浅拷贝深拷贝规则,一并梳理. Python一切皆引用 在C++/Java里,int a = 1就是创建变量为a,赋值为1:int b = a就是创建变量b,赋值为a的值. ...
- linux权限问题,chmod命令
Linux系统中,每个用户的角色和权限划分的很细致也很严格,每个文件(目录)都设有访问许可权限,利用这种机制来决定某个用户通过某种方式对文件(目录)进行读.写.执行等操作. 操作文件或目录的用户,有3 ...
- OSPF 路由协议详解(一)
(文章目录) ospf 协议是网络层协议 此篇文章适合有一定网络基础的人 ospf 协议最多应用在企业网络中,针对于运营商网络并不是特别的适用,端口号为 89 通过 IP 进行数据的转发 ospf 基 ...
- Java学习day26
进程.多任务 1.例如吃饭的时候玩手机,边上厕所边玩手机,看似是同时做多个事情,本质上我们的大脑在同一时间只做了一件事情,这就是多任务 2.道路窄的时候容易造成拥堵,可以拓宽道路,加多车道,同一个方向 ...