2024.9.23 cj 训练总结
T1


这道题目仔细观察就会发现:
- 异或
- k=1
这就很好办,考虑 k=1 怎么解 3 1 2 4 5 6 7.......... 即可。
异或,找规律发现有很多数字的异或值为0的。最后的答案是有规律的。
不知道什么问题,场上就70分。
T2


这道题目基本上没啥思路,就是弄了个桶10分。
正解:
由于这个题目的字符集大小只有 \(26\) ,我们显然可以枚举出现次数最多与最少的字符是什么。然后把这两个字符离散出来问题就变成了只有 \(1\) 与 \(-1\) 且强制选取至少一个 \(-1\) 的最大连续子段和问题。
然后关于离散,我们显然可以用 vector 把每中字符的出现位置记录下来。然后用类似归并的方法求解即可。
关于强制选取至少一个 \(-1\) 的最大连续子段和问题,我们可以先把答案预设为 \(-1\) 然后到第一个 \(-1\) 时不减即可解决。
由于每种字符作为最大与最小总共被枚举 \(52\) 次,所有字符的数量和为 \(n\)
所以时间复杂度为 \(O(52n)\)
空间复杂度 \(O(n)\)
Code
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<vector>
using namespace std;
int n;
vector<int> tong[30];
char s[1000005];
int ans;
int main(){
cin>>n>>s;
for(int i=1;i<=n;++i){
tong[s[i-1]-'a'].push_back(i);
}
for(int i=0;i<26;++i){
if(!tong[i].size()){
continue;
}
for(int j=0;j<26;++j){
if(!tong[j].size() || i==j){
continue;
}
int num1=0;int num2=0;
bool f=0;
int cnt=-1;
while(num1<tong[i].size() || num2<tong[j].size()){
int a1,a2;
if(num1==tong[i].size()){
a1=1e9;
}else{
a1=tong[i][num1];
}
if(num2==tong[j].size()){
a2=1e9;
}else{
a2=tong[j][num2];
}
if(a1<a2){
num1++;
cnt++;
}
if(a1>a2){
if(f==1){
cnt--;
}
num2++;
f=1;
}
if(cnt<0){
f=0;
cnt=-1;
}
ans=max(ans,cnt);
}
}
}
cout<<ans<<'\n';
return 0;
}
T3



这道题目我就是对于 sub1的分就是 st表 维护一下。
对于 sub2 的分数就是纯暴力。
正解:
这道题目乍一看并没有什么思路,然后会很沮丧地发现其实两条边根本就是个乘法,根本贪心不了。
当时对这种玄学的东西一看就是 dp,然后又觉得是个斜率优化,因为有值相乘,但是dp根本设计不出来
真正的正解:

然后原题在 这里 ,但是题解并没有看懂。
单调站维护还可以,但是后面的树状数组维护真的很迷糊。
T4

完全不会。
tj:

原题
2024.9.23 cj 训练总结的更多相关文章
- 2018.10.23 NOIP训练 Leo的组合数问题(组合数学+莫队)
传送门 好题. 考察了莫队和组合数学两个知识板块. 首先需要推出单次已知n,mn,mn,m的答案的式子. 我们令f[i]f[i]f[i]表示当前最大值为第iii个数的方案数. 显然iii之后的数都是单 ...
- YOLO训练Pedestrain
Pedestrain dl 使用darknet训练: 1. Inria 创建 yolo-inria.cfg 从cfg/yolo-voc.2.0.cfg拷贝一份,修改batch=64, subdivi ...
- yolo v2使用总结
以下都是基于yolo v2版本的,对于现在的v3版本,可以先clone下来,再git checkout回v2版本. 玩了三四个月的yolo后发现数值相当不稳定,yolo只能用来小打小闹了. v2训练的 ...
- TensorFlow练习24: GANs-生成对抗网络 (生成明星脸)
http://blog.topspeedsnail.com/archives/10977 从2D图片生成3D模型(3D-GAN) https://blog.csdn.net/u014365862/ar ...
- 【deep learning精华部分】稀疏自编码提取高阶特征、多层微调完全解释及代码逐行详解
我们前面已经讲了如何训练稀疏自编码神经网络,当我们训练好这个神经网络后,当有新的样本输入到这个训练好的稀疏自编码器中后,那么隐藏层各单元的激活值组成的向量就可以代表(因为根据稀疏自编码,我们可以用来恢 ...
- 论文翻译—SPP-Net(目标检测)
SPPNet论文翻译 <Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition> Kai ...
- 深度学习论文翻译解析(九):Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
论文标题:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 标题翻译:用于视觉识别的深度卷积神 ...
- 人脸照片自动生成游戏角色_ICCV2019论文解析
人脸照片自动生成游戏角色_ICCV2019论文解析 Face-to-Parameter Translation for Game Character Auto-Creation 论文链接: http: ...
- Python 机器学习实战 —— 监督学习(上)
前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...
- Java基础00-常用API24
1. Math Math 1.1 Math类概述 1.2 Math类的常用方法 返回绝对值:是正数是时候直接返回参数本身,是负值的时候返回的是参数的相反数.参数是10时返回的是10,参数是-10的时候 ...
随机推荐
- SpringCloud Alibaba(一) - Nacos 服务注册与发现,OpenFeign远程调用
1.基础项目过目介绍 1.1 数据库创建 1.2 项目模块分布 1.3 测试http接口调用 1.3.1 http接口调用配置类 //http接口调用配置类 @Configuration public ...
- rpm与dpkg
基本介绍 "dpkg "是"Debian Packager "的简写.为 Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian ...
- Vector不推荐使用的原因
线程安全可以自己这么用:
- Sybaris pg walkthrough Intermediate 从redis 到 rce
nmap ┌──(root㉿kali)-[~/lab] └─# nmap -p- -A 192.168.166.93 Starting Nmap 7.94SVN ( https://nmap.org ...
- obsidian双向链接 不可链接到其他文章的段落|片段 解决方案
前言 今天发现obsidian只能链接到其他文章的标题,不能链接到片段 一个简单的语法体现事物的普遍联系!|Obsidian知识管理 #2 双向链接|高级玩家_锌一(Strik0r)_哔哩哔哩_bil ...
- CentOS 7 MongoDB 重装启动失败
诊断过程 1. 错误提示: > journalctl -xe 提示: .... ERROR: child process failed, exited with error number 14 ...
- AI编程助手带来的洞察和启发——程序员职业的变革
前言 从chatgpt的横空出世到国内大模型的强势崛起, 从AI只会写诗作画到辅助编程, AI作为新质生产力的重要角色逐渐进入各行各业,为行业带来新的可能性. Cursor.通义灵码这类"A ...
- 解决使用yarn安装依赖出现“The engine "node" is incompatible with this module. Expected version "^14.18.0 || ^16.14.0 || >=18.0.0". Got "17.9.0"”的问题
1.问题描述 某天在使用yarn安装依赖的时候,突然出现如下错误导致安装依赖终止: The engine "node" is incompatible with this modu ...
- 1分钟学会DeepSeek本地部署,小白也能搞定!
DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型,具备数学推理.代码生成等深度能力,堪称"AI界的六边形战士". DeepSeek 身上的标签有很多,其中最具 ...
- linux mint 安装蓝牙
sudo apt-get install blueman 安装新的 sudo apt-get remove blueberry 卸载旧的