Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:256 MB

#787. Charlie的云笔记序列

统计

题目背景

Charlie是oiinhand的忠实粉丝。他有使用oih云笔记记录自己的题解的习惯。只有一点一滴的积累才能留下自己的足迹。
oih云笔记有什么特点吗?
oih的站长soha表示,目前oih2的云笔记功能比较简陋,但是正在开发oih3中的新版云笔记功能将是世界上最适合oier的储藏笔记的工具。
首先,新版云笔记支持markdown功能,并且可以实时预览,插入公式图片都不是问题。实时自动保存,不用担心突然断电啊文档消失,而且不管在哪里都可以看!
再者,云笔记可以给其他同学分享自己的笔记,共同进步。写完了笔记,还可以一键向洛谷投稿呢!
然而Charlie最喜欢的功能是oih的题目收藏。现在他收藏了一系列题目,但是觉得不过瘾所以正在玩弄这个功能。

题目描述

某天,Charlie将收藏的题目抽象为一个序列。a = {a1, a2, a3, …, an-1, an}。
设a[l : r]表示序列{ai}第l个数到第r个数之间的子串,其中1 <= l <= r <= n。形式化地,a[l : r] = {al, al+1, al+2, …, ar-1, ar}。比如说,a = {9, 8, 0, 3, 2, 1},那么a[2 : 5] = {8, 0, 3, 2}。
Charlie对序列{ai}定义了一个函数F(l; r),表示序列a[l : r]的本质不同的子序列个数。特别地,一个空序列也被当作一个本质不同的子序列。
序列a[l : r]的子序列定义为{ai1, ai2, ai3, …, aik-1, aik},其中l <= i1 < i2 < i3 < … < ik-1 < ik <= r。比如说,a = {9, 8, 0, 3, 2, 1},那么{8, 3, 2}是a[2 : 5] ={8, 0, 3, 2}的一个子序列。
长度为n的序列a和长度为m的序列b被称作本质不同的,当且仅当n ≠ m,或存在i,使得ai ≠ bi。反之,则称这2个序列是本质相同的。比如说,{9, 8}和{9, 7}是本质不同的,{9, 8}和{9, 8, 7}也是本质不同的,而{9, 8}和{9, 8}是本质相同的。
举个例子,设a = {1, 9, 9, 8, 0, 3, 2, 1},那么F(1, 3) = 6,因为a[1 : 3] = {1, 9, 9}有6个子序列:{},{1},{9},{1, 9}, {9, 9},{1, 9, 9}。
现在Charlie想知道,Σ(1<=l<=r<=n)F(l, r)的值是多少。由于这个数可能很大,请输
出它对998244353(7*17*2^23 + 1,一个质数)取模后的结果。

输入格式:

第一行一个整数n,表示序列a的长度。
第二行包括n个整数,表示a1, a2, a3, …an-1, an。

输出格式:

一行,一个整数表示Σ(1<=l<=r<=n)F(l, r)的值对998244353取模后的结果。

输入样例#1:

8
1 9 9 8 0 3 2 1

输出样例#1:

814