【2024.08.15】NOIP2024暑假集训模拟赛(13)
【2024.08.15】NOIP2024暑假集训模拟赛(13)
T1
先找能构成回文的最长前缀和后缀(长度相同的),然后在任意一边的基础上扩展,看能否接一个回文串。
#include<bits/stdc++.h>
#define F(i,l,r) for(int i(l);i<=(r);++i)
#define G(i,r,l) for(int i(r);i>=(l);--i)
#define int ll
using namespace std;
using ll = long long;
using ull = unsigned long long;
const int N=5e5+5;
const int P=1031;
char s[N];
ull h[N],g[N],p[N];
int T;
inline ull get1(int l,int r){ return (l<=r) ? h[r] - h[l-1] * p[r-l+1] : 0; }
inline ull get2(int l,int r){ return (l<=r) ? g[l] - g[r+1] * p[r-l+1] : 0; }
signed main(){
// freopen("reverse.in","r",stdin);
// freopen("reverse.out","w",stdout);
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
p[0]=1; F(i,1,500000) p[i] = p[i-1] * P;
cin>>T;
F(o,1,T){
cin>>(s+1); int n=strlen(s+1);
h[0]=g[n+1]=0;
F(i,1,n) h[i]=(h[i-1]*P+s[i]);
G(i,n,1) g[i]=(g[i+1]*P+s[i]);
if(h[n]==g[1]){ cout<<n<<"\n"; continue; }
for(int i=1,j=n;i<=j;++i,--j){
if(h[i]==g[j]) continue;
int len1=0,len2=0;
F(ed,i,j-1) if(get1(i,ed) == get2(i,ed)) len1=ed-i+1;
G(st,j,i+1) if(get1(st,j) == get2(st,j)) len2=j-st+1;
cout << max(len1,len2) + (i-1) * 2 << '\n';
break;
}
}
return fflush(0),0;
}
T2
对极差二分答案(显然)
重点是check, 记 \(f[i]\) 表示 前 \(i\) 座山在满足极差限制的前提下,最少的更改次数,其中强制第 \(i\) 座山不修改。
有转移:
\]
最后判断是否存在 \(i \in [1,n],\ f[i]+(n-i) \le k.\)
时间复杂度 \(O(TN^2log A).\)
【2024.08.15】NOIP2024暑假集训模拟赛(13)的更多相关文章
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP2017提高组 模拟赛13(总结)
NOIP2017提高组 模拟赛13(总结) 第一题 函数 [题目描述] [输入格式] 三个整数. 1≤t<10^9+7,2≤l≤r≤5*10^6 [输出格式] 一个整数. [输出样例] 2 2 ...
- 【2018暑假集训模拟一】Day1题解
T1准确率 [题目描述] 你是一个骁勇善战.日刷百题的OIer. 今天你已经在你OJ 上提交了y 次,其中x次是正确的,这时,你的准确率是x/y.然而,你最喜欢一个在[0; 1] 中的有理数p/q(是 ...
- 冲刺$\mathfrak{CSP-S}$集训模拟赛总结
开坑.手懒并不想继续一场考试一篇文. 既没必要也没时间侧边栏的最新随笔题解反思相间也丑 而且最近越来越懒了竟然都不写题解了……开坑也是为了督促自己写题解. 并不想长篇大论.简要题解也得写啊QAQ. 目 ...
- 【2018暑假集训模拟一】Day2题解
T1 园艺工人的求助 [题目描述]终于,在一段繁忙的训练之后,到了NOIP 的举办的时候.同学们坐上了大巴车,享受着沿途的风光,讨论着未解决的问题,憧憬着NOIP 赛场上切题的样子.很快,大巴车到了大 ...
- 集训模拟赛-1-T2
好了不要在铺垫了直接整吧就 题目拿来!!!!!!! 倒水 (water) (256MB,1s) [问题描述] 你有一个水桶(记为 0),两个杯子(记为 1,2).水桶中的水量无限,容量也无限.1 号杯 ...
- 集训模拟赛-1-T1
最近学校网课跟得紧没时间写知识点,就拿题解凑个数(bushi 而且前两天我打着打着题解电脑就突然死机 幸运的是 我没有保存(微笑) 废话不多说 上题目! 城市攻击 (city) (256MB,1s) ...
- 6.30集训模拟赛4(炸裂的一天qwq)
T1浇水: 题目描述 在一条长n米,宽m米米的长方形草地上放置着k个喷水装置.假设长方形草地的坐标范围为[ 0 , 0 ] ~ [ n , m ],那么第 i 个喷水装置的位置为(ai,m/2),也就 ...
- NOIP模拟赛13
期望得分:100+0+100=200 实际得分:100+5+100=205 T1 空间卡到30M.. n<=2.5*1e7 若x是整除区间[1,n]每个数的最小的数,那么对[1,n]每个数分解质 ...
- NOIP2017提高组 模拟赛15(总结)
NOIP2017提高组 模拟赛15(总结) 第一题 讨厌整除的小明 [题目描述] 小明作为一个数学迷,总会出于数字的一些性质喜欢上某个数字,然而当他喜欢数字k的时候,却十分讨厌那些能够整除k而比k小的 ...
随机推荐
- ViT和MAE模型结合初探
介绍 transfomer在NLP领域的应用已经非常广泛,但是在CV领域的应用还比较少,主要是因为CV领域的数据是二维的,而transfomer是基于序列的,因此需要将二维数据转换成序列数据,这就是V ...
- 利用XtraBackup对MGR集群进行扩容
运行了一段时间以后MGR集群,需要扩容节点,这是一个常见的需求.很多时候我们都喜欢用mysqldump工具来进行,因为这个工具有一个很好用的参数叫做master-data以及single-transa ...
- TL431
1. 设置分流电压VKA 由于分流电压调节器是非理想的: 存在动态电阻ZKA,会导致VREF存在一个偏置电压: ( IKA - INOM ) × ZKA 其中,INOM 是 VKA = VREF 测试 ...
- .NET 高效开发Nuget管理工具(开源)
我们.NET开发会引用很多外部Nuget包,多项目.多个解决方案.甚至多个仓库. 简单的Nuget包管理,通过VS就能比较简单处理好.但复杂的场景呢,比如: 1.一个仓库里,有多个解决方案的Nuget ...
- 禅道项目管理系统权限绕过漏洞(QVD-2024-15263)
本文所涉及的任何技术.信息或工具,仅供学习和参考之用,请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者无关.请遵守<中华人民共和国网络安全法>. 1. 概述 1.1 基本信息 ...
- history的replace("/admin")与("admin")的区别
假设当前路由为:localhost:3000/index/a 有"/"的情况是直接从根目录替换 改完之后的路由为:localhost:3000/admin 没有"/&qu ...
- c# 复制文件夹内所有文件到另外一个文件夹
/// <summary> /// 开始转移 /// </summary> /// <param name="sender"></para ...
- 巴特沃斯LPF设计(硬件电路实现)
高阶 (2n) VSVC单位增益巴特沃斯低通滤波器设计,可分解为 n 个二阶低通,通过对这多个二阶低通的组合优化,可提高滤波器的低通特性和稳定性. 串联的传递函数是各个二阶滤波器传递函数的乘积:\({ ...
- docker高级篇2-分布式存储之三种算法
面试题: 1~2亿条数据需要缓存,请问如何设计这个缓存案例? 答:单机单台100%是不可能的.肯定是分布式缓存的.那么用Redis如何落地? 一般有三种方案: 哈希取余分区:一致性哈希算法分区:哈希槽 ...
- Java面试集锦(一)
计算机网络 摘要:1. 在浏览器中输入url地址 显示主页的过程,整个过程会使用哪些协议 image.jpeg总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回 ...