ARC094F Normalization

深度学习基础知识(三)--- Normalization 规范化 操作 本文部分过程和图片来源于以下参考资料 参考资料: 知乎专栏 - 张俊林 - 深度学习中的Normalization模型 - https://zhuanlan.zhihu.com/p/43200897 知乎专栏 - Juliuszh - 详解深度学习中的Normalization,BN/LN/WN - https://zhuanlan.zhihu.com/p/33173246 优快云 ... 阅读详情

原题链接:https://beta.atcoder.jp/contests/arc094/tasks/arc094_d

Normalization

Problem Statement

You are given a string S S consisting of ‘a’,’b’ and ‘c’. Find the number of strings that can be possibly obtained by repeatedly performing the following operation zero or more times, modulo 998244353:

Choose an integer i i such that 1≤i≤|S|−1 and the i i -th and (i+1)-th characters in S S are different. Replace each of the i-th and (i+1) ( i + 1 ) -th characters in S S with the character that differs from both of them (among a, b and c).

Constraints

2≤|S|≤2×105
S S consists of ‘a’, ‘b’ and ‘c’.

Input

Input is given from Standard Input in the following format:

S

Output

Print the number of strings that can be possibly obtained by repeatedly performing the operation, modulo 998244353 998244353 .

Sample Input 1

abc

Sample Output 1

3
abc, aaa and ccc can be obtained.

Sample Input 2

abbac

Sample Output 2

65

Sample Input 3

babacabac

Sample Output 3

6310

Sample Input 4

ababacbcacbacacbcbbcbbacbaccacbacbacba

Sample Output 4

148010497

题目大意

给定一个由 a,b,c a , b , c 组成的字符串 S(|S|<=2×105) S ( | S | <= 2 × 10 5 ) ,每次可以选择两个相邻的不同字符,把它们修改成与两者都不同的字符,求能得到的不同的字符串的个数。

题解

%%%watson,watson is so strong!!! % % % w a t s o n , w a t s o n   i s   s o   s t r o n g ! ! !

感觉这道题真神(虽然watson说很水),如果把 a,b,c a , b , c 表示为 0,1,2 0 , 1 , 2 ,可以发现上述替换操作在 mod 3 m o d   3 意义下是不改变整个序列的和的。

然后开始 dp d p , dp[i][j][k][p] d p [ i ] [ j ] [ k ] [ p ] 表示在第 i i 个位置,前缀和为j(mod 3),当前字符为 k k ,有/无连续的相同字符时的字符个数,枚举一下i,i+1的字符分别是什么就可以转移了。

最后的答案为 dp[n][tot][0][1]+dp[n][tot][1][1]+dp[n][tot][2][1]+[原串没有连续的相同字母] d p [ n ] [ t o t ] [ 0 ] [ 1 ] + d p [ n ] [ t o t ] [ 1 ] [ 1 ] + d p [ n ] [ t o t ] [ 2 ] [ 1 ] + [ 原 串 没 有 连 续 的 相 同 字 母 ] 。

代码
#include<bits/stdc++.h>
using namespace std;
const int M=2e5+5,mod=998244353;
char ch[M];
int n,sum,i,j,k,a,b,dp[M][3][3][2];
bool flag=1;
void spj()
{
    for(i=2;i<=n;++i)if(ch[i]!=ch[i-1]){flag=0;break;}
    if(flag)puts("1"),exit(0);
    if(n<=3)(n==2?puts("2"):((ch[1]!=ch[2]&&ch[1]!=ch[3]&&ch[2]!=ch[3])?puts("3"):((ch[1]==ch[3])?puts("7"):puts("6")))),exit(0);
}
bool check(){for(int i=1;i<=n;++i)if(ch[i]==ch[i-1])return 0;return 1;}
void in(){scanf("%s",ch+1);}
void ac()
{
    n=strlen(ch+1);spj();
    for(i=1;i<=n;++i)sum=(sum+ch[i]-'a')%3;
    for(i=0;i<=2;++i)dp[1][i][i][0]=1;
    for(i=1;i<=n-1;++i)for(j=0;j<=2;++j)for(k=0;k<=2;++k)for(a=0;a<=1;++a)for(b=0;b<=2;++b)
    (dp[i+1][(j+b)%3][b][a|(k==b)]+=dp[i][j][k][a])%=mod;
    printf("%d",(0ll+dp[n][sum][0][1]+dp[n][sum][1][1]+dp[n][sum][2][1]+check())%mod);
}
int main(){in();ac();}
模糊控制——基本原理(附MATLAB程序) 模糊化:使用隶属函数将实际输入转换为模糊集合的隶属度值。规则库:利用“如果-那么”规则将模糊输入映射到模糊输出。推理机制:通过规则的模糊化和模糊集合的合成,生成模糊输出。去模糊化:将模糊输出转换为具体的控制信号,常用的方法包括质心法和最大隶属度法。这些步骤综合起来,实现了模糊控制系统对复杂和不确定系统的有效控制。模糊控制系统通过结合模糊逻辑和规则库来处理复杂系统中的不确定性和模糊性。它的核心在于模糊集合和隶属函数,通过推理机处理模糊规则,并最终通过去模糊化生成具体的控制信号。 阅读详情

相关推荐

深入剖析STM32F103 I2C总线死锁问题及高效应对策略

本文深入剖析了STM32F103硬件I2C总线在轮询模式下发生死锁的根本原因,即硬件状态机的预取机制与软件响应速度不匹配。文章提供了高效的解决方案,包括在轮询模式下提前发送NACK/STOP信号、降低总线速度,以及治本的中断与DMA应用策略,帮助开发者根据项目需求选择最合适的方案,彻底解决这一经典硬件缺陷问题。

weixin_29184371的博客 206

【Pytorch】F.normalize学习笔记

pytorch中normalize的维度(dim)分析

qq_41356707的博客 7284

千兆以太网的接收和crc校验

解析该以太网帧,包括统计该以太网帧长度+过滤功能(端口号对不对,是否为udp协议)+CRC校验,将解析结果存入状态fifo,一旦状态fifo开始有数,就开始开启读过程,读过程开始时,首先读状态fifo,根据从状态fifo里面读出的以太网帧长度,来读数据fifo(这样能够防止跨帧读),然后在根据状态fifo里面读出的crc校验正确标志和过滤标志,来确定是否将数据fifo读出来的数据送给下一个模块。改掉之后在抓一下,可以看到抓出来的数据完全正确,从最后开始看,除去4个crc校验的尾巴,数据是到255结束的。

weixin_45284871的博客 2738

深入解析博世GTM死区时间模块:硬件互锁、相移保护与信号组合实战

在电机驱动与数字电源系统中,PWM(脉宽调制)信号的精确时序控制是核心基础。其核心原理在于通过精确控制功率开关器件的导通与关断时序,来调节电压与电流。死区时间(Dead Time)技术在此扮演了关键角色,它通过在互补的PWM信号之间插入一段延迟,从根本上防止了桥臂直通短路这一毁灭性故障,保障了系统的可靠性与安全性。传统的软件延时方法存在精度低、占用CPU资源的问题,而现代微控制器集成的硬件死区时间模块(如博世GTM中的DTM)则提供了高精度、低抖动的解决方案。这类模块的技术价值在于将关键的保护逻辑硬件化,不

a2850363633的博客 440

一种基于OpenPose和DNN的跌倒检测软件系统(中文&英文)

学习并实现一种跌倒检测模型,此模型基于OpenPose实现逐帧人体姿态检测,使用DNN识别人体动作。检测方式有在线与离线两种,本文主要测试了离线模式,测试效果较好。

Tongzhou_Li的博客 2645

避坑指南:WSL2网络模式修改导致无法上网的解决方案(附备份还原技巧)

本文深入解析WSL2默认网络隔离机制,并提供三种安全的端口互通方案,重点推荐通过配置Windows防火墙规则实现稳定访问。同时,针对网络配置修改可能引发的无法上网问题,给出了从重置配置到系统级备份的完整恢复指南,确保开发环境安全可靠。

jj890的博客 781

F.normalize学习计算

F.normalize学习计算

Lily的博客 2987

2026年软考高级网络规划设计师备考指南

在国家网络安全法律法规和政策的指导下,能够依据网络技术发展的趋势进行计算机网络领域的需求分析、规划设计、部署实施、评测、运行维护等工作。 在需求分析阶段,写出网络系统需求规格说明书;在规划设计阶段,完成逻辑结构设计、物理结构设计,选用适宜的网络设备,按照标准规范编写系统设计文档及项目开发计划;在部署实施阶段,组织项目施工,对项目实施过程进行质量控制、进度控制、成本管理,能具体指导项目实施;在评测运维阶段,能根据相关标准和规范对网络进行评估测试,能制定运行维护、故障分析与处理机制,确保网络提供正常服务;

鹿鸣天涯 1万+

AtCoder ARC094F Normalization

题目链接 题目大意:有一个由abc组成的串,可以选择相邻的两个不同的字符替换成第三种字符,问最多能形成多少种不同的串。 思路:求方案数,大概是DP。一开始苦思冥想了一大堆状态,但是没有一个和字符集{a,b,c}有联系的。这样就没法保证复杂度。后来发现,我们的abc可以对应到模数的012上,所以每一个变换在模3下的和是不变的,所以我们总结出规律:s中有无相邻相同的字符会对答案有影响,故设计状态如...

szh_0808的博客 538

15、分布式查询处理详解

本博文深入探讨了分布式环境下的查询处理与优化技术。从查询处理的基本概念出发,分析了在分布式系统中执行查询所面临的额外挑战,并通过实例比较了不同的执行策略。文章详细介绍了查询优化的组成要素,包括搜索空间、成本模型和搜索策略,同时涵盖了查询处理的多个层次以及数据本地化的核心方法。此外,还讨论了连接排序优化、分布式成本模型以及多种查询优化方法,如静态优化、动态优化和混合优化。最后,提出了自适应查询处理的概念,旨在提高分布式查询的灵活性和效率。通过综合应用这些技术,可以有效提升分布式数据库的查询性能,降低通信和计算

gan8painter的博客 73

(2-4-01)目标检测与分割:地面提取(1)

请看下面的例子,生成了虚拟 LiDAR 点云数据,然后使用 DBSCAN 聚类方法进行 LiDAR 地面提取,并根据聚类结果可视化地面和非地面点云。首先生成虚拟 LiDAR 点云数据,然后基于设定的高程阈值进行地面提取,并通过 Open3D 可视化地面和非地面点云。地面提取是LiDAR(激光雷达)数据处理中的一个重要步骤,其目标是从点云数据中分离出地面点,即地面表面上的点。LiDAR点云数据通常包含地面点和非地面点(例如建筑物、树木等),地面提取的目标是从这些点中准确识别和提取地面点。

码农三叔 700

【AtCoder】ARC094(C-F)题解

C - Same Integers 题解 要么三个都达到最大的数,要么三个都到达最大的数+1,判断是前一种情况的方法是不断垫高前两大的,看之后最小的那个和最大的那个差值是不是2的倍数 否则就是第二种情况 代码 #include <iostream> #include <cstdio> #include <cstring> #include <al...

weixin_30872867的博客 371

链路状态路由协议 OSPF (一)

本章将会学习链路状态路由协议OSPF,理解OSPF的基本概念,工作原理,掌握OSPF配置基本命令。本章重点,OSPF的基本概念,OSPF配置。

yj11290301的博客 3475

pytorch 用F.normalization的逆归一化如何操作

逆归一化的时候再把这个数乘回去就行了。

qq_41616600的博客 408

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

AT4108 [ARC094D] Normalization

且操作得到的数字串必然有相邻相等的数字(注意特判开始是否有相邻相等的字符)。满足充分,此时首字母相等显然也充分,证毕。一定能够经过若干次操作将其首字母换成。表示初始字符串是否有相邻相等的字符)。,则所有操作得到的数字串的和必然模。含有相邻相等的数字的数字串个数。表示初始字符串的数位和模。,需充分满足上面两个限制。同余初始串的数字串个数。位,最后一位视情况而定。的满足条件的数字串个数。转移方程枚举上一位取值,根据暴力输出情况发现当。时上述条件为充分条件。对于前面的,答案显然为。考虑容斥,即数位和模。...

orz 209

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Pytorch】F.normalize计算理解

1、动机 最近多次看到该方法出现,于是准备了解一下,搜了后发现原来是所谓的L2 norm计算 2、简介 函数定义 torch.nn.functional.normalize(input,p=2.0,dim=1,eps=1e-12,out=None) 功能:将某一个维度除以那个维度对应的范数(默认是2范数)。 3、举例 最后dim=0,是1/根号下1平方+1平方,2/根号下2平方+2平方,3/根号下3平方+3平方,所以都是0.7071 4、参考 官方学习手册 tor...

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数据的标准化(normalization)

在处理数据的时候,经常会涉及到标准化问题。 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。 一、数据标准化分类 1. 极差的标准化 一批样本中,每个特征的最大值与最小值之差,称为极差。 已知两个样本,每个样本有n个特征...

备忘录式博客 9049

Pytorch归一化方法讲解与实战:BatchNormalization、LayerNormalization、nn.BatchNorm1d和LayerNorm()和F.normalize()

文章目录LayerNormalizationBatchNormalization 这些Normalization的作用都是让数据保持一个比较稳定的分布,从而加速收敛。Batch Normalization 的处理对象是对一批样本, Layer Normalization 的处理对象是单个样本。不过,他们到底指的是什么呢?有的时候,讲解是多余的,实战一下,你就懂了: talk is cheap,show me the code import torch import torch.nn as nn Laye

qq_43391414的博客 1万+

ArcGIS10.0操作之2——Normalization(归一化)

Normalization就是将两个属性相除后的商值控制显示符号的方法,称为归一化。

GIS on the road happy_h 2万+

【笔记】F.normalize(torch.nn.functional) 和 torch.norm:前者在后者求向量L2范数的基础上,增加了标准化

在维度操作方面,两者的操作一致。

nyist_yangguang的博客 1434

Atcoder arc093F 容斥+DP

Decription 有2^

xgc_woker的博客 454

Atcoder做题记录

ARC101E - Ribbons on Tree 容斥树形dpdpdp,设f[x][k]f[x][k]f[x][k]为以xxx为根的子树,上面大小为kkk的连通块没有匹配。 首先一个大小为nnn的子树的自由完全匹配方案我们先预处理出来。 转移的话对于一个xxx考虑那些边是一定不选的的,不选的边的边数为TTT的话,容斥系数为−1∣T∣-1^{|T|}−1∣T∣ 对于一个xxx的子节点yyy, 那么...

xgc_woker的博客 665

arc094_c E - Tozan and Gezan

题意 两个问玩游戏 一开始两个人各有一个序列,且序列元素总和一样 过程如下: 1.如果两个序列相同,游戏结束 2.A在他的序列里面选择一个正整数,然后让它减1 3.B在他的序列里面选择一个正整数,然后让它减1 4.步数++ A想让步数尽量多,B想让步数尽量少 问步数 题解 这种题目,就是想到策略就能过 然后我一般看完都不怎么敢想QAQ 还是多做一点这种题吧 A的策略...

OZY的博客 432

AtCoder Regular Contest 094 (ARC094) CDE题解

原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$题解   本次$ARC$可谓是手速场。当时由于博主实在zz导致滚粗,rk89.   下面是题解。   总结了一下,三道结论题。样例都不错,猜到结论基本上就可以过掉了。   严重差评!!!大...

weixin_30466039的博客 179

torch.nn.functional.normalize()函数解读

** 函数作用 ** 对输入的数据(tensor)进行指定维度的L2_norm运算。 ** 代码示例 ** import torch.nn.functional as F >>> a=torch.tensor([1,2,3,4],dtype=torch.float32) >>> a tensor([1., 2., 3., 4.]) >>&g...

qq_40178291的博客 3万+

【深度学习】深入理解Batch Normalization批标准化

这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下Batch Normalization的原理,以下为参考网上几篇文章总结得出。   Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Tr...

weixin_34161032的博客 3492
上一篇: Luogu4587[FJOI2016] 神秘数
下一篇: CF1A Theatre Square
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值