Pokegene(ICPC North Central NA Contest 2018,LCP)

1.7 LVDS信号详解:从差分原理到高速接口实战(硬件基础系列) 本文详细解析了LVDS(低电压差分信号)的基础原理及其在高速接口中的应用。从差分信号的抗干扰能力、低功耗特性到实际PCB布局和示波器测试技巧,全面介绍了LVDS在车载摄像头、MIPI DSI等现代高速接口中的实战经验。通过具体案例和实测数据,帮助硬件工程师掌握LVDS信号的设计与调试要点。 阅读详情

一.题目链接:

Pokegene

二.题目大意:

三.分析:

题解给了两种解法:后缀数组 || 虚树

这里给出一种小白解法(其实是上面那两种我都不会)

首先对原字符串排序,这样就可以保证具有相同前缀的字符串会挨在一起.

这样求一下 s[i] 与 s[i + k  -1] 点的 lcp,另外需要求 s[i] 与 s[i + k] 的 lcp 和 s[i] 与 s[i - 1] 的 lcp,搞一搞就可以啦~

详见代码.

小吐槽:这 8000ms 时限是假的... 还有就是这题如果 cin 关同步会 T.

四.代码实现:

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;

const int M = (int)2e5;
const int N = (int)1e5;
const ll inf = 0x3f3f3f3f3f3f3f3f;
const ll mod = (ll)1e9 + 7;
const ull base = 131;

struct node
{
    string s;
    int id;
}a[M + 5];

int id[M + 5];
vector <int> v;
vector <ull> Hash[M + 5];

bool cmp(node a, node b)
{
    return a.s < b.s;
}

int lcp(int x, int y)
{
    int l = 0, r = min(a[x].s.size(), a[y].s.size()), mid;
    while(l < r)
    {
        mid = (l + r + 1) >> 1;
        if(Hash[x][mid - 1] == Hash[y][mid - 1]) l = mid;
        else                                     r = mid - 1;
    }
    return r;
}

int main()
{
//    freopen("input.txt", "r", stdin);
//    freopen("output.txt", "w", stdout);
    int n, q; scanf("%d %d", &n, &q);
    for(int i = 0; i < n; ++i) {cin >> a[i].s; a[i].id = i;}
    sort(a, a + n, cmp);
    for(int i = 0; i < n; ++i) id[a[i].id] = i;
    for(int i = 0; i < n; ++i) {ull f = 0; for(auto ch: a[i].s) Hash[i].push_back(f = f * base + ch - 'a' + 1);}
    for(int i = 0, l, k, x; i < q; ++i)
    {
        v.clear();
        ll ans = 0;
        scanf("%d %d", &l, &k);
        for(int j = 0; j < l; ++j) {scanf("%d", &x); v.push_back(id[--x]);}
        sort(v.begin(), v.end());
        for(int j = 0; j + k - 1 < l; ++j)
        {
            int a = lcp(v[j], v[j + k - 1]);
            int b = (j + k < l ? lcp(v[j], v[j + k]) : 0);
            int c = (j ? lcp(v[j], v[j - 1]) : 0);
            ans += max(0, a - max(b, c));
        }
        printf("%lld\n", ans);
    }
    return 0;
}

 

Screenshot_2026-11-04-16-26-45-46.jpg 立即下载

相关推荐

TG-2026-11-08-071400786.mp4

TG-2026-11-08-071400786.mp4

Kaleidoscopic Palindromes(2018 ACM-ICPC North Central North America Regional Contest)

滴答滴答---题目链接  Nicholas Neverson was a student at Northlings Neverland Academy. As with any daydreaming student, Nicholas was playing around with a Kaleidoscope one day instead of paying attention to t...

chen_zan_yu_的博客 1232

互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识

互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识

Euler's Number (2018 ACM-ICPC North Central North America Regional Contest)

滴答滴答---题目链接  Euler’s number (you may know it better as just ee) has a special place in mathematics. You may have encountered ee in calculus or economics (for computing compound interest), or perhaps ...

chen_zan_yu_的博客 842

巴基斯坦进口贸易数据集5097类HS6商品六年

本数据集收录巴基斯坦2019至2024年六年间的年度进口贸易数据,覆盖5097个HS6编码商品类别,年度进口总额达500亿至800亿美元规模,完整捕捉疫情前基线、新冠疫情冲击、进口限制政策与能源价格波动等关键经济节点。高进口额品类包括石油馏分、原油、液化天然气、棕榈油与光伏太阳能设备。字段包含HS6商品名称、HS6编码及2019至2024各年度进口额(美元计价)。适用于能源与大宗商品进口依赖分析、增长率与波动性(CAGR)研究、宏观经济冲击建模,以及按HS两位章节(第27章矿物燃料、84/85章机械设备)展开的宏观行业聚合分析,也是国际贸易研究与时间序列分析课程的实用素材。数据许可:Apache 2.0。

Crystal Designer 2020 SP2 CR202002P-400-70005715

Crystal Designer 2020 SP2 CR202002P_400-70005715

ICPC North Central NA Contest 2017 (部分)

链接:https://www.jisuanke.com/contest/7331?view=challenges B Pokemon Go Go 题意:在100x100的方格纸上有n只精灵(n<=20),它们都有自己的名字或者是种类,你需要抓到所有种类的精灵(每种只能一个,种类数不超过15),问你从00点出发再回到00点你经过的最小距离是多少。 种类数m<=15,n<=20,不大...

qq_45288870的博客 331

ICPC North Central NA Contest 2018 A. Pokegene 后缀数组解法

陆陆续续调了3天上午,终于调出来了。 这题题解给的代码是错的。 错在:每个字符要加上一个’\0′,这样可以处理:bb,bba这种情况. 下面说下这题的思路: 先不考虑算法。 对于一个询问,把k个字符串进行按字典序排序。 位置相近的字符串肯定LCP越大。 所以恰好L个字符串有LCP,且其他没有,一定是排序后的连续L个。 我们排序后枚举每个位置[i,i+L-1] 看看LCP(i,–,i-L+1),这么些字符串的LCP是多少,然后减去max(LCP(i-1,……i,-L+1),LCP(i,……i,-L+2))。 这样得到的结果即:[i,i-L+1]的LCP,且其他字符串前缀没有,的个数。 然后多个字

ICPC North Central NA Contest 2017 计蒜客重现 解(补)题报告

前言 不知不觉又到了周六训练赛,时间过得真快。手机前段时间被我不小心摔坏了,没手机玩的第十天, 无奈只能学习了 ,想它。题目还是要做的,题解还是要写的,CF还是得抽时间打的,所以说手机坏了貌似是好事。突然发现今天是2.29,还是想纪念一下的,如今大二,四年后的今天再看到这篇文章时,我会在哪?会是什么身份?会变成什么样子?一切都是未知数,所以,珍惜当下,好好学习,努力做题,认真比赛,才是我应该做的!...

Happig的博客 688

好的,技术转移行业资深专家为您撰写如下。.docx

好的,技术转移行业资深专家为您撰写如下。

产业园区如何高效匹配产业需求与科技成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文档系统整理了电力电子与电力系统领域的多项Simulink仿真资源,重点围绕“两相交错并联Boost电路仿真模型”展开,涵盖其在高功率密度、低输入电流纹波等性能优化方面的建模与控制实现。资源集合不仅包括Boost类变换器,还广泛涉及LLC谐振变换器(半桥、全桥、多相交错)、PFC功率因数校正电路(图腾柱、维也纳拓扑)、双向DC-DC变换器(Buck-Boost、CLLC)、PWM整流器及DAB双有源桥等多种典型电力电子拓扑结构的闭环控制系统设计。每个模型均强调动态响应分析、均流控制、软开关技术与稳定性验证,适用于新能源发电、电动汽车V2G系统、储能能量管理及充电桩等前沿应用场景,体现了较强的工程实践价值与科研参考意义。; 适合人群:面向电气工程、自动化、电力电子与电力传动等相关专业的高校本科生、研究生,以及从事电源设计、新能源系统开发、车载充电机、工业变流器研发的工程技术人员,尤其适合具备电路理论基础和Simulink/Matlab仿真经验的学习者进一步深化系统建模与控制策略研究。; 使用场景及目标:① 深入理解交错并联Boost电路的工作原理及其在抑制输入电流纹波、提升效率方面的作用机制;② 掌握利用Simulink构建复杂电力电子系统的建模方法,开展控制器设计(如PI、双闭环、VOC、SVPWM)与动态性能仿真;③ 为毕业设计、科研课题或实际工程项目提供可复用的技术参考,支撑高性能DC-DC变换器与AC-DC整流系统的开发需求。; 阅读建议:建议结合文档中列出的LLC、PFC、双向DC-DC等配套仿真案例进行横向对比学习,深入把握不同拓扑间的共性与差异;同时推荐配合提供的Mathcad计算书、设计报告与参考文献,完成从参数设计、模型搭建到仿真验证的全流程实践,全面提升理论分析与工程应用相结合的能力。

国央企创新负责人如何系统化管理科技成果与创新资源?.docx

国央企创新负责人如何系统化管理科技成果与创新资源?

交错并联图腾柱PFC变换器仿真设计(Simulink仿真实现)

内容概要:本文档聚焦于“交错并联图腾柱PFC变换器仿真设计(Simulink仿真实现)”这一核心技术主题,系统性地提供了基于Simulink平台的电力电子变换器建模与仿真资源,涵盖交错并联图腾柱PFC变换器的主电路拓扑结构、控制策略实现、动态性能分析及仿真验证全过程。文档不仅深入介绍了该变换器在高效率、低谐波、高功率因数方面的优势,还详细展示了其在均流控制、软开关实现、抗干扰能力等方面的仿真设计要点。同时,配套资源丰富,涵盖了多种典型电力电子系统案例,如三相PWM整流器、VIENNA整流器、LLC谐振变换器、双有源桥DAB变换器等,涉及PI双闭环、滞环控制、SVPWM调制、中点电压均衡、软开关技术等多种关键控制方法。此外,资源包还包含Mathcad计算书、Simulink/Plecs仿真模型、设计报告与参考文献,构建了从理论推导、参数设计到仿真验证的完整技术链条,便于用户快速掌握并复现先进拓扑的控制逻辑与系统设计流程。; 适合人群:面向具备电力电子、电气工程、自动化等相关专业背景,熟悉Matlab/Simulink仿真环境,从事新能源发电、电动汽车、工业电源、电能质量治理等方向的科研人员、高校研究生以及具有1-5年工作经验的电力电子工程师;尤其适合正在开展高效率PFC电路研究或需要完成相关课题设计的技术人员。; 使用场景及目标:①深入理解交错并联图腾柱PFC变换器的工作原理与建模方法,掌握其在提升系统效率与降低输入电流畸变方面的技术优势;②学习并实践高性能PFC电路的双闭环控制、均流策略与软启动设计,提升仿真调试与参数整定能力;③借助提供的标准化仿真模板、计算工具与完整案例,快速搭建类似拓扑系统,支撑科研论文复现、项目开发或课程设计,显著提高研发效率与设计可靠性。; 阅读建议:建议结合文档中列出的仿真模型与Mathcad计算书同步操作,优先按照资源目录顺序循序渐进学习,重点关注控制环路的设计逻辑、PI参数整定方法与系统稳定性判据;推荐通过网盘链接下载全部资料,动手修改模型参数并观察响应变化,以加深对控制策略本质的理解,实现从“看懂”到“会用”的转化。

【动态多智能体系统的通信感知编队控制】一种新颖的通信感知编队控制策略,用于动态多智能体系统研究(Matlab代码、Python代码实现)

内容概要:文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其内容并未深入介绍Plecs环境下全桥LLC谐振变换器的具体建模与仿真过程,而是呈现为一份涵盖多领域科研主题的资源列表。文档内容广泛涉及多智能体系统控制、无人机路径规划、电力电子变换器、状态估计、信号处理、优化算法等研究方向,并多次提及Matlab/Simulink、Python等工具的代码实现。整体来看,该文档更像是一份科研项目目录或技术资源索引,重点推介了包括LLC谐振变换器在内的多种控制系统与电力电子仿真模型,但对标题所述核心内容缺乏详尽的技术描述与实现细节。; 适合人群:电力电子、自动化、控制工程、信号处理及多智能体系统等相关领域的研究生、科研人员与工程技术人员。; 使用场景及目标:①为科研工作者提供跨学科的技术方向参考与研究选题灵感;②获取电力系统、无人机控制、信号处理等领域成熟的Matlab/Simulink或Python仿真代码资源,用于算法验证与模型复现。; 阅读建议:建议将此文档作为科研资源导航目录使用,读者可根据自身研究方向筛选感兴趣的主题,并通过文中提供的公众号或网盘链接获取完整的代码、仿真模型与配套资料进行深入学习与实践。

产业园区运营负责人如何提升企业技术需求与科研资源的精准匹配效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

上一篇: A Horrible Poem (HYSBZ - 2795,字符串哈希 + 枚举最小循环节小技巧~)
下一篇: Carny Magician(ICPC Pacific Northwest Regional Contest 2019,数位 DP)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值