HDU - 4416 Good Article Good sentence

从零到一:用STM32 FOC算法驯服无刷电机的艺术 本文详细介绍了如何使用STM32和FOC算法实现无刷电机的高性能控制。从硬件搭建、参数识别到闭环调节,一步步解析FOC算法的核心原理与调优技巧,帮助开发者掌握电机控制的关键技术,实现从零到一的精准驯服。 阅读详情

题目:给一个字符串S和一系列字符串T1~Tn,问在S中有多少个不同子串满足它不是T1~Tn中任意一个字符串的子串。

思路:match[i]表示当前节点能匹配的最长长度

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<ctime>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f
//0x3f3f3f3f

const int MAXN = 200050, SIZE = 26;
struct SAM {
    int len[MAXN], link[MAXN], next[MAXN][SIZE];
    int total, last;
    inline int newNode(int L) {
        len[++total] = L; link[total] = 0;
        for(int i = 0; i < SIZE; ++i) next[total][i] = 0;
        return total;
    }
    inline void Add(int c) {
        int i, p = last, cur = newNode(len[last] + 1);
        for(; p && !next[p][c]; p = link[p]) next[p][c] = cur;
        if(!p) link[cur] = 1;//令其指向初始状态
        else {
            int q = next[p][c];
            if(len[q] == len[p] + 1) link[cur] = q;
            else {//>
                int clone = newNode(len[p] + 1);
                for(i = 0; i < SIZE; ++i) next[clone][i] = next[q][i];
                link[clone] = link[q];
                link[q] = link[cur] = clone;
				for(; p && next[p][c] == q; p = link[p]) next[p][c] = clone;
            }
        }
        last = cur;
    }
    void Init () {//根节点是1
        total = 0;
        last = newNode(0);
    }
}sam;
char str[MAXN];
int num[MAXN],idx[MAXN],match[MAXN];
int main(){

    int T,cas=0,n;
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        scanf("%s",str);
        sam.Init();
        for(int i=0;str[i]!='\0';i++)
            sam.Add(str[i]-'a');
        mm(num,0);
        for(int i=1;i<=sam.total;i++) num[sam.len[i]]++;
        for(int i=1;i<=sam.total;i++) num[i]+=num[i-1];
        for(int i=1;i<=sam.total;i++) idx[num[sam.len[i]]--]=i;
        mm(match,0);
        while(n--){
            scanf("%s",str);
            int now=1,len=0;
            for(int i=0;str[i]!='\0';i++){
                int c=str[i]-'a';
                if(sam.next[now][c]!=0){
                    len++;
                    now=sam.next[now][c];
                }
                else{
                    while(sam.next[now][c]==0&&now!=0) now=sam.link[now];
                    if(now==0){
                        now=1;
                        len=0;
                    }
                    else{
                        len=sam.len[now]+1;
                        now=sam.next[now][c];
                    }
                }
                match[now]=max(match[now],len);
            }
        }
        for(int i=sam.total;i>=1;i--){
            int p=idx[i],np=sam.link[p];
            if(match[p])
                match[np]=sam.len[np];
            else
                match[p]=sam.len[np];
        }
        LL sum=0;
        for(int i=1;i<=sam.total;i++)
            sum+=sam.len[i]-match[i];
        printf("Case %d: %I64d\n",++cas,sum);
    }
    return 0;
}


编写python脚本调用ordinals以及BRC20的接口 1、钱包地址生成walletreceive,对应ord命令:ord wallet receive。6、测试手动出块generate,这个只在regtest链节点用得上。所有接口都是post请求,采用postman进行测试。4、测试bitcoin转币sendtoaddress。7、测试其他的wallet方法wallet。2、钱包币种铭刻inscription,对应bitcoin-cli命令。对应bitcoin-cli命令。对应bitcoin-cli命令。fee.json文本模板。还可以加很多根据需要加减。 阅读详情

相关推荐

LMS Virtual.Lab二次开发:声学仿真结果导出方法(VBScript、Python)

Siemens LMS Virtual.Lab 提供一套集成软件平台用以模拟机械系统的品质属性,如结构完整性、振动噪声、耐久性、系统动力学特性、驾驶的平顺性及操纵的稳定性等。

爱看书的小沐 6015

Good Article Good sentence

题目描述 In middle school, teachers used to encourage us to pick up pretty sentences so that we could apply those sentences in our own articles. One of my classmates ZengXiao Xian, wanted to get senten

Tomcat的Tom 1万+

Jitsi中的Prosody(谐音:破扫敌)介绍

凭借其灵活的插件系统、强大的安全性和出色的性能,Prosody 成为许多企业和开发者构建定制化通信解决方案的首选。在 Jitsi 的多方视频会议场景中,Prosody 不仅处理基本的信令任务,还需要与其他组件(如 Jitsi Videobridge)协作,确保视频流的正确分发和控制。Prosody 提供了丰富的插件系统,允许开发者通过模块扩展其功能。Prosody 就是一个实现 XMPP 协议的服务器,它支持 XMPP 协议的标准功能,如消息传递、群组聊天、传送状态信息等,并提供了高效、可扩展的服务。

江左散人的专栏 1165

HDU 4416 Good Article Good sentence(后缀数组)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4416 题意:给出一个A串,若干个B串,问A中有多少子串未在任一B串中出现过 思路:先将A串和所有B串连起来,中间用特殊字符隔开,求出总串有多少不相同子串,再将A串拿掉,求出所有B串的不相同子串,两者相减即为答案 在求的过程中,难点在于如何减去那些由特殊字符组成的子串,我们可以枚举每个...

Tongqi 688

Unity 代码混淆<混淆插件(Obfuscator Pro 3.9.4)>

Unity 代码混淆<混淆插件(Obfuscator Pro 3.9.4)> 插件导入项目 导入后打开OPS/Obfuscator/Obfuscator Pro Settings 打开后可以看到界面如下 可以在上面界面中选择你需要混淆的类,方法,字段,属性,事件,参数。需要混淆的程序集的选择。如果有些程序集混淆后会有问题也可以添加到白名单里不被混淆 根据自己需求取选择 这个界面是是否添加添加随机代码的 如果使用了上面的插件可以使用 插件下载网址:https://download.cs

Xing_Cheng_Yun的博客 5097

YOLOv11改进 | 细节涨点篇 | DySample一种最新的轻量化动态上采样算子(效果完爆CARAFE)

本文给大家带来的最新改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子),

Snu77的博客 4208

HDU - 4416 ——Good Article Good sentence (后缀树组)

传送门:http://acm.split.hdu.edu.cn/showproblem.php?pid=4416 In middle school, teachers used to encourage us to pick up pretty sentences so that we could apply those sentences in our own articles. On

Vision 638

innovus:给channel加soft blockage

dbGet [dbGet top.fplan.pBlkgs.name finishfp_place_blkg_* -p].boxes就可以获得channel坐标。意思是给30um以下的channel加soft blk,至于channel的坐标,通过抓取该soft blk去获取,比较容易。工具自己加入的placement blockage命名上叫finishfp_place_blkg_*ICC2中有给channel自动加soft blockage的命令,相应的innovus也有类似的命令,我们可以使用。

m0_61544122的博客 480

不在B中的A的子串数量 HDU - 4416 (后缀自动机模板题目)

题目: 给定一个字符串a,又给定一系列b字符串,求字符串a的子串不在b中出现的个数。 题解: 先将所有的查询串放入后缀自动机(每次将sam.last=1)(算出所有子串个数) 然后将母串放入后缀自动机然后记录这个子串个数 两个值相减即可 1 #include <set> 2 #include <map> 3 #includ...

weixin_30767835的博客 179

基于Python的新闻聚合与推荐系统:抓取多新闻网站内容并根据用户兴趣进行个性化推荐

本文介绍了如何使用Python构建一个新闻聚合与推荐系统,涵盖了从新闻数据抓取、用户兴趣建模到推荐算法实现的全过程。通过爬虫技术抓取新闻网站内容,使用TF-IDF、Word2Vec等算法进行内容分析,并通过推荐算法向用户推送个性化的新闻,最终帮助用户快速获取自己感兴趣的信息。你可以根据具体需求,进一步扩展和优化系统。例如,加入更多的推荐算法、优化爬虫的抓取效率、增强前端展示的互动性等。通过本文的指导,您应该能够构建一个完整的新闻聚合与推荐系统,并为用户提供个性化的新闻推荐服务。

2201_76125261的博客 1513

大语言模型应用指南:幻觉和偏见问题

大语言模型应用指南:幻觉和偏见问题 1. 背景介绍 1.1 大语言模型的发展历程 1.1.1 早期的语言模型 1.1.2 Tr

AI天才研究院 958

Good Article Good sentence HDU - 4416 (后缀数组)

Good Article Good sentence \[ Time Limit: 3000 ms\quad Memory Limit: 32768 kB \] 题意 给出一个 \(S\) 串,在给出 \(n\) 个 \(T\) 串,求出 \(S\) 串中有多少子串没有在任意一个 \(T\) 串中出现过 思路 \(\quad\)总体思路就是用 \(S\) 中所有的子串减去 \(T\) 中出现的子串...

weixin_30640769的博客 143

电源完整性分析:PDN阻抗与去耦电容设计——目标阻抗计算与电容选型深度实战

摘要:随着嵌入式处理器主频突破 GHz、多核架构普及,电源完整性(Power Integrity, PI)已成为高速 PCB 设计中不可忽视的关键环节。本文从 PDN(电源分配网络)阻抗模型出发,系统讲解目标阻抗计算方法、去耦电容选型策略、反谐振抑制技术,并结合 STM32F4 核心板的完整设计实例,提供一套可落地的电源完整性工程实践方案。电源完整性设计是一项系统工程,需要从目标阻抗计算电容选型反谐振抑制PCB 布局目标阻抗是设计的起点,由电源电压、纹波要求和瞬态电流决定去耦电容。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

HDU 4416 Good Article Good sentence

Description In middle school, teachers used to encourage us to pick up pretty sentences so that we could apply those sentences in our own articles. One of my classmates ZengXiao Xian, wanted to get

Occult 779

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

hdu4416---Good Article Good sentence

Good Article Good sentence Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2586 Accepted Submission(s): 728Problem Description In middle s

Alex 985

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

HDU 4416 Good Article Good sentence

思路倒是一直有,就是好难实现,最后写出来了还是WA了,然后参考了别人的思路 才发现自己对于字符串的不同子串数的求解原理还不是很清楚,然后重新理解了遍 在这道题中,我们每找到一个A后缀,只要找出该后缀已经计算过的子串数就可以了,用pos数组保存 最后还要注意ans要用long long,并且在计算之前就先进行类型转换 #include #include #include using nam

lj94093的专栏 681

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

hdu4416 Good Article Good sentence(SAM)

题意: 给一个字符串s, 然后再给n个串t1, 问

yamiedie_ 657

【HDU4416】Good Article Good sentence【后缀数组】

研究了一会才搞懂。 参照blog(http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526 by---cxlove)写的代码。。 先把A和所有的B中间用间隔符串起来,然后求sa,rank,height。 接下来的大体过程是: 求出A与B重复的子串个数 和 A自身重复的子串个数 用A的全部子串个数减去上面求出的值

BraketBN 845

hdu 4416 Good Article Good sentence (后缀自动机 SAM)

2012杭州网络赛的一道题,后缀数组后缀自动机都行吧。 题目大意:给一个字符串S和一系列字符串T1~Tn,问在S中有多少个不同子串满足它不是T1~Tn中任意一个字符串的子串。   思路:我们先构造S的后缀自动机,然后将每一个Ti在S的SAM上做匹配,类似于LCS,在S中的每一个状态记录一个变量deep,表示T1~Tn,在该状态能匹配的最大长度是多少,将每一个Ti匹配完之后,我们将S的SAM做

ddyyxx的程序员之路 7690

HDU 4416 Good Article Good sentence(SAM)

转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526       by---cxlove  题目:给出一个A串,给出若干个B串,问A串中有多少个不同的子串不是B中的子串 http://acm.hdu.edu.cn/showproblem.php?pid=4416  之前用SA做过一次,http://

窝不是爱酱,喵~~~~ 2320

【HDU 4416 】Good Article Good sentence 后缀数组

Good Article Good sentence Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3171 Accepted Submission(s): 914Problem Description In middle s

ATOD 647

HDU 4416 Good Article Good sentence(12年杭州 后缀数组)

转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526       by---cxlove  题目:给出一个A串,给出若干个B串,问A串中有多少个不同的子串不是B中的子串 http://acm.hdu.edu.cn/showproblem.php?pid=4416  比赛中挺可惜的一题。 当时看了一下数据范

窝不是爱酱,喵~~~~ 4257

Hdu 4416 Good Article Good sentence 后缀自动机

Good Article Good sentence Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3964    Accepted Submission(s): 1162 Problem Description

J. Cole 298

hdu4416 Good Article Good sentence (后缀数组)

题意:问a串中有多少种字符串集合B中没有的连续子串。a的长度10^5,B中的总长度为不超过10^5. 解法:后缀数组题目;后缀数组可以很容易算出来一个串中有多少种子串。把a和B集合连起来,求一次不同子串数量,然后减掉B相互连起来的数量。在求时候,要减掉含有链接符的子串,方法是扫一遍,枚举最后出现的连接符。 代码:/********************************

xiefubao的专栏 921

hdu 4416 Good Article Good sentence

后悔为啥当时神马后缀数组后缀树都不会,最擅长的费用流也没想出来,搞的杭州赛区挂掉了。。。T T #pragma comment(linker, "/STACK:102400000,102400000") #include #include #include #include #include #include #include #include #include #include #incl

量子流逝 815
上一篇: SPOJ - SUBLEX Lexicographical Substring Search 求字典序第k小的子串
下一篇: POJ - 3415 Common Substrings 求2个串大于K的公共子串个数
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值