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的时候 ...
随机推荐
- shell脚本中的函数
如果你学过开发,肯定知道函数的作用.如果你是刚刚接触到这个概念的话,也没有关系,其实很好理解的.函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名 ...
- Winform-耗时操作导致界面渲染滞后
原因: 某些耗时操作阻塞了主线程. 理解上述原因,需先搞清楚Winform线程机制.主要有以下2点特性:1.单线程模型:2.依赖消息循环. 1.单线程模型 Winform 默认是单线程.通常,所有的U ...
- FastReport实现遍历Dataset数据集计算
delphi在使用fastreport进行打印时,需要对数据进行计算求和. 在打印文本框的OnBeforePrint事件中进行以下代码即可实现效果 procedure Memo7OnBeforePri ...
- h5移动端像素适配 postcss-pxtorem和amfe-flexible
Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具: postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem; amfe-flexib ...
- 开源数据库生态遇新变数,天翼云TeleDB提供企业数据管理更优解!
近日,知名开源大规模并行处理 (MPP) 数据库Greenplum的源代码在其官方GitHub页面突然消失,引发了用户和开发者的广泛关注, PostgreSQL生态系统或将产生新变数.开源软件在面对商 ...
- CDN与前端技术
本文分享自天翼云开发者社区<CDN与前端技术>,作者:张****亮 CDN(Content Delivery Network)是一种广泛应用于网络加速和内容分发的技术.它通过在全球各地部署 ...
- 绕过 console-ban
绕过 console-ban console-ban 项目介绍 console-ban 是一个高效且轻量级的 JavaScript 库,其核心功能是有效阻止用户通过浏览器的开发者工具(例如按 F12 ...
- 自动安装zabbix-agentd脚本 自己写的
zabbix_agent_install.sh #!/bin/bash #auther by wangxp ZABBIX_AGENT_DIR="/usr/local/zabbix" ...
- Flink流处理-简单案例-01
一.pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- Luogu P3059 Concurrently Balanced Strings G 题解 [ 紫 ] [ 线性 dp ] [ 哈希 ] [ 括号序列 ]
模拟赛搬的题,dp 思路很明显,但难点就在于找到要转移的点在哪. 暴力 首先我们可以先考虑 \(k=1\) 的情况,这应该很好想,就是对于每一个右括号,找到其匹配的左括号,然后进行转移即可,这个过程可 ...