UVa 10069 - Distinct Subsequences

零基础学会制作 基于STM32/51单片机的智能血压表设计/血压表/血压计 本系统是以单片机为主控,传感器模快、显示模块、人机交互、无线传输等组成的智能血压表设计。传感器用于测量血压和脉搏,主控电路板用于处理数据和控制设备,显示屏则用于显示测量结果。通过软件设计,完成测量数据的处理,其中血压和脉搏的测量、数据的分析和处理等。 阅读详情

dp+大数加法。

设母串的长度为 j, 子串的长度为 i,我们要求的就是长度为 i 的字串在长度为 j 的母串中出现的次数。

(1)若母串的最后一个字符与子串的最后一个字符不同,则长度为 i 的子串在长度为 j 的母串中出现的次数就是母串的前 j - 1 个字符中子串出现的次数,即 str[i][j] = str[i][j - 1];

(2)若母串的最后一个字符与子串的最后一个字符相同,那么除了前 j - 1 个字符出现子串的次数外,还要加上子串的前 i - 1 个字符在母串的前 j - 1 个字符中出现的次数(再加上当前相等的这个字符其长度就可以凑成完整的字串长度),即 str[i][j] = str[i][j - 1] + str[i - 1][j - 1]。

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
char dp[101][10001][102], str1[10002], str2[102];
void Add(char *c, char *a, char *b)
{
    int len_a = strlen(a);
    int len_b = strlen(b);
    int len_c = max(len_a, len_b);
    memset(c, 0, (len_c+2)*sizeof(c[0]));
    for(int i=len_a-1, j=len_c; i>=0; --i, --j)
        c[j] += a[i] - '0';
    for(int i=len_b-1, j=len_c; i>=0; --i, --j)
        c[j] += b[i] - '0';
    for(int i=len_c; i>0; c[i]+='0', --i)
            if(c[i] > 9)
            {
                c[i] -= 10;
                ++c[i-1];
            }

    if(!c[0])
    {
        for(int i=0; i<len_c; ++i)
            c[i] = c[i+1];
        c[len_c] = 0;
    }
    else
        c[0] = '1';
}
int main()
{
#ifdef test
    freopen("input.txt", "r", stdin);
#endif
    int num;
    scanf("%d", &num);
    while(num--)
    {
        scanf("%s%s", str1, str2);
        int len1 = strlen(str1), len2 = strlen(str2);
        for(int i=0; i<=len1; ++i)
            strcpy(dp[0][i], "1");

        for(int i=1; i<=len2; ++i)
            {
                strcpy(dp[i][i-1], "0"); // 此语句可有可无,因为dp[i][i-1]本身为‘\0’,不影响加的过程
                for(int j=i; j<=len1; ++j)
                {
                    if(str1[j-1] == str2[i-1])
                        Add(dp[i][j], dp[i][j-1], dp[i-1][j-1]); //dp[i][j] = dp[i][j-1] + dp[i-1][j-1];
                    else
                        strcpy(dp[i][j], dp[i][j-1]); //dp[i][j] = dp[i][j-1];
                }
            }

        printf("%s\n", dp[len2][len1]);
    }
    return 0;
}


浅谈银行内部户治理 为避免该问题的发生,对内部户入账类交易,或内部户是可透支的账户(如系统间往来),可考虑通过异步方式更新账户余额(当然,根本上还是要考虑银行业务量的实际,异步消息接口很多时候没有同步接口方便),另外,在进行内部户余额更新时,可以通过定时的借贷方发生额轧差的方式,将多次的锁请求,简化为一次(当然,发生额明细本身在加工账户交易历史时,是不能汇总的)。内部户在银行系统中,属于业务属性较少,实现相对简单,原理也很容易讲清的系统,但管中窥豹,越是基础的东西,越能看出一家银行业务、内控的专业程度。 阅读详情

相关推荐

keil+Jlink GD32调试记录

Jlink+keil,GD32调试记录,踩坑及解决,持续更新。

SUN_BW的博客 2952

uva 10069 Distinct Subsequences

题意:给你t组字符串,要你找出第二个字符串在第一个字符串中有多少个(只要第二个字符串的任意一个字符在第一个字符串中的位置不一样就可以。) 起先用int WA了,用long long WA了,后来去看网上代码,自己写了一个大数类。。。奇葩~ #include #include #include using namespace std; #define base 1000000000 con

1482

OpenClaw 3.13 + Mac mini M4 集成 qmd 记忆存储:qmd embed 卡死 / 报错 sqlite-vec 不可用 终极解决教程

模型加速让 qmd 从国内镜像下载模型,避免网络超时;SQLite 扩展支持:修改 qmd 源码后,Bun 不再使用内置 SQLite,而是调用 Homebrew 安装的,该版本支持接口,可正常加载vec0.dylib向量扩展;OpenClaw 3.13 适配:核心逻辑与 OpenClaw 3.13 的 qmd 记忆调用逻辑完全兼容,无需额外调整;sqlite-vec 加载:qmd 自动通过sqlite-vec包获取vec0.dylib路径,调用完成向量扩展加载,实现高效向量搜索。

wuanxionglidui的博客 1304

uva10069-Distinct Subsequences

题目链接请戳这里 解题思路 设\(dp[i][j]\)为\(s1[1..i]\)作为\(s2[1..j]\)子串的个数。 这样我们可以写出状态转移方程\[dp[i][j]=\begin{cases} dp[i-1][j-1]+dp[i][j-1] & \text{$s1[i]=s2[j]$} \\ dp[i][j-1] & \text{$s1[i]!=s2[j]$}\e...

anyi4391的博客 185

逆向实战:我是如何一步步解开美团外卖App的mtgsig3.0签名(附关键代码片段)

本文详细记录了逆向分析美团外卖App的mtgsig3.0签名算法的全过程,从抓包到算法还原,包括Java层和Native层的深度分析。通过Frida、IDA Pro等工具,揭示了签名生成的多层加密流程,并提供了关键代码片段。文章还探讨了逆向工程中的反调试对抗和签名时效性问题,为安全研究人员提供了宝贵的技术参考。

weixin_42530732的博客 872

Java云上香云祭祀线上祭祀系统小程序源码

云上香云祭祀线上祭祀系统”,不仅是一种祭祀方式的创新,更是对传统文化的一次深情致敬。它让我们明白,无论时代如何变迁,对亲人的怀念与尊重永远不会改变。在这个特别的平台上,让我们共同守护那份跨越时空的爱与思念,让心灵得以安放,让生命之树常青。🌳。

2401_84413757的博客 803

uva 10069 Distinct Subsequences 【dp+大数】

题目:uva 10069 Distinct Subsequences 题意:给出一个子串 x 和母串 s 。求子串在母串中的不同序列的个数? 分析:定义dp【i】【j】:x 的前 i 个字母在 s 的前 j 个字母中的出现次数; dp [ i ] [ j ] = dp [ i ] [ j - 1 ] ; if ( x[ i ] == s ...

aodiyi6351的博客 159

open-web UI 实用指南

open-web UI 类似于chatgpt的界面,可以私有化模型本地部署,也可以用商业模型.本文只是用开源模型. 它以实现多模态AI聊天 , AI 翻译 , 语音转文本, 文本转语音, 文生图,代码助手,可谓利器。

szmars的博客 3万+

UVA 10069 Distinct Subsequences

UVA_10069     这个题目一开始没有头绪,后来看了一下别人的题解顿悟了。     我们不妨设短串是a,长串是b,用数组f[i][j]表示到b的第j位时一共包含了多少个a到第i位的子序列。 这样,动态转移方程就是f[i][j]=f[i][j-1];if(a[i]==b[j]) f[i][j]+=f[i-1][j-1];,同时我们需要初始化i=0时f[i][j]的值,即统计一下b中到第...

weixin_34403693的博客 118

VMvare 桥接模式无法联网、没有未桥接的主机网络适配器,无法将网络更改为桥接状态。

很多程序员,整天沉浸在业务代码的 CRUD 中,业务中没有大量数据做并发,缺少实战经验,对并发仅仅停留在了解,做不到精通,所以总是与大厂擦肩而过。我把私藏的这套并发体系的笔记和思维脑图分享出来,理论知识与项目实战的结合,我觉得只要你肯花时间用心学完这些,一定可以快速掌握并发编程。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!战项目源码讲义》点击传送门即可获取!**

q16974058的博客 4330

【CSP-S 提高组】考试大纲集合

【CSP-S提高组】考试大纲集合

weixin_42596089的博客 7255

uva 10069 - Distinct Subsequences

终于弄出来了,不会做的都是难题,会做的都是水题啊,水啊。 这道题的大意是:从母串里找出有多少个子串为给出的字串,分两步思考: 一 是先把状态方程写出来,由题分析我们可以这样设状态: f[i][j] = f[i][j-1]; if(b[i] == a[j]) f[i][j] += f[i-1][j-1]; 这里解释一下:这里的f[i][j]表示字串前 i 个组成的字串,在前 j 个母串中出

yuzhaoxin1008的专栏 356

ATE Pin Electronics电路学习总结

PinElectronics(PE)是ATE测试机的核心模拟前端电路,负责ATE与芯片间的信号转换与交互。主要包含四大功能模块:Driver实现逻辑信号到模拟电平的转换(VIH/VIL可编程);Receiver对DUT输出进行采样比较(VOH/VOL判定);ActiveLoad施加可编程电流负载;PPMU进行精密电压/电流测量。PE的性能直接影响功能测试和直流参数测试的精度,需定期校准维护。关键参数包括:Driver电压精度(±5mV)、Receiver比较精度(±10-50mV)、PPMU测量精度(±1-

歌颂苦难的行为是无耻的; 467

UVa Problem 10069 Distinct Subsequences (不同的子序列)

// Distinct Subsequences (不同的子序列) // PC/UVa IDs: 111102/10069, Popularity: B, Success rate: average Level: 3 // Verdict: Accepted // Submiss

寂静山林 4073

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

uva 10069 Distinct Subsequences 不同的序列

uva 10069

@fei 3647

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...

UVA-10069 - Distinct Subsequences

题目链接~~>

Muti-Agent 2564

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

UVa:10069 Distinct Subsequences

两个字符串一个str,一个word,v[i]表示word中的第i个字符在str中出现的位置 状态转移方程是 if j>=v[i]  1.若word[i]==str[j] 则> else> 需要用到大数,还用到了滚动数组。   #include #include #include #include #include #define ll long long #def

Fighting 582

uva10069 Distinct Subsequences(DP+大数)

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=11&page=show_problem&problem=1010 #include <iostream> #include <cstring> #...

akk99296的博客 160

uva 10069 Distinct Subsequences (dp + 大数)

uva 10069 Distinct Subsequences题目大意:给出两个字符串A和B,找出A中所有与B相同的子字符串。解题思路:if(A[j−1]==B[i−1])if(A[j - 1]==B[i - 1]) { dp[i][j]=dp[i][j]+dp[i−1][j−1];dp[i][j] = dp[i][j]+dp[i - 1][j - 1];}import java

总有那么一群人喜欢盯着我的博客看,估计这是他们见过最长的博客名,我必须得告诉他们博客名最长可以写多长 580

UVA - 10069 Distinct Subsequences

题意:求一个串的子串出现在母串的个数,,i表示子串的长度,j表示母串的长度,当str1[i] != str[j],dp[i][j] = dp[i][j-1],因为如果这两个字符不相等的话,那么就等于子串与长度为j-1的母串的情况,当str1[i] == str[j]。那么dp[i][j] = dp[i][j-1]+dp[i-1][j-1],相等的话,那么就等于与长度为j-1的母串的个数加上dp[i

那些年 680

Uva-10069-Distinct Subsequences

简单DP+高精度,后面将高精度优化了一下 代码: #include #include #include using namespace std; const int maxn=10010; char stra[maxn],strb[110]; int lena,lenb,dp[110][maxn][21]; void Add(int *ans,int *a,int *b) { for(

z309241990的专栏 841

UVA 10069 Distinct Subsequences(DP)

考虑两个字符串,我们用dp[i][j]表示字串第到i个和字符串到第j个的总数,由于字串必须连续 因此dp[i][j]能够有dp[i][j-1]和dp[i-1][j-1]递推而来,而不能由dp[i-1][j]递推而来。而后者的条件 是字串的第i个和字符串相等。 A subsequence of a given sequence is just the given s...

diandingyin9417的博客 159
上一篇: UVa 10285 - Longest Run on a Snowboard
下一篇: UVa 10154 - Weights and Measures
GooMaple
博客等级 码龄14年 79粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值