当前位置:网站首页>[count] [combined number] value series
[count] [combined number] value series
2022-07-06 07:39:00 【Code chess】
Topic link :
https://ac.nowcoder.com/acm/contest/23481/B
Don't calculate the sequence a The value of , Because it is difficult to do it from this aspect .
Which values should be taken from the sequence to make the sequence a The value remains unchanged .
For three numbers to discuss :
- a i < a j < a k a_i < a_j <a_k ai<aj<ak or a i > a j > a k a_i >a_j>a_k ai>aj>ak when
Delete the number in the middle , The value of the sequence will not change . If the same number in the middle haskindividual , The number of cases is 2 k 2^k 2k - a i < a j > a k a_i < a_j >a_k ai<aj>ak or a i > a j < a k a_i >a_j<a_k ai>aj<ak when
Delete the middle value , The value of the sequence will change , So you can't delete . But if there are multiple equal values in the middle , Leave at least one value . If the number of equal numbers isk, Then the number of cases is 2 k − 1 2^k-1 2k−1( Remove the empty condition )
Next , Is to discuss the same number in the middle
Treat equal numbers as a connected block , Set to [ i , j ] [i,j] [i,j]
- If meet a i − 1 < a i = . . . = a j < a j + 1 a_{i-1}<a_i=...=a_j<a_{j+1} ai−1<ai=...=aj<aj+1 or a i − 1 > a i = . . . = a j > a j + 1 a_{i-1}>a_i=...=a_j>a_{j+1} ai−1>ai=...=aj>aj+1( And to satisfy i > 1 , j < n i>1,j<n i>1,j<n), Then interval [ i , j ] [i,j] [i,j] The number of can be deleted completely , Does not affect the value , Such a range contributes a lot to the answer 2 j − i + 1 2^{j-i+1} 2j−i+1 Kind of plan .
- Otherwise, the interval [ i , j ] [i,j] [i,j] The number of must keep one , Such a range contributes to the answer 2 j − i + 1 − 1 2^{j-i+1}-1 2j−i+1−1 Kind of plan . The answer is to multiply the contributions of all intervals .
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5 + 5, mod = 998244353;
vector<ll> fac(N);
void solve()
{
int n;
cin >> n;
vector<int> a(n);
for(auto &i : a) cin >> i;
ll res = 1;
for(int i = 0, j = 0; i < n; i++)
{
j = i;
while(j < n - 1 && a[j + 1] == a[i]) j++;
if(i - 1 >= 0 and j + 1 < n and (a[i - 1] < a[i] && a[i] < a[j + 1] || a[i - 1] > a[i] && a[i] > a[j + 1]))
res = res * fac[j - i + 1] % mod;
else res = res * (fac[j - i + 1] - 1) % mod;
i = j;
}
cout << res << "\n";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
fac[0] = 1;
for(int i = 1; i < N; i++)
fac[i] = fac[i - 1] * 2 % mod;
int t;
cin >> t;
// t = 1;
while(t--) solve();
return 0;
}
边栏推荐
- Ble of Jerry [chapter]
- Cf1036c class numbers solution
- 智能终端设备加密防护的意义和措施
- Linked list interview questions (Graphic explanation)
- onie支持pice硬盘
- 洛谷P4127 [AHOI2009]同类分布 题解
- js對象獲取屬性的方法(.和[]方式)
- 软件开发的一点随记
- Ali's redis interview question is too difficult, isn't it? I was pressed on the ground and rubbed
- 【mysql学习笔记30】锁(非教程)
猜你喜欢

【mysql学习笔记30】锁(非教程)

链表面试题(图文详解)
![Ble of Jerry [chapter]](/img/d8/d080ccaa4ee530ed21d62755808724.png)
Ble of Jerry [chapter]

剪映的相关介绍

Summary of Digital IC design written examination questions (I)

软件测试界的三无简历,企业拿什么来招聘你,石沉大海的简历

珠海金山面试复盘

QT color is converted to string and uint

Oracle column to row -- a field is converted to multiple rows according to the specified separator
![[1. Delphi foundation] 1 Introduction to Delphi Programming](/img/14/272f7b537eedb0267a795dba78020d.jpg)
[1. Delphi foundation] 1 Introduction to Delphi Programming
随机推荐
Jerry needs to modify the profile definition of GATT [chapter]
Get the path of edge browser
edge浏览器 路径获得
Google可能在春节后回归中国市场。
[非线性控制理论]9_非线性控制理论串讲
学go之路(二)基本类型及变量、常量
qt颜色与字符串、uint相互转换
When the Jericho development board is powered on, you can open the NRF app with your mobile phone [article]
Fundamentals of C language 9: Functions
Google may return to the Chinese market after the Spring Festival.
CF1036C Classy Numbers 题解
The difference between TS Gymnastics (cross operation) and interface inheritance
word设置目录
Sharing of source code anti disclosure scheme under burning scenario
Vit (vision transformer) principle and code elaboration
实现精细化生产, MES、APS、ERP必不可少
剪映的相关介绍
Ble of Jerry [chapter]
DataX self check error /datax/plugin/reader/_ drdsreader/plugin. Json] does not exist
Ble of Jerry [chapter]
