PTA-数据结构字符串与数组|C语言版

数据结构【串与数组】——PTA:三元组顺序表表示的稀疏矩阵转置运算(含思路) 主题:三元组顺序表表示的稀疏矩阵转置。 问题: 输入格式: 输入第1行为矩阵行数m、列数n及非零元素个数t。 按行优先顺序依次输入t行,每行3个数,分别表示非零元素的行标、列标和值。 输出格式: 输出转置后的三元组顺序表结果,每行输出非零元素的行标、列标和值,行标、列标和值之间用空格分隔,共t行。 输入样例1: 3 4 3 0 1 -5 1 0 1 2 2 2 结尾无空行 输出样例1: 0 1 1 1 0 -5 2 2 2 结尾无空行 思路: 先声明好两个三元组结构体,都有总行数、总列数、非零数总数、 阅读详情

目录

1、 字符串模式匹配(KMP)

2、 【模板】KMP字符串匹配

3、 统计子串

4、 好中缀

5、 病毒变种

6、 判断对称矩阵

 7、 三元组顺序表表示的稀疏矩阵转置运算Ⅰ

8、 三元组顺序表表示的稀疏矩阵加法

9、 三元组顺序表表示的稀疏矩阵转置Ⅱ

10、 最大子矩阵和问题


1、 字符串模式匹配(KMP)

给定一个字符串 text 和一个模式串 pattern,求 pattern 在text 中的出现次数。text 和 pattern 中的字符均为英语大写字母或小写字母。text中不同位置出现的pattern 可重叠。

输入格式:

输入共两行,分别是字符串text 和模式串pattern。

输出格式:

输出一个整数,表示 pattern 在 text 中的出现次数。

输入样例1:

zyzyzyz
zyz

输出样例1:

3

输入样例2:

AABAACAADAABAABA
AABA

输出样例2:

3
#include<stdio.h>
#include<string.h>
char pattern[1000000],text[1000000];
int n=0,m=0;
int next[1000000];
void next_pattern()
{
    int i=0,j=-1;
    next[0]=-1;
    while(i<m)
    {
        if(j==-1||pattern[i]==pattern[j])
        {
            i++;
            j++;
            next[i]=j;
        }
        else j=next[j];
    }
}
int kmp()
{
    int count=0,i=0,j=0;
    while(i<n)
    {
        while(i<n&&j<m)
        {
            if(j==-1||pattern[j]==text[i])
            {
                i++;
                j++;
            }
            else j=next[j];
        }
        if(j==m)
        {
        
            count++;
            i--;
            j=next[j-1];
        }
    }
    return count;
}
int main()
{
    while((text[n]=getchar())!='\n')n++;
    while((pattern[m]=getchar())!='\n')
        m++;
    next_pattern();
    int count=kmp();
    printf("%d",count);
    return 0;
}

2、 【模板】KMP字符串匹配

给出两个字符串text和pattern,其中pattern为text的子串,求出pattern在text中所有出现的位置。

为了减少骗分的情况,接下来还要输出子串的前缀数组next。

输入格式:

第一行为一个字符串,即为text。

第二行为一个字符串,即为pattern。

输出格式:

若干行,每行包含一个整数,表示pattern在text中出现的位置。

接下来1行,包括length(pattern)个整数,表示前缀数组next[i]的值,数据间以一个空格分隔,行尾无多余空格。

输入样例:

ABABABC
ABA

输出样例:

1
3
0 0 1

样例说明:

#include<stdio.h>
#include<string.h>
int n=0,m=0,next[1000000];
char pattern[1000000],text[1000000];
void next_pattern()
{
    int i=0,j=-1;
    next[0]=-1;
    while(i<m)
    {
        if(j==-1||pattern[i]==pattern[j])
        {
            i++;
            j++;
            next[i]=j;
        }
        else j=next[j];
    }
}
void kmp()
{
    int i=0,j=0;
    while(i<n)
    {
        if(j==-1||text[i]==pattern[j])
        {
            i++;
            j++;
        }
        else j=next[j];
        if(j==m)
            printf("%d\n",i-m+1);
    }
}
int main()
{
    int i;
    while((text[n]=getchar())!='\n')
        n++;
    while((pattern[m]=getchar())!='\n')
        m++;
    next_pattern();
    kmp();
    for(i=1;i<m;i++)
        printf("%d ",next[i]);
    printf("%d",next[m]);
}

3、 统计子串

编写算法,统计子串t在主串s中出现的次数。

输入格式:

首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在第一行中输入主串s,在第二行中输入子串t,s和t中不包含空格。

输出格式:

对于每组测试,若子串t在主串s中出现,则输出t在s中的子串位置和出现总次数,否则输出“0 0”。引号不必输出。

输入样例:

2
abbbbcdebb
bb
abcde
bb

输出样例:

2 4
0 0
#include<stdio.h>
#include<string.h>
void next_pattern(int m,char pattern[],int next[])
{
    int i=0,j=-1;
    next[0]=-1;
    while(i<m)
    {
        if(j==-1||pattern[i]==pattern[j])
        {
            i++;
            j++;
            next[i]=j;
        }
        else j=next[j];
    }
}
int kmp(int n,int m,int next[],char pattern[],char text[])
{
    int count=0,i=0,j=0,p=0;
    while(i<n)
    {
        if(pattern[j]==text[i]||j==-1)
        {
            i++;
            j++;
        }
        else j=next[j];
        if(j==m)
        {
            count++;
            if(p==0)
                printf("%d ",i-m+1);
            p++;
        }
    }
    if(count==0)
        printf("0 ");
    return count;
}
int main()
{
    int T;
    scanf("%d",&T);
    getchar();//换行符
    while(T--)
    {
        int n=0,m=0,next[1000000],count;
        char pattern[1000000],text[1000000];
        while((text[n]=getchar())!='\n')
            n++;
        while((pattern[m]=getchar())!='\n')
            m++;
        next_pattern(m,pattern,next);
        count=kmp(n,m,next,pattern,text);
        printf("%d\n",count);
    }
}

4、 好中缀

我们称一个字符串S的子串T为好中缀,如果T是去除S中满足如下条件的两个子串p和q后剩余的字符串。

(1)p是S的前缀,q是S的后缀;

(2)p=q;

(3)p和q是满足条件(1)(2)的所有子串中的第二长者。

注意一个字符串不能称为自己的前缀或后缀。好中缀至少为空串,其长度大于等于0,不能为负数。

输入格式:

输入为一个字符串S,包含不超过100000个字母。

输出格式:

输出为一个整数,表示好中缀的长度。

输入样例1:

abcabcxxxabcabc

输出样例1:

9

输入样例2:

xacbacba

输出样例2:

8

输入样例3:

aaa

输出样例3:

1

#include<stdio.h>
#include<string.h>
int next[1000000],n;
char text[1000000];
int next_text()
{
    int i=0,j=-1;
    next[0]=-1;
    while(i<n)
    {
        if(j==-1||text[i]==text[j])
        {
            i++;
            j++;
            next[i]=j;
        }
        else j=next[j];
    }
    return next[next[n]];
}
int main()
{
    scanf("%s",text);
    n=strlen(text);
    int k=next_text();
    if(2*k<n&&k>=0)
        printf("%d",n-2*k);
    else if(k==-1)//k=-1时,说明前缀和后缀都不相等,好中缀长度为字符串长度
        printf("%d",n);
    else printf("0");
}

5、 病毒变种

病毒DNA可以表示成由一些字母组成的字符串序列,且病毒的DNA序列是环状的。例如,假设病毒的DNA序列为baa,则该病毒的DNA序列有三种变种:baa,aab,aba。试编写一程序,对给定的病毒DNA序列,输出该病毒所有可能的DNA序列(假设变种不会重复)。

输入格式:

输入第一行中给出1个整数i(1≤i≤11),表示待检测的病毒DNA。 输入i行串序列,每行一个字符串,代表病毒的DNA序列,病毒的DNA序列长度不超过500。

输出格式:

依次逐行输出每个病毒DNA所有变种,各变种之间用空格分隔。

输入样例1:

1
baa

输出样例1:

baa aab aba 

输入样例2:

2
abc
baac

输出样例2:

abc bca cab 
baac aacb acba cbaa 

#include<stdio.h>
#include<string.h>
int T;
char dna[501];
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        scanf("%s",dna);
        int t=strlen(dna);
        int k=t-1,i;
        //dna病毒为环状,一共有t种序列
        //先输出输入的dna病毒序列
        for(i=0;i<t-1;i++)
            printf("%c",dna[i]);
        printf("%c ",dna[t-1]);
        //再输出剩下的变异dna病毒序列
        while(k--)
        {
            //整个字符串向左移
            int p=dna[0];
            for(i=0;i<t-1;i++)
                dna[i]=dna[i+1];
            dna[t-1]=p;
            //输出变异的dna病毒序列
            for(i=0;i<t-1;i++)
                printf("%c",dna[i]);
            printf("%c ",dna[t-1]);
        }
        printf("\n");
    }
}

6、 判断对称矩阵

将矩阵的行列互换得到的新矩阵称为转置矩阵。

把m×n矩阵
A=⎣⎡​a11​a21​⋅⋅⋅am1​​a12​a22​⋅⋅⋅am2​​⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅​a1n​a2n​⋅⋅⋅amn​​⎦⎤​
的行列互换之后得到的矩阵,称为 A 的转置矩阵,记作 AT ,

即

AT=⎣⎡​a11​a12​⋅⋅⋅a1n​​a21​a22​⋅⋅⋅a2n​​⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅​am1​am2​⋅⋅⋅amn​​⎦⎤​

由定义可知, A 为m×n 矩阵,则 AT 为 n×m 矩阵。例如,
A=[1−2​01​23​]
,
AT=⎣⎡​102​−213​⎦⎤​.
n×n矩阵称之为 n阶方阵,

如果 n 阶方阵和它的转置相等,即 AT=A ,则称矩阵 A 为对称矩阵。

输入格式:

在第一行内给出n值(1<n<100)。

从第二行以后给出n阶矩阵所有行的元素值。

输出格式:

当输入的n阶矩阵是对称矩阵,输出“Yes”,否则输出“No”。

输入样例:

3
1 0 2
-2 1 3
4 3 2

输出样例:

No

输入样例:

3
1 -2 4
-2 1 3
4 3 2

输出样例:

Yes
#include<stdio.h>
int main()
{
    int n,a[101][101],i,j,flag=1;;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            if(a[i][j]!=a[j][i])
            {
                flag=0;
                break;
            }
        }
    if(flag==0)
        printf("No");
    else printf("Yes");
}

 7、 三元组顺序表表示的稀疏矩阵转置运算Ⅰ

三元组顺序表表示的稀疏矩阵转置。

输入格式:

输入第1行为矩阵行数m、列数n及非零元素个数t。
按行优先顺序依次输入t行,每行3个数,分别表示非零元素的行标、列标和值。

输出格式:

输出转置后的三元组顺序表结果,每行输出非零元素的行标、列标和值,行标、列标和值之间用空格分隔,共t行。

输入样例1:

3 4 3
0 1 -5
1 0 1
2 2 2

输出样例1:

0 1 1
1 0 -5
2 2 2

#include<stdio.h>
 typedef struct
 {
     int i,j,num;
 }Num;
struct node
{
    int m,n,t;
    Num data[100000];
}T,S;
int main()
{
    int i,j,x=0;
    scanf("%d%d%d",&T.m,&T.n,&T.t);
    for(i=0;i<T.t;i++)
        scanf("%d%d%d",&T.data[i].i,&T.data[i].j,&T.data[i].num);
    S.m=T.n;
    S.n=T.m;
    S.t=T.t;
    for(i=0;i<T.n;i++)
    {
        for(j=0;j<T.t;j++)
        {
            if(i==T.data[j].j)
            {
                S.data[x].i=T.data[j].j;
                S.data[x].j=T.data[j].i;
                S.data[x].num=T.data[j].num;
                x++;
            }
        }
    }
    for(i=0;i<x;i++)
        printf("%d %d %d\n",S.data[i].i,S.data[i].j,S.data[i].num);
}

8、 三元组顺序表表示的稀疏矩阵加法

三元组顺序表表示的稀疏矩阵加法。

输入格式:

输入第1行为两个同型矩阵的行数m、列数n,矩阵A的非零元素个数t1,矩阵B的非零元素个数t2。
按行优先顺序依次输入矩阵A三元组数据,共t1行,每行3个数,分别表示非零元素的行标、列标和值。
按行优先顺序依次输入矩阵B三元组数据,共t2行,每行3个数,分别表示非零元素的行标、列标和值。

输出格式:

输出第1行为相加后矩阵行数m、列数n及非零元素个数t。
输出t行相加后的三元组顺序表结果,每行输出非零元素的行标、列标和值,每行数据之间用空格分隔。

输入样例1:

4 4 3 4
0 1 -5
1 3 1
2 2 1
0 1 3
1 3 -1
3 0 5
3 3 7

输出样例1:

4 4 4
0 1 -2
2 2 1
3 0 5
3 3 7

#include<stdio.h> 
typedef struct
{
    int i,j,num;//存储每个元素的行标、列标、值
}Num;
struct node
{
    int n,m,t;//矩阵的行数、列数、非零元素个数
    Num data[100000];
}T1,T2,S;//T1和T2为输入的两个稀疏矩阵
int main()
{
    scanf("%d%d%d%d",&T1.m,&T1.n,&T1.t,&T2.t);
    int i=0,j;
    for(i=0;i<T1.t;i++)
    {
        scanf("%d%d%d",&T1.data[i].i,&T1.data[i].j,&T1.data[i].num);
    }
    for(i=0;i<T2.t;i++)
    {
        scanf("%d%d%d",&T2.data[i].i,&T2.data[i].j,&T2.data[i].num);
    }
    int x=0;
    i=0,j=0;
    while(i<T1.t&&j<T2.t)
    {
        if(T1.data[i].i==T2.data[j].i&&T1.data[i].j==T2.data[j].j)//当两个矩阵在同一位置都存在值时
        {
            S.data[x].i=T1.data[i].i;
            S.data[x].j=T1.data[i].j;
            S.data[x].num=T1.data[i].num+T2.data[j].num;
            x++;
            if(S.data[x-1].num==0)//如果在该点的和为0,则要去掉该点
                x--;
            i++;
            j++;
        }
        //两稀疏矩阵为行优先输入
        //若T1和T2在同一行且T2的列标小,或者不在同一行且T2的行标小,则T2值直接赋值给S
        else if((T1.data[i].i==T2.data[j].i&&T1.data[i].j>T2.data[j].j)||T1.data[i].i>T2.data[j].i)
            S.data[x++]=T2.data[j++];
        //若T1和T2在同一行且T1的列标小,或者不在同一行且T1的行标小,则T1值直接赋值给S
        else if((T1.data[i].i==T2.data[j].i&&T1.data[i].j<T2.data[j].j)||T1.data[i].i<T2.data[j].i)
            S.data[x++]=T1.data[i++];
    }
    while(i<T1.t)//只剩下T1矩阵时
    {
        S.data[x++]=T1.data[i++];
    }
    while(j<T2.t)//只剩下T1=2矩阵时
    {
        S.data[x++]=T2.data[j++];
    }
    printf("%d %d %d\n",T1.m,T1.n,x);
    for(i=0;i<x;i++)
        printf("%d %d %d\n",S.data[i].i,S.data[i].j,S.data[i].num);
}

9、 三元组顺序表表示的稀疏矩阵转置Ⅱ

三元组顺序表表示的稀疏矩阵转置Ⅱ。设a和b为三元组顺序表变量,分别表示矩阵M和T。要求按照a中三元组的次序进行转置,并将转置后的三元组置入b中恰当的位置。

输入格式:

输入第1行为矩阵行数m、列数n及非零元素个数t。
按行优先顺序依次输入t行,每行3个数,分别表示非零元素的行标、列标和值。

输出格式:

按置入b中的顺序输出置入的位置下标,转置后的三元组行标、列标和值,数据之间用空格分隔,共t行。

输入样例1:

3 4 3
0 1 -5
1 0 1
2 2 2

输出样例1:

1 1 0 -5
0 0 1 1
2 2 2 2

#include<stdio.h>
 typedef struct
 {
     int i,j,num,y;
 }Num;
struct node
{
    int m,n,t;
    Num data[100000];
}T,S;
int main()
{
    int i,j,x=0,y=0;
    scanf("%d%d%d",&T.m,&T.n,&T.t);
    for(i=0;i<T.t;i++)
        scanf("%d%d%d",&T.data[i].i,&T.data[i].j,&T.data[i].num);
    S.m=T.n;
    S.n=T.m;
    S.t=T.t;
    //进行稀疏矩阵的逆置
    for(i=0;i<T.n;i++)
    {
        for(j=0;j<T.t;j++)
        {
            if(i==T.data[j].j)
            {
                S.data[x].y=x;
                S.data[x].i=T.data[j].j;
                S.data[x].j=T.data[j].i;
                S.data[x].num=T.data[j].num;
                x++;
            }
        }
    }
    for(i=0;i<T.t;i++)
    {
        int k=T.data[i].num;//S按列优先顺序排序,T按行优先顺序排序
        //题目输出要求按行优先顺序排序
        for(j=0;j<T.t;j++)
        {
            if(S.data[j].num==k)
                printf("%d %d %d %d\n",S.data[j].y,S.data[j].i,S.data[j].j,S.data[j].num);
        }
    }
}

10、 最大子矩阵和问题

最大子矩阵和问题。给定m行n列的整数矩阵A,求矩阵A的一个子矩阵,使其元素之和最大。

输入格式:

第一行输入矩阵行数m和列数n(1≤m≤100,1≤n≤100),再依次输入m×n个整数。

输出格式:

输出第一行为最大子矩阵各元素之和,第二行为子矩阵在整个矩阵中行序号范围与列序号范围。

输入样例1:

5 6
60 3 -65 -92 32 -70
-41 14 -38 54 2 29
69 88 54 -77 -46 -49
97 -32 44 29 60 64
49 -48 -96 59 -52 25

输出样例1:

输出第一行321表示子矩阵各元素之和,输出第二行2 4 1 6表示子矩阵的行序号从2到4,列序号从1到6

321
2 4 1 6
#include<stdio.h>
#define N 1001//若范围小的话会出现段错误
int sum[N][N];
int main()
{
    int n,m,i,j,num;
    scanf("%d%d",&m,&n);
    for(i=1;i<=m;i++)
        sum[i][0]=0;
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
        {
            scanf("%d",&num);
            sum[i][j]=sum[i][j-1]+num;
        }
    int t=-1,k=0;
    int left,right,x1=0,x2=0,y1=0,y2=0;
    for(left=1;left<=n;left++)//遍历求和的起始列
        for(right=left;right<=n;right++)//遍历求和的终止列
        {
            k=0;
            for(i=1;i<=m;i++)//行数
            {
                if(k<0)
                    k=0;
                k=k+sum[i][right]-sum[i][left-1];
                if(k>t)
                {
                    t=k;
                    y1=left;
                    y2=right;
                    x2=i;
                }
                
            }
        }
    for(i=1;i<=x2;i++)//遍历求和的起始行
    {
        k=0;
        for(j=i;j<=x2;j++)//遍历求和的终止行
            k=k+sum[j][y2]-sum[j][y1-1];
        if(k==t)
        {
            x1=i;
            break;
        }
    }
    printf("%d\n%d %d %d %d",t,x1,x2,y1,y2);
}
数据结构PTA title: 曲师大计院20级的PTA categories: - 数据结构 tags: - PTA toc: true 第一章 绪论 判断题 1-1 数据元素是数据的最小单位。F(数据项) 1-2 数据的逻辑结构是指数据的各数据项之间的逻辑关系。F(数据元素之间) 1-3 数据结构概念包括数据之间的逻辑结构、数据在计算机中的存储方式和数据的运算三个方面。T 1-4 数据结构的抽象操作的定义与具体实现有关。F 1-5 算法和程序没有区别,在数据结构中二者是通用的。F 1. 阅读详情

相关推荐

PTA 7-1 字符串模式匹配(KMP)

给定一个字符串 text 和一个模式串 pattern,求 pattern 在text 中的出现次数。text 和 pattern 中的字符均为英语大写字母或小写字母。text中不同位置出现的pattern 可重叠。

m0_63485942的博客 6917

病毒变种--C语言练习

C语言PTA练习题--病毒的变种

wk161099的博客 5442

PTA_C语言编程实验:有序数组插入与符号匹配

在当今的IT行业中,PTA(Programming Teaching Assistant)平台被广泛应用于编程教育和技能提升。PTA平台作为一种辅助教学和自我练习的工具,它通过在线编程题库和自动评测系统,为程序员和学生提供了实时反馈和实践机会,有助于提升解题和编程能力。PTA平台的核心优势在于能够提供大量的编程练习题,并即时给出结果反馈。这种及时性不仅缩短了学习周期,还提高了学习效率。此外,PTA通常还支持多语言编程,如C/C++、Java、Python等,满足不同开发者的需求。

weixin_31163455的博客 1068

病毒变异pta

病毒DNA可以表示成由一些字母组成的字符串序列,且病毒的DNA序列是环状的。例如,假设病毒的DNA序列为baa,则该病毒的DNA序列有三种变种:baa,aab,aba。试编写一程序,对给定的病毒DNA序列,输出该病毒所有可能的DNA序列(假设变种不会重复)。 输入格式: 输入第一行中给出1个整数i(1≤i≤11),表示待检测的病毒DNA。 输入i行串序列,每行一个字符串,代表病毒的DNA序列,病毒的DNA序列长度不超过500。 输出格式: 依次逐行输出每个病毒DNA所有变种,各变种之间用空格分隔。

candpythonandyou的博客 1547

算法笔记(胡凡)学习笔记@Kaysen

本文旨在记录算法笔记学习过程中的收获和一些知识点,部分易错知识点只针对个人而言,CCF-CSP考试冲鸭!!! Chapter 2 C/C++快速入门(易错知识点) 2.1 基本数据类型 变量定义注意区分大小写。 一、整型 整型int,32bit(4Byte),取值范围是,绝对值在范围内的整数都可以定义成int。 长整型long long,64bit(8Byte),取值范围是,绝对值超过的整数就需要用long long存储。 ...

Kaysen_Zhao的博客 2898

【COMSOL超材料和超表面仿真设计】

超材料和超表面的设计通常需要自定义材料属性。在COMSOL中,可以通过定义介电常数和磁导率的张量来模拟超材料的特性。对于超表面,通常需要定义表面阻抗或等效电路模型。

weixin_51101456的博客 1663

【PTA数据结构 | C语言版】字符串匹配算法

请编写程序,得到模式串 t 在主串 s 中首次出现的位置。本题旨在测试各种不同的匹配算法在各种数据情况下的表现。各组测试数据特点如下:数据0:小规模字符串,测试基本正确性;数据1:随机数据,String 长度为 10^5,Pattern 长度为 10;数据2:随机数据,String 长度为 10^5,Pattern 长度为 10^2;数据3:随机数据,String 长度为 10^5,Pattern 长度为 10^3;

等风来 686

Autodesk激活无无网络选项?许可类型与脱机激活排查修复指南

软件许可激活是保障正版授权正常使用的核心环节,常见的授权模式包括单机版许可和网络版许可,两者在认证机制和应用场景上有所区别。单机版离线授权依托 FlexNet Licensing Service 等底层服务组件,在断网或内网环境下为用户提供可靠的技术支持与授权验证路径。然而在实际部署中,激活窗口并不总是显示“无网络激活方式”入口,这可能与许可类型选择、网络环境干扰、组件安装残留或系统时间偏差有关。理解入口的动态呈现逻辑与排查顺序,有助于在 AutoCAD、Revit 等 Autodesk 产品中高效解决脱机

weixin_28709649的博客 355

PTA 浙大版《C语言程序设计实验与习题指导(第3版)》题目集(参考代码)

C语言PTA练习题 浙大版《C语言程序设计实验与习题指导(第3版)》题目集 寒假在家,想着吧PTA上的C语言练习题写写,博主初学C语言,其中有些代码写的可能有些令人费解甚至是让人笑话,但是这也是一个练习的过程。 注:其中有些题的代码参考了其他人。 题目号 题目名 实验1-1 Hello World! 实验1-2 Welcome to You! 实验1-3 Programming in C is fun! 实验1-4 输出三角形 实验1-5 输出菱形图案 实验1-6 输出带

Re:从零开始的代码生活的博客 7万+

AI数字人:口播与唇形同步的福音,支持本地部署/批量生成/口齿清晰

你也可以直接输入语音,虚拟化身会根据语音的节奏和语调,同步做出相应的动作和表情,表现更加生动。不过这依然是个值得关注的工具。借助先进的 AI 算法,Heygem 高精度捕捉五官、轮廓等特征,构建逼真的虚拟模型。同时,它还能克隆语音,捕捉人声的细微特征,支持多种语音参数设置,打造高度相似的音色效果。打开设置,调整镜像存储位置,镜像文件比较大70~80G,选择合适的盘,设置完成后点击“Apply & Restart”。数字人视频画面与声音高度同步,口型匹配自然流畅,智能优化音视频效果,带来极佳的视听体验。

m0_72580657的博客 5862

基于机器学习的网络安全态势感知模型研究与实现

基于机器学习的网络安全态势感知模型研究与实现 1. 背景介绍 1.1 网络安全态势感知的重要性 在当今互联网时代,网络安全已经成为一个至关重要的话题。随着网络攻击手段的不断升级和演变,传统的被动防御方式已经难以满足日益

AI大模型应用之禅 1582

PTA 乙级难点(全部)

全部代码用的都是 C++

CourserLi的博客 5266

华为MetaERP的交易计税模块(即“税务引擎”)在设计上确实受到Oracle E-Business Tax(EBTax)等国际先进税务架构理念的影响,但结合了华为自身全球化运营、多准则合规、高并发处

华为MetaERP税务引擎在借鉴Oracle EBTax三层架构基础上,创新升级为五层智能税务架构,实现从"税码驱动"到"场景+规则+AI驱动"的转变。该模块采用云原生微服务架构,支持全球190+国家税务规则动态加载,具备实时计税、多准则并行处理、AI风险预警等核心能力,深度适配金税工程等国内合规要求。通过税务数字孪生、RPA机器人等创新,形成自主可控的智能税务中枢,为跨国企业提供全栈国产化税务解决方案,重新定义ERP税务管理范式。

金牌架构师 114

sdut-数据结构与算法pta-字符串和数组

给定一个字符串 text 和一个模式串 pattern,求 pattern 在text 中的出现次数。text 和 pattern 中的字符均为英语大写字母或小写字母。text中不同位置出现的pattern 可重叠。输入共两行,分别是字符串text 和模式串pattern。输出一个整数,表示 pattern 在 text 中的出现次数。33。

2302_81657110的博客 728

Hugging Face 最新开源 SmolVLA 小模型入门教程(一)

今天,我们介绍SmolVLA,这是一个紧凑型(450M)、开源的视觉-语言-动作模型,专为机器人设计,可在消费级硬件上运行。 仅在带有lerobot标签的开源社区共享数据集上进行预训练。 SmolVLA-450M在模拟环境(LIBERO、Meta-World)和真实世界任务(SO100、SO101)中,表现优于规模更大的VLA模型及强基线模型如ACT。 支持异步推理,响应速度提升30%,任务吞吐量提升2倍。

2506_90492529的博客 4078

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【PTA数据结构 | C语言版】字符串插入操作

请编写程序,将给定字符串 t 插入到另一个给定字符串 s 的第 pos 个字符的位置。输入格式: 输入先后给出主串 s 和待插入的字符串 t,每个非空字符串占一行,不超过 1000 个字符,以回车结束(回车不算在字符串内)。第三行给出插入的位序 pos(注意位序从 1 开始,保证不超过 s 的长度加 1)。输出格式:在一行中输出将 t 插入 s 的第 pos 个字符的位置后的结果字符串。 如果插入后的字符串长度超过了 1000 个字符,则不要插入,而是在一行中输出 错误:插入将导致字符串长度超限。

等风来 712

ssm框架搭建

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

【PTA数据结构 | C语言版】对二进制字符串解码

请编写程序,根据给定的字符和权重值序列,构建哈夫曼树,并将输入的二进制字符串解码输出。注意:因为哈夫曼编码是不唯一的,所以如果不严格按照指定方法生成哈夫曼树,则有可能无法正确解码。本题规定的哈夫曼树构建限制为:哈夫曼森林的所有根结点存为线性表,新的树根必须插入表头;每次取出权值最小的根结点时,若有并列,取最靠近表头的那个;对于每轮取出的两个根结点,第一个取出的为左子树,第二个取出的为右子树;二进制字符 0 对应树中的左分支;1 对应右分支。输入格式:输入首先给出一个正整数 n

等风来 677

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【PTA数据结构 | C语言版】拓扑排序

请编写程序,实现对有向无权图中的顶点进行拓扑排序的算法。注意:如果拓扑序不唯一,输出任何一个序列都可以,由特殊裁判程序判定正确性。输入格式:输入首先在第一行给出两个正整数,依次为当前要创建的图的顶点数 n(≤100)和边数 m。随后一行顺序给出 n 个顶点对应的字符串,由不超过 3 个英文字母或数字组成。接下来 m 行,每行给出一条有向边的起点编号、终点编号。顶点编号从 0 开始。同行数字和字符串均以一个空格分隔。

等风来 713

PTA数据结构与算法-第四章——字符串

文章目录第一章——褚论第二章——线性表第三章——栈与队列第四章——字符串判断题单选题 第一章——褚论 第二章——线性表 第三章——栈与队列 第四章——字符串 判断题 1-10 如果strcmp(s1,s2)返回的结果为0,表示字符串s1和s2不相同。 F 当s1<s2时,返回值<0; 当s1=s2时,返回值=0; 当s1>s2时,返回值>0; 1-4 假设模式串是abababaab,则KMP模式匹配算法中的next[j] = 0 1 1 2 3 4 5 6 2。 next

Eumenides_Suki的博客 6831

SDUT PTA参考

PTA数组应用从键盘输入n(不超过100)个数存入一维数组a中,再将其中的数按相反的顺序存入数组b中并输出。找数:从键盘输入n个整数存放在数组中,输出能被3整除的数;若不存在,则输出“Not Exist.”数组元素输出数组元素求和找数评分数插入数组元素删除数组元素矩阵转置二维数组找最值指针应用插入新数一维数组找最大记录偶数个数逆序输出数组元素回文数二维数组每行最大值字符串处理字符数组排序判断是否为...

xwwwj的博客 8833

【PTA数据结构 | C语言版】字符串匹配算法比较

给定两个由英文字母组成的字符串 string 和 pattern,要求找到 pattern 在 string 中第一次出现的位置,并将此位置后的 string 的子串输出。如果找不到,则输出“Not Found”。本题旨在测试各种不同的匹配算法在各种数据情况下的表现。

等风来 683

【PTA数据结构 | C语言版】剪切粘贴

使用计算机进行文本编辑时常见的功能是剪切功能(快捷键:Ctrl + X)。请实现一个简单的具有剪切和粘贴功能的文本编辑工具。工具需要完成一系列剪切后粘贴的操作,每次操作分为两步:剪切:给定需操作的起始位置和结束位置,将当前字符串中起始位置到结束位置部分的字符串放入剪贴板中,并删除当前字符串对应位置的内容。例如,当前字符串为 abcdefg,起始位置为 3,结束位置为 5,则剪贴操作后, 剪贴板内容为 cde,操作后字符串变为 abfg。字符串位置从 1 开始编号。

等风来 561

PTA-21级数据结构与算法实验4——字符串和数组

21级数据结构与算法实验4——字符串和数组(参考答案)C语言实现

m0_63485942的博客 4014

PTA浙大版《C语言程序设计(第3版)》题目集(参考代码)

本题目集是博主初学C语言时写的,由于本题目集和另一套题目集:浙大版《C语言程序设计实验与习题指导(第3版)》题目集的很多题目相似,所以本题目集很多题的超链接直接指向了另一套题目集的题目。 编程题: 题目号 题目名 练习2-1 Programming in C is fun! 练习2-3 输出倒三角图案 练习2-4 温度转换 练习2-6 计算物体自由下落的距离 练习2-8 计算摄氏温度 练习2-9 整数四则运算 练习2-10 计算分段函数[1] 练习2-11 计算分

Re:从零开始的代码生活的博客 7万+

PTA 编程题(C语言)-- 字符串中字符的最大下标查找技巧

本文针对PTA平台上的C语言编程题,深入解析了查找字符串中指定字符最大下标的技巧。文章详细拆解了字符流实时处理和字符串数组整行处理两种核心方法,并重点指出了换行符处理、下标初始化等常见陷阱,帮助读者掌握稳健的解题思路与代码实现。

dell8的博客 206
上一篇: C语言|进制转换
下一篇: 树和二叉树|数据结构-C语言
var事如意
博客等级 码龄5年 18粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值