华章
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
闲的没事写首歌
题目描述
一首歌由个段落,三种音符组成。(为了方便起见,我们把三种音符称作)音符都分布在段落里。同时段落也被依次编号为。
这首歌在创作之初,每个段落里只有一个音符。然而现在作曲家对这首歌不是那么的满意,他将对这首歌做出一些修改。
修改操作有三种,形式如下:
1:音符互换,作曲家会选择一个区间 和两种音符,对于每一个段落来说,如果它的编号在 l~r内,并且段落内的音符种类为 ,那么该段落里音符种类变为 ,如果段落内的音符种类为 ,那么变为 。
2:音符覆盖,作曲家会选择一个区间 和两种音符,对于所选段落,将其段落内所有音符转换为音符
3:音符变奏,作曲家会选择一个区间 和一种音符,将所选段落内音符数量翻倍
注意:如果所选区间内不存在音符a,那么关于音符a变化到音符b的操作都不会造成影响,b也同理。
现在你要回答的是,在作曲家每次修改后,他的歌曲里三种音符分别各出现了几次。答案对998244353取模
输入格式
第一行输入两个整数 n,m。
第二行输入n个数字,代表n个段落内初始的音符
接下来m行,先输入三个整数,l,r,opt表示所选区间为l~r操作种类为opt
若opt=1 ,则输入a,b表示进行音符互换
若opt=2,则输入a,b表示进行音符覆盖
若opt=3,则输入a表示音符变奏
输出格式
输出m行,一行三个数字,表示该操作后1,2,3类音符在整首歌中出现的次数,答案对998244353取模。
样例 #1
样例输入 #1
5 3
1 1 2 3 1
1 3 1 1 2
2 3 2 1 2
2 4 3 2
样例输出 #1
2 2 1
1 3 1
1 5 1
提示