首页 > 其他分享 >联想标语

联想标语

时间:2023-12-02 13:11:21浏览次数:44  
标签:son int 联想 pos ++ using 标语 now

链接 : C-联想标语_2023年第三届 “联想杯”全国高校程序设计在线邀请赛暨第五届上海理工大学程序设计竞赛(同步赛) (nowcoder.com)

题意 : n个操作, 每次给你一个u,和 t 串,u==1 时,如果给定的字符串中有“Lenovo”答案加一, u==2时要删掉以这个串为前缀的前缀,输出有多少个串还包含“Lenovo”(不是真的删掉)

前缀字符串可以想到tire和字符串哈希,笔者只放个tire

 

#include<bits/stdc++.h>

using namespace std;
using ull = unsigned long long;
using ll = long long;
using PII = pair<int,int>;
#define IOS ios::sync_with_stdio(false),cin.tie(0)
#define endl "\n"
#define pb push_back
const int N=1e6+10;
const int INF=0x3f3f3f3f;
const int mod=998244353;
struct node
{
    int son[26];
    int siz;
}s[N];
int tot;
int res;
int main()
{
    IOS;
    int n; cin >> n;
    for(int i = 1; i <= n; i ++)
    {
        int op; string t; cin >> op >> t;
        int len = t.size();
        if(op == 1)
        {
            int pos = -1;
            for(int k = len - 6; k >= 0 && pos == -1; k --)//至少存在一个,即保证最后一个联想字符串不会被删除,就倒着找pos
                if(t.substr(k, 6) == "lenovo")
                    pos = k, res ++;
            //pos = t.rfind("lenovo");//可以直接用rfind函数
            //if(pos != -1) res ++;
            int now = 0;
            for(int k = 0; k < len; k ++)//构建字典树
            {
                int c = t[k] -'a';
                if(!s[now].son[c])
                    s[now].son[c] = ++ tot;
                now = s[now].son[c];
                if(k >= pos && pos != -1)//前缀字符贡献
                    s[now].siz ++;
            }
            //cout << pos << endl;
        }
        else if(op == 2)
        {
            int num = 0, now = 0;
            for(int k = 0; k < len; k ++)//查找字典树
            {
                int c = t[k] - 'a';
                if(!s[now].son[c]) break;//有没有出现过的字符直接无效
                now = s[now].son[c];
                if(k + 1 == len) num += s[now].siz;//如果包含在前缀里,最后一定是联想字符串的某个字符,否则就不是前缀,只算尾部的贡献,防止重复
            }
            //cout << num << endl;
            cout << res - num << endl;
        }
    }
    return 0;
}

 

标签:son,int,联想,pos,++,using,标语,now
From: https://www.cnblogs.com/ZouYua/p/17871479.html

相关文章

  • 联想小新通过高级BIOS开启S3睡眠模式
    电脑型号:联想小新Air142021锐龙版(R5500U)BIOS版本:G5CN61WW(v2.07)(2022.01.28)Windows版本:Windows1122631前言为什么我们需要S3睡眠模式?Windows在最近几年大力推行ModernStandby睡眠模式,其存在一定程度上的Bug,不如S3睡眠模式稳定、耗电严重等。而且Linux系统并不支持Monder......
  • 政府采购变数大,联想还值不值得代理渠道商们“跟”?
    文|新熔财经作者|余一“事业单位更换纯国产电脑”、“联想被排除在大订单之外”等消息下,联想硬件终端产品面临的问题日益严峻。早在今年年初,联想集团(下称联想)掌门人杨元庆坦承,“智能设备市场现在处于最糟糕的时期”。在这之前,联想2022至2023财年第三财季业绩显示,收入同比下降24%,净利......
  • 联想杨(欺)天一体机降级win7
     1.关闭安全启动2.改AHCI3一般来说这种欺天电脑装32位的系统就好,一般来说不会出现卡logo卡驱动的情况,但事实上因为只支持win10,win76432安装会出现卡logo卡驱动的情况,这个时候就只能用sgi了sgi下载链接:https://pan.baidu.com/s/1M26wF8FygaLcOjXBq2PN6Q提取码:n44z跟hp的......
  • AI加持下的双十一:联想全面领跑,热启AIPC元年
    今年双十一最大的感受就是“理性低价”,即少套路+好品质+真低价。你会发现,喧嚣十五年,双十一回归商业本来的逻辑,消费者、企业和平台,都变得越来越理性。除了理性回归,还有一个很明显有变化。根据什么值得买数据显示,今年双十一,GMV(成交总额)前5大品类分别为手机通讯、大家电、电脑整机、生......
  • AI加持下的双十一:联想全面领跑,热启AIPC元年
    今年双十一最大的感受就是“理性低价”,即少套路+好品质+真低价。你会发现,喧嚣十五年,双十一回归商业本来的逻辑,消费者、企业和平台,都变得越来越理性。除了理性回归,还有一个很明显有变化。根据什么值得买数据显示,今年双十一,GMV(成交总额)前5大品类分别为手机通讯、大家电、电脑整机、......
  • “中式链主”:联想直面中小企业痛点
    中国经济正处于经济转型升级的关键时期。在向高质量发展过渡进程中,联想这样的头部科技企业,已经迈出了一大步。未来还需要数千万的中小企业快速迈过这道门槛,才能共同完成这场宏大的社会转型。而智能化,正是转型升级最重要的一个支点。但我们也都知道,让数千万中小企业实现智能化是多......
  • 联想亚运“零故障”的全栈智能密码
    作者|曾响铃文| 响铃说1912年,电子计时器首次应用,1936年,体育赛事首次在电视上播出,1972年计算机首次进入人类赛事,1996年互联网技术大范围应用,随后3G网络、3D技术、VR技术……以奥运会为代表,人类赛事的发展就是一部技术发展史诗。刚刚结束的杭州亚运会,“智能”成为关键词,这部史诗......
  • 联想个人云开启Docker并安装常用的Docker
    联想个人云开启Docker并安装常用的Docker启用Docker利用联想个人云的远程协助功能开启SSH并提升普通用户权限后,可安装(开启Docker)新版的固件docker已经安装了,不知道出于什么原因没有启动:[~]#dockerimagelsCannotconnecttotheDockerdaemonatunix:///var/run/docker.s......
  • 联想T30瘦客户机安装DoraOS体验
    硬件配置:J4125、8GRAM、128GROM联想T30台式电脑,它是一台迷你计算机,尺寸小巧玲珑,重量适中,方便携带。它的性能十分强大,能够运行各种应用程序,包括网页浏览器、视频播放器等。它还支持多种操作系统,如Windows系统和Linux系统,用户可以根据自己的需求选择不同的操作系统。此外,这台计......
  • 联想智能电子秤
    联想智能电子秤95新,没怎么使用,¥59出,可以蓝牙连接,使用app连接,联系电话:15226559821(同微信)详细配置如下:产品图片......