pku2406 Power Strings(kmp字符匹配,next数组)

海康视觉通讯配置 本文介绍了海康通讯管理中TCP和Modbus协议的配置方法。TCP通讯时,视觉系统作为服务器接收PLC客户端发送的触发信号,需注意十进制与十六进制字符串的转换。Modbus配置需填写PLC的IP地址和寄存器首地址,并预先定义整型变量。TCP通讯需开启16进制发送模式以避免数据格式问题。文章重点说明了不同通讯方式下的数据格式转换和参数设置要点。 阅读详情
   重看了下数据结构,发现有些知识还没有吃透。kmp算法就是一个。kmp的关键就是next数组,求出了next数组后就和O(n*m)的算法类似。求next数组有dp的思想,假设知道next[i]=k,现在要求next[i+1],
                next[i]+1   ch[i]=ch[i+1]
   next[i+1]=   next[k']+1  沿着前面的next数组找到一个k',ch[k']=ch[i+1],简单情况就是k'=next[i]
                0           其他情况
书上还说的了next数组的优化,当ch[k]==ch[i+1]时,next[i+1]=next[k]。
附段伪代码:
algorithm kmp_search:
input:
an array of characters, S (the text to be searched)
an array of characters, W (the word sought)
output:
an integer (the zero-based position in S at which W is found)

define variables:
an integer, m ← 0 (the beginning of the current match in S)
an integer, i ← 0 (the position of the current character in W)
an array of integers, T (the table, computed elsewhere)

while m + i is less than the length of S, do:
if W[i] = S[m + i],
let i ← i + 1
if i equals the length of W,
return m
otherwise,
let m ← m + i - T[i],
if i is greater than 0,
let i ← T[i]

(if we reach here, we have searched all of S unsuccessfully)
return the length of S
  1. #include <iostream>
  2. using namespace std;
  3. #include <string.h>
  4. #define pr printf
  5.  char ch[1003003];
  6. int next[1003003];
  7. int main(int argc, char** argv) {
  8.     int len,i;
  9.     while(scanf("%s",ch))
  10.     {
  11.         len=strlen(ch);///书上的算法,数据结构
  12.         if(len==1 && ch[0]=='.')break;
  13.         next[1]=0;int j=0;i=1;
  14.         while(i<len)
  15.         {
  16.             if(j==0 ||ch[i]==ch[j]){++i,++j;next[i]=j;}
  17.             else j=next[j];
  18.         }
  19.         int tmp,cur,l; 
  20.             l=len-next[len];
  21.             tmp=len/(len-next[len]);
  22.         if(len%l!=0){pr("1/n");continue;}
  23.             else {
  24.                  cur=l-1;
  25.                  for(cur;cur<len;cur+=l)if(ch[cur]!=ch[l-1])break;
  26.                 if(cur>=len){
  27.                     pr("%d/n",tmp);
  28.                 }else pr("1/n");
  29.             }
  30.     }
  31.     return (EXIT_SUCCESS);
  32. }

杰理AC696N使用ADC检测电位器调音量教程 本教程详细介绍了在杰理AC696N芯片上使用ADC功能检测电位器电压值的方法。主要内容包括:硬件连接方式(电位器VCC/OUT/GND分别接3.3V、PA3引脚和地线),10位ADC配置(0-1023对应0-3.3V),以及核心代码实现。关键步骤涉及ADC采样通道初始化、GPIO引脚配置(关闭数字输入和上下拉电阻),以及通过定时器实现50Hz采样频率。教程还详解了ADC值到系统音量的线性映射算法,并提供了完整的代码示例和调试方法,帮助开发者实现电位器实时控制音量的功能。 阅读详情

相关推荐

机械臂算法设计MATLAB|运动学动力学|轨迹规划|路径规划|Simulink

RRT为最常用的路径规划算法,还有其变种(RRT*,RRT-connect等)。RRT是一种多维空间中高效的规划方法。它以一个初始点作为根节点,通过随机采样增加叶子节点的方式,生成一个随机扩展树。随机扩展树不断增长,直到到达目的位置。**Step1:**构建多维状态空间(joint space),**Step2:**构建joint space的障碍检测算法**Step3:**在joint space应用RRT。

qq_35997213的博客 4476

PKU 2406:Power Strings 【KMP】

Power Strings Time Limit : 6000/3000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submission(s) : 70   Accepted Submission(s) : 27 Problem Description Given two strings a and

所谓梦想,就是永不停息的疯狂。。。。。 1005

全桥LLC谐振变换器设计与双环控制策略详解

LLC谐振变换器作为高频开关电源的核心拓扑,通过谐振腔实现软开关特性,显著提升转换效率(可达96%以上)。其工作原理基于谐振电感、电容的协同作用,当开关频率接近谐振点时实现ZVS/ZCS。在工业电源、电动汽车充电等场景中,电压电流双环控制策略通过引入电流内环和竞争仲裁机制,有效改善动态响应(实测负载跳变时电压跌落减少60%)。数字控制实现时需注意ADC采样同步和PWM更新时序,而谐振参数测量与温升管理则是工程实践的关键。

weixin_29189987的博客 257

pku 2406 kmp 解题报告

一、 题目: Power Strings二、 题意: http://acm.pku.edu.cn/JudgeOnline/problem?id=2406三、 解决办法:kmp        首先要理解kmp的基本原理!对于kmp算法,由于我的数据结构的老师没有讲述到,就只好我自己去看书了,然而我本人智商有限,看这哪几页,也看不懂到底再说什么。简简单单的几行代码却让人想得头都晕!终于看到

find_my_dream的专栏 1636

Trae CN 使用入门指南

【代码】Trae CN 使用入门指南。

weixin_42551921的博客 8770

字符集的选择

字符集的选择 一:背景介绍 DICOM特定字符集(0008,0005) 此标签获得不同的值就代表使用不同的语言进行解码。 以下为多家CT厂商的(0008,0005)取值: 字符集: unicode是字符集,ASCII、GB2312、GBK、GB18030既是字符集也是编码方式,UTF-8只是编码方式。 二:中文字符集介绍 世界通用字符集——UTF 中文字符集——GB2312、GBK、GB18030 字符集的详细介绍 一:UTF-8 程序是把一个字节一个字节的来读取,然后再根据字节中开头的bit

qq_41972968的博客 1520

pku2406 Power Strings

DescriptionGiven two strings a and bwe define a*b to be their concatenation. For example, if a = "abc"and b = "def" then a*b = "abcdef". If we think ofconcatenation as multiplication, exponentiation b...

zhouhongkai06的博客 269

8-阿里云服务器 ECS配置R及Studio Server

步骤概览:(首先要明确自己的系统然后进行安装)

hx2024的博客 1572

poj 2406 Power Strings(KMP)

Power Strings(pku 2406) 给定两个字符串 a 和b,我们定义 a*b 为两个字符串的联接。例如,a = "abc" 且 b = "def",则a*b = "abcdef"。把这个定义的运算看做多项式,则一个字符串的非负整数次幂定义如下: a^0 = "" (一个空字符串) 且 a^(n+1) = a*(a^n)。 输入: 每个测试样例为一行,即一个字符串s,其长

The_star_is_at的博客 476

iStoreOS等软路由插件卸载的残留?分享一款软路由高级卸载工具,自定义卸载,轻松解决卸载残留问题

iStoreOS用户看过来!👀 还在被插件包残留困扰吗?本文分享一款“高级卸载”的插件,助你深度清理iStoreOS系统,彻底解决软件卸载不净的痛点,告别频繁恢复出厂设置的烦恼!🚀

XiaoqiangClub的博客 1545

【报错】(pycharm运行程序)OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading

1 报错 OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading 2 分析原因 通过 activate Distance 进行自己创建的 Distance 虚拟环境中,输入python会显示环境中python的版本信息,再依次import,显然不会报错。 这是因为在Anaconda的环境下有支持 import torch 的 dll,而在PyCharm中使用的是自己创建的新环境,还缺少相应支持的dll,仅需在PyCharm中配置环境变量。.

静谧、淡雅 8623

Pku acm 2406 Power Strings数据结构题目解题报告(十八)----kmp算法

关于kmp算法,大家都非常熟悉,其涵义非常难懂,以至于我学习kmp算法的时候一直怀疑自己的智商,其具体思想,这里就不多说了,网上也有很多资料,我用的是严蔚敏老师的书,实现也是按说上的方法实现的,推荐大家把kmp算法彻底弄明白了再做poj相关的几道题:2406 Power Strings 1961 Period 2752 Seek the Name, Seek the Fame。该题的题意是这样

苏强的专栏 4467

【python科研数据处理】将Endnote自动搜索的所有pdf文件,全都移动指定文件夹中

将Endnote自动搜索到的全部pdf文件,全都移动指定文件夹中1 背景2 问题解决 手动反爬虫,禁止转载:原博地址 https://blog.youkuaiyun.com/lys_828/article/details/122370892(优快云博主:Be_melting) 知识梳理不易,请尊重劳动成果,文章仅发布在优快云网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息 1 背景 在进行期末考试周后,面对最后一门功课,需要提交至少80篇SCI参考文献,因此最快下载文献的方式就是通过Web of S

lys_828的博客 1827

#P5637. Pku2406 Power Strings题解

摘要:本文提出利用KMP算法求解字符串由多少重复子串组成的问题。通过计算字符串的KMP前缀数组,若字符串长度能被(长度-末位前缀值)整除,则重复次数为该比值,否则为1。算法对每个输入字符串(长度≤10^6)进行处理,遇到"."时终止,输出各字符串的重复次数。例如"ababab"返回3,"abcd"返回1。时间复杂度接近线性,能高效处理大规模输入。

bz02_2023f2的博客 191

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

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

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

POJ 2406 Power Strings (KMP)

Power Strings Time Limit: 3000MSMemory Limit: 65536K Total Submissions: 29663Accepted: 12387 Description Given two strings a and b we define a*b to be their concatenation. For example, if a =...

weixin_30912051的博客 96

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

POJ - 2406 Power Strings

Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 58285   Accepted: 24224 Description Given two strings a and b we define a*b to be their concatenation. For example, if a =...

LOVE&AI的博客 253

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

KMP经典习题

KMP 算法经典题目: pku2406 Power Strings http://162.105.81.212/JudgeOnline/problem?id=2406 pku1961 Period http://162.105.81.212/JudgeOnline/problem?id=1961  这个题目是1961的升级版,考察队next数组的应用,附上代码: #incl

Exchan 2218

数学类小结

pku 1150 The Last Non-zero Digit   和计算排列数末尾有多少个零有些类似,把2,5因子都拿出来,剩下的数的最后一个数字只有1,3,7,9。只有各位上的数字才会影响最后一个非零数字。统计可以用递归来统计,求出1~n中因子2,5的个数,以及3,7,9结尾的数和去掉2,5后新的到的数中3,7,9结尾的数。结果就是 2^(dig[2]-dig[5])*3^(dig[3])*

4706

pku 3533 Light Switching Game(nim 积)

 第一个nim积题目。nim积与nim和够成一个正整数域上的群。nim积用⊗表示,nim和用⊕表示。和乘法类似:    x⊗1=1⊗x=x    y⊗0=0    (x⊗y)⊗z=x⊗(y⊗z)⊕是异或运算。⊗的运算法则定义为:   1.The nimber product of distinct Fermat 2-powers (numbers of the form ) is equal to

1081

pku 1149 PIGS(最大流)

这题的网络是这样建的。设一个源点s,s将于客户节点相连,连接方式为对考虑一个猪圈是第一次被光顾s将于这位顾客之间有一条流容量是该猪圈的猪数,若这个猪圈被人光顾过,则在这个顾客和前一个顾客间有一条无限流量的通道。依次下去完成顾客节点和s,顾客节点和顾客阶段间的网络。最后是顾客和汇点的网络,每个顾客和汇点t都有条通道,容量是顾客希望购买的数量。       /*pku1149  Name: 

1053

基于频繁增长树(FP-树)的频繁项集挖掘算法实现

   花了两天的时间终于完成了。一开始照着论文实现了一下,总是感觉怪怪的,结果果然不对,论文里描述看上去都差不多,就是抓不住要点,最后还是看懂了原版paper,才实现了。感觉FP-Tree的实现并不难,就是一些链表指来指去,倒是觉得FP_growth函数不好写,这个函数主要是在一棵大FP-Tree上操作,来生产小FP-Tree树,最终得到只有一个枝的树,就能打印组合了。递归是肯定的。另外,第一次用

988

计算几何小结

pku 1039 Pipe    这题的最优解在于最优直线至少会过两个拐点,枚举拐点对。pku 1092 Farmland   总是是过了。这题有点像找凸包,不同的是凸包是以最左下点作为参考。首先对每个顶点的邻接点排序(按极角),以源点和顶点为参照边,从小到大排序其邻接点。通过排序后各顶点的邻接点按逆时针排列。下一步就是去找所以的封闭多边形,按着从一条边以该边为轴逆时针旋转到邻近的边,由于事先对邻

918

pku 1737 Connected Graph(组合数学,高精度)

package pku1737;import java.math.BigInteger;import java.util.*;public class Main {    static BigInteger f[];    public static void main(String[] args) {        int n;        Scanner 

879

pku 2348 Euclid's Game

这题的意思是说:给两个数,两个人轮流减少他们,不能再减的那个人输。每次只能在这两数中选小的(倍数)减大的.可以看出这类题不是NIM类题,因为每次减少的数目是不能确定下来的。先看些简单的情况。假设这两个数是a>b. 1。当a%b==0时,先行者胜,即(N-position). 2。当a%b!=0时, 设a=b*q+r。(q>1)   可以看出先者可以做出让a减b,2b,3b..qb这q种选择。在这些

769

hdu 2513 cake clicing(切蛋糕)

   这题是用四维过的。dp[i][j][h][w],i,j表示蛋糕的左上角,h,w代表高和宽。在dp前还要统计一下每个子蛋糕方块中樱桃的数目。状态转移方程是这样的(考虑行,列两种切法)   在[i][j][h][w]这块蛋糕中没有樱桃,则     dp[i][j][h][w]=0 否则       dp[i][j][h][w]=min{      dp[i][j][h][w-w0]+dp[i][

706

pku2352 Stars(线段树实现)

第一个线段树。。。线段树真是灵活多变啊。。。看来要好好掌握还要多加练习。。/*pku2352  Name: Stars  Date: 02-08-08 16:41  Description: 统计问题,线段树 */#include#define MAX 72010#define pr printf//  FILE * pp=fopen("temp.txt

684
上一篇: pku 1737 Connected Graph(组合数学,高精度)
下一篇: 二叉树和红黑树
J_Factory
博客等级 码龄19年 24粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值