字符串题集

2019 蓝桥杯省赛 B 组模拟赛(一)

解析:

字符串不长,最大为10

考虑map做,将字符串转化为10位以内的26进制数

对每个字符串的所有后缀对应的26进制数贡献+1,遍历输出答案

ac:

#include<bits/stdc++.h>
#define MAXN 100005
#define ll long long
using namespace std;

map<ll,int> hashmap;
char ss[MAXN][11];

int main()
{
    int n;
    memset(ss,0,sizeof(ss));
    scanf("%d",&n);
    for(int  i=0;i<n;i++)
    {
        scanf("%s",ss[i]);
        int len=strlen(ss[i]);
        ll ans=0;
        for(int j=len-1;j>=0;j--)
        {
            ans=ans*26+ss[i][j]-'a'+1;//26位进制数
            if(hashmap.find(ans)==hashmap.end())
                hashmap[ans]=1;
            else
                hashmap[ans]++;
        }
    }
    for(int i=0;i<n;i++)
    {
        int len=strlen(ss[i]);
        ll ans=0;
        for(int j=len-1;j>=0;j--)
            ans=ans*26+ss[i][j]-'a'+1;

        printf("%d\n",hashmap[ans]);
    }
    return 0;
}

http://codeforces.com/contest/1204/problem/D2

题意:

给一个串,让你构造另一个,两个串的任意(l,r)中的最长非降序列长度相同

解析:

从后往前处理

如果pp[i]==0,呢么他必定对后面的LIS产生影响,不能变

如果pp[i]==1,如果把他变成0,如果原本的LIS中,首项为1,不会改变LIS,

如果首项不为1,呢么LIS可能会发生改变

如果想把1->0,必须保证后面所有的区间的 LIS LISLIS 长度必须和 1 的个数相等

所以,从后向前统计 0 和 1 的数量,当 1 的个数大于等于 0 的个数时,才可以修改

ac:

#include<bits/stdc++.h>
#define MAXN 1000005
using namespace std;
char pp[MAXN];

int main()
{
    scanf("%s",pp+1);
    int len=strlen(pp+1);
    int a=0,b=0;
    for(int i=len;i>=1;i--)
    {
        a+=pp[i]=='1';
        b+=pp[i]=='0';
        if(a>b)
        {
            pp[i]='0';
            a--;
        }
    }
    printf("%s\n",pp+1);
    return 0;
}

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值