当前位置:网站首页>Value series solution report
Value series solution report
2022-07-05 15:25:00 【wch(】
Value series solution report
label : extremum Combinatorial number
source : Cattle from


Their thinking :
According to the topic definition , It is deduced that the value of a monotonic sequence is the absolute value of the difference between the first two ends , Then try to find the extreme point of the sequence first
To facilitate data processing, we use two arrays to count ,
a The array is included in the array after weight removal ( In this way, it is convenient to judge whether it is the extreme point )
b The array counts the number of original numbers
such as 1 3 3 4 4
Array a The values of are 1 3 4
Array b The values of are 1 2 2
Then consider the influence of extreme number and non extreme number on the final answer
For continuous same extremum ( Aforementioned a[3]) We must keep at least one ans * = 2 Of a[3] Time -1
All non extreme points can be retained or not ans * = 2*2
We use fast exponents to reduce complexity
Code implementation :
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 998244353;
const int N = 1e5 + 8;
int a[N],c[N];
ll ksm(ll a, ll b) {
ll ans = 1;
while (b) {
if (b & 1) (ans *= a) %= mod;
(a *= a) %= mod;
b >>= 1;
}
return ans;
}
bool check(int i){
return (a[i] > a[i - 1] && a[i] > a[i + 1]) || (a[i] < a[i - 1] && a[i] < a[i + 1]);
}
int main() {
int t;
cin >> t;
while (t--) {
ll n;
ll ans = 1;
cin >> n;
int na=0,x;
memset(a,0,sizeof(a));
memset(c,0,sizeof(c));
for (int i = 1; i <= n; i++) {
scanf("%d", &x);
if(a[na]==x){
c[na]++;
}
else{
na++;
a[na]=x;
c[na]++;
}
}
int cnt=n;
if(na==1){
(ans *= ksm(2, c[1])-1) %= mod;
cout<<ans<<endl;
continue;
}
else{
(ans *= ksm(2, c[1])-1) %= mod;
(ans *= ksm(2, c[na])-1) %= mod;
cnt -= c[1]+c[na];
}
for (int i = 2; i <= na-1; i++) {
if (check(i)) {
cnt -= c[i];
(ans *= ksm(2, c[i])-1) %= mod;
}
}
(ans *= ksm(2, cnt)) %= mod;
cout << ans << endl;
}
return 0;
}
边栏推荐
- 亿咖通科技通过ISO27001与ISO21434安全管理体系认证
- 做研究无人咨询、与学生不交心,UNC助理教授两年教职挣扎史
- I spring and autumn blasting-2
- 数学建模之层次分析法(含MATLAB代码)
- [recruitment position] Software Engineer (full stack) - public safety direction
- Bugku easy_ nbt
- qt creater断点调试程序详解
- 复现Thinkphp 2.x 任意代码执行漏洞
- Anaconda uses China University of science and technology source
- lv_font_conv离线转换
猜你喜欢

市值蒸发超百亿美元,“全球IoT云平台第一股”赴港求生

Garbage collection mechanism of PHP (theoretical questions of PHP interview)

百亿按摩仪蓝海,难出巨头

Fr exercise topic - simple question

Usage and usage instructions of JDBC connection pool

MySQL 巨坑:update 更新慎用影响行数做判断!!!

Ctfshow web entry information collection

数据库学习——数据库安全性

How to paste the contents copied by the computer into mobaxterm? How to copy and paste

Transfer the idea of "Zhongtai" to the code
随机推荐
社区团购撤城“后遗症”
JS bright blind your eyes date selector
数学建模之层次分析法(含MATLAB代码)
R 熵权法计算权重及综合得分
Bugku's Ah Da
Select sort and bubble sort
Install and configure Jenkins
超越PaLM!北大碩士提出DiVeRSe,全面刷新NLP推理排行榜
Bugku's Ping
Bugku telnet
Nine hours, nine people, nine doors problem solving Report
MySQL5.7的JSON基本操作
queryRunner. Query method
MySQL----函数
MySQL表字段调整
Your childhood happiness was contracted by it
Leetcode: Shortest Word Distance II
episodic和batch的定义
你童年的快乐,都是被它承包了
Machine learning notes - gray wolf optimization