POJ 3167 Cow Patterns KMP+暴力

Ribo测序翻译效率计算及可视化 本文介绍了一个计算翻译效率(TE)和分析转录-翻译相关性的生物信息学流程。首先通过Python脚本从标准化表达量矩阵(TPM/FPKM)计算TE值,该脚本自动匹配转录组(RNA)和翻译组(Ribo)样本进行比值运算。然后使用R语言进行相关性分析,通过ggplot2绘制样本间转录-翻译表达量的散点图,添加线性回归线和相关系数标注,支持PNG/PDF格式输出。整个流程实现了从原始数据处理到可视化分析的全过程。 阅读详情

时空隧道


题意:
给出两个串,如果a和b匹配当且仅当ab中的每个对应位置的数字rank1和rank2相同,rank1代表当前元素前面小于他的元素个数,rank2代表当前元素前面等于他的元素个数,求出匹配串和模式串的匹配位置(开头位置)


分析:
KMP…裸的KMP…就是计算一下rank就好…
因为数字不会超过25,所以直接暴力求rank就好…正解其实是树状数组…


代码如下:

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
//by NeighThorn
using namespace std;
const int maxn=100000+5,maxk=25000+5,maxs=25+5;
int n,k,s,a[2][maxn],nxt[maxk],num[2][maxn][maxs],vis[maxk];
inline int rank1(int len,int en,int id){
    int st=en-len,ans=0;
    for(int i=1;i<a[id][en];i++)
        ans+=num[id][en][i]-num[id][st][i];
    return ans;
}
inline int rank2(int len,int en,int id){
    return num[id][en][a[id][en]]-num[id][en-len][a[id][en]];
}
inline void getnext(void){
    nxt[0]=nxt[1]=0;int p;
    for(int i=1;i<k;i++){
        p=nxt[i];int a=rank1(p+1,p+1,1),b=rank1(p+1,i+1,1),c=rank2(p+1,p+1,1),d=rank2(p+1,i+1,1);
        while(p&&(a!=b||c!=d))
            p=nxt[p],a=rank1(p+1,p+1,1),b=rank1(p+1,i+1,1),c=rank2(p+1,p+1,1),d=rank2(p+1,i+1,1);
        if(rank1(p+1,p+1,1)==rank1(p+1,i+1,1)&&rank2(p+1,p+1,1)==rank2(p+1,i+1,1))
            nxt[i+1]=p+1;
        else
            nxt[i+1]=0;
    }
}
inline void kmp(void){
    int posa=1,posb=1,ans=0,stk[maxn];
    while(posa<=n){
        if(rank1(posb,posa,0)==rank1(posb,posb,1)&&rank2(posb,posa,0)==rank2(posb,posb,1))
            posa++,posb++;
        else if(posb==1)
            posa++;
        else
            posb=nxt[posb-1]+1;
        if(posb==k+1)
            stk[++ans]=posa-k,posb=nxt[posb-1]+1;
    }
    cout<<ans<<endl;
    for(int i=1;i<=ans;i++)
        cout<<stk[i]<<endl;
}
signed main(void){
    scanf("%d%d%d",&n,&k,&s);memset(num,0,sizeof(num));
    for(int i=1;i<=n;i++)
        scanf("%d",&a[0][i]),num[0][i][a[0][i]]=1;
    memset(vis,0,sizeof(vis));
    for(int i=1;i<=n;i++)
        for(int j=1;j<=s;j++)
            num[0][i][j]+=num[0][i-1][j];
    for(int i=1;i<=k;i++)
        scanf("%d",&a[1][i]),num[1][i][a[1][i]]=1;
    for(int i=1;i<=k;i++)
        for(int j=1;j<=s;j++)
            num[1][i][j]+=num[1][i-1][j];
    getnext();kmp();
    return 0;
}

by >_< NeighThorn

电源芯片TPS54560典型应用电路及设计详解 TPS54560 是一款配有集成型高侧 MOSFET 的 60V、5A DC-DC转换器,输入电压范围7-60V,输出电压可通过外部反馈电阻设置成略低于输入电压的任意值。**所以,**R5=31.25KΩ、R6:10KΩ(常用值)时,即可设置输出电压为 3.3V。**所以,**R5=140KΩ、R6:10KΩ(常用值)时,即可设置输出电压为12V。设计 TPS54560 的输出电压时,主要通过外部反馈电阻网络来设置输出电压。因此,输出 3.3V ,输入电压24V时推荐的电感值为 8µH 至 10µH。 阅读详情

相关推荐

HEVC/VVC中R-Lambda码率控制算法原理

文章目录1. 比特分配1.1 GOP级比特分配1.2 帧级比特分配1.3 LCU级比特分配2. 码率控制2.1 λ的计算和更新2.2 参数QP的确定 VVC中码率控制算法沿用了HEVC中经典的R-λ码率控制模型,R-λ由中科大的李斌博士提出(详情参考JCTVC-K0103)。R-λ模型的基础为视频编码中 R(比特 bpp)和 D(失真 MSE)之间的双曲线模型,即 D(R)=CR−KD(R) = ...

Aidoneus_y 6136

POJ-3167- Cow Patterns(KMP)

Cow Patterns Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4184   Accepted: 1496 Sample Input 9 6 10 5 6 2 10 10 7 3 2 9 1 4 4 3 2 1 Sample Output 1

不会吃鱼的喵 1005

深入解析YT8521S千兆以太网PHY芯片的设计与调试要点

本文深入解析了YT8521S千兆以太网PHY芯片的设计与调试要点。重点剖析了硬件设计中的电源方案、RGMII接口电平配置(尤其是1.8V电平方案)以及PCB布局布线等关键细节,并提供了从硬件检查、驱动配置到性能测试的完整调试流程,帮助工程师规避常见陷阱,实现稳定可靠的千兆网络连接。

weixin_29190573的博客 685

pku 3167 Cow Patterns(kmp)

Cow Patterns Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2610   Accepted: 972 Description A particular subgroup of K (1 <= K <= 25,000) of Farmer John'

街角的花街糖 956

JSSIP实战:5分钟搞定WebRTC电话功能(附完整代码示例)

本文通过JSSIP库实战演示如何在Web应用中快速集成WebRTC电话功能。文章提供了从环境准备、SIP服务器连接到完整代码示例的详细步骤,涵盖用户注册、拨号接听、媒体流处理等核心环节,并针对常见问题给出排查方案,帮助开发者高效实现网页端实时语音通信。

u8v9w0x1y的博客 517

从零到一:手把手教你用Python+LangChain搭建企业级RAG知识库(附避坑指南)

本文为开发者提供了一份详尽的实战指南,手把手教你使用Python和LangChain框架从零构建企业级RAG知识库。内容涵盖环境搭建、文档处理、向量化检索、提示工程及生产部署等核心环节,并重点分享了文档分割、检索优化等关键避坑经验,旨在帮助读者打造稳定、高效且易于维护的智能知识中枢。

weixin_29058331的博客 398

POJ 3167 Cow Patterns (KMP + 树状数组)

题意:在长度为n的主串中,用长度为k的模式串匹配,找出所有匹配的起始位置。匹配机制不是相等,而是找出的子串满足与模式串相同的大小关系。 例如样例:N:5 6 2 10 10 7 3 2 9    K:1 4 4 3 2 1。找出的子串为: 2 10 10 7 3 2,满足模式串中的任意i , j的大小关系。 现在需要一种判别方式代替普通的相等判别,就能变成kmp做法了。 用lee[i

Paradiser 1872

加湿器方案-DLT8M04TS-杰力科创

基本组成: 一个触摸按键、一组RGB灯、一个雾化片、一个充电IC。 产品功能: 第一次上电光机状态,RGB红/绿/红灯依次闪烁灭; 2、按键功能:短按开关机和三档喷雾工作模式,第一次短按持续喷雾,短按第二次喷3S,停3S,短按第三次关闭喷雾模式,依次循环; 在喷雾或是不喷雾的状态下长按1.5S RGB灯渐变,一直循环,第二次长按当前灯光闪烁一下常亮,第三次长按关机; 3、持续喷雾定时5小时自动断电,间歇喷雾定时10小时自动断电,若在间歇工作时有切换为持续喷雾,那间歇喷雾的...

JLKCsz的博客 512

POJ 3167 Cow Patterns(模式串浮动匹配)

题目链接:http://poj.org/problem?id=3167 题意:模式串可以浮动的模式匹配问题给出模式串的相对大小,需要找出模式串匹配次数和位置。 思路:统计比当前数小,和于当前数相等的,然后进行kmp。 比如说模式串:1,4,4,2,3,1 而主串:5,6,2,10,10,7,3,2,9,那么2,10,10,7,3,2就是匹配的 code: 1 #include &l...

weixin_34242658的博客 150

群晖NAS变身私有Git服务器:DS218+部署与TortoiseGit客户端实战指南

本文详细介绍了如何将群晖NAS(如DS218+)变身为私有Git服务器,并配置TortoiseGit客户端实现高效代码管理。通过硬件检查、系统更新、Git Server套件安装及权限配置等步骤,帮助开发者在局域网内搭建安全、高速的代码托管环境,特别适合小团队协作。

weixin_29252171的博客 223

Spring Boot入门(13):Mybatis-Plus之条件构造器使用手册:精通让你快速提高查询效率的技巧!

化繁为简,MP 中条件构造器的使用,极其详细.

**My Coding Family** 3万+

【POJ 3167】Cow Patterns (KMP+树状数组)

Cow Patterns Description A particular subgroup of K (1 <= K <= 25,000) of Farmer John's cows likes to make trouble. When placed in a line, these troublemakers stand together in a partic...

weixin_30639719的博客 238

人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念

人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1924

poj 3167 Cow Patterns ... 四种算法 (均结合kmp)

题目链接:http://poj.org/problem?id=3167 第1,2种算法思路是一样的,但是实现方法不同。 算法归于以下结论:两个序列的偏序相同则两序列同一位以前小于它和等于它的数的数量应该是相同的。 比如:题目匹配的结果是: 2 10 10 7 3 2                                             1   4   4 3  2

imissher的专栏 952

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

poj3167 Cow Patterns KMP、树状数组

最近的日子被考试压得喘不过气来,说好的每天水两道题又荒废了。。。 为了让写解题报告和看解题报告不那么无聊,我决定从这篇起每篇加几句心得或感慨(很大几率是废话): 数据结构是好东西,必须信手拈来,或者准备好模块,熟练得像std::sort那样,才能克服一些稍显复杂的堆砌算法的题目。 另外,KMP是神奇的算法。 poj3167 KMP&树状数组。 这题要求第一串中间是否有与

Necs的小窝 882

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【KMP】【poj3167】【bzoj1729】Cow Patterns

题意 给定一个顺序序列表示奶牛的排列顺序,定义串a=b当且仅当a的每位的排名=b的每位的排名。 题解 预处理出前i位中j出现的次数,由于编号很小,处理出类似前缀和,暴力查询排名即可。已知排名之后就直接kmp。 代码 #include <iostream> #include <cstdio> #include <cstring> #define MAXN 100001 using namespac

peter_819的博客 673

计算机控制技术及应用

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

【poj 3167】Cow Patterns(字符串--KMP匹配+数据结构--树状数组)

题意:给2个数字序列 a 和 b ,问按从小到达排序后,a中的哪些子串与b的名次匹配。 a 的长度 N≤100,000,b的长度 M≤25,000,数字的大小 K≤25。 解法:【思考】1.X 暴力。枚举 a 中的子串,选出来排序后比对名次。O(n* m log m *m)=O(n*m^2*log m)。 2.X 暴力+树状数组优化。枚举 a 中的子串,选出来后比较前缀名次(P.S....

weixin_34341117的博客 172

poj3167- Cow Patterns

传送门 两个串相等定义为串中每一位排序后的相对大小相等。 一位相等等价于这一位前面比他小的和等于他的数的个数相等。 那么用kmp,比较的时候比较这两个个数就可以了。 一开始很瓜地想,询问一段区间内比我小和和我相等的数,得写个主席树啊。。。 实际上用个树状数组维护,kmp跑nxt的时候把跳过的部分从树状数组中删除就好了。 //Achen #include<algorith...

weixin_30532987的博客 199

poj3167 Cow Patterns

问题转化+kmp

YHaX的博客 1507

【POJ3176】Cow Patterns KMP+树状数组(让苍天知道我不认输)

题目大意: 根据一个子串的大小顺序找到原数组中满足条件的子串所有开头坐标并输出。思路: 建立动态的树状数组存好ran1,ran2并利用ran1,ran2判断是否元素价值相同(在排序中处于相同位置)。如果不处于相同位置要将前面多余的元素删除,才能得到现在这个比较的子串的元素的真实价值。改了很久很久主要还是之前没理清next数组。 next数组可能还是next[0]=next[1]=0的比较容易理

UPUP&TOPTOP 486

poj 3167 Cow Patterns (kmp + 线段树/树状数组)

这道题确实让我更加深入的了解了kmp。。。。 以前的匹配只要字符或者是数值一样就可以,这道题是区间名次一样进行匹配的。 一个数在区间中的名次可以转化为,它前面比他小的数的个数,和他相等的个数,和比他大的个数。 一个数显然不行,但是如果一个区间内所有数的这三个值都对应相等,那么这两个区间就是等价的。 可以用线段树来维护区间。 #include #include #include #incl

野生的TFgirl 716

bzoj1729 [Usaco2005 dec]Cow Patterns 牛的模式匹配 kmp+乱搞

题意:给定一个顺序序列表示奶牛的排列顺序,定义串a=b当且仅当a的每位的排名=b的每位的排名。(注意排名仅相对于当前区间)。一开始想的是一边kmp一边维护排名,但是有点复杂,然后学习了一下更为简单的一种做法。 设rank[i][j]表示前i位数字j出现的次数,那么我们在kmp的时候就可以一边跑一边看排名是否相同,具体的话,是这样: 假设kmp到当前第i位,已经匹配了j位,那么我们要求i,j排名相

老臣 626

POJ 3167 Cow Patterns

题意:给定长度为n和m的两个数字序列(数均小于等于25),用m去按照一定方式去匹配n,即:如果n中的区间[a,b]各数字的名次与m中各数字的名次完全一样,那么他们就是匹配的。问题:求所有的匹配个数及他们出现的首位置。 题解:KMP的升级版,对KMP有一定了解后做这道题就比较容易了,由于区间不同后,名次就不同了,统计名次也比较麻烦,所以对于区间[a,b]中的一个数的名次,可以对应为这个数之前比它小

tmeteorj的专栏 3426

POJ 3167 Cow Patterns(KMP算法变形)

题目来源:http://poj.org/problem?id=3167 问题描述 Cow Patterns Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5200   ...

da_kao_la的博客 662

[kmp] POJ3167 Cow Patterns

Cow Patterns Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3849 Accepted: 1378 DescriptionA particular subgroup of K (1 <= K <= 25,000) of Farmer John’s cows likes to make trou

童凌的技术博客 710

Cow Patterns poj 3167 (hash解法)

围观了叉姐的代码,hash对于解串类题目真的好灵活, 又涨姿势了 ==。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

霁月难逢 彩云易散 1019
上一篇: 最小生成树系列QAQ
下一篇: BZOJ 1098: [POI2007]办公楼biu 并查集优化bfs找反图联通块
NeighThorn
博客等级 码龄11年 20粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值