当前位置:网站首页>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;
}
边栏推荐
- queryRunner. Query method
- CODING DevSecOps 助力金融企业跑出数字加速度
- How to paste the contents copied by the computer into mobaxterm? How to copy and paste
- Huiyuan, 30, is going to have a new owner
- Brief introduction of machine learning framework
- DVWA range clearance tutorial
- I collect multiple Oracle tables at the same time. After collecting for a while, I will report that Oracle's OGA memory is exceeded. Have you encountered it?
- Optional parameters in the for loop
- No one consults when doing research and does not communicate with students. UNC assistant professor has a two-year history of teaching struggle
- Bugku's Eval
猜你喜欢

Example of lvgl display picture

CSRF, XSS science popularization and defense

Reasons and solutions for redis cache penetration and cache avalanche

I include of spring and Autumn

12 MySQL interview questions that you must chew through to enter Alibaba

MySQL之CRUD

Ctfshow web entry command execution

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

Bugku's Eval

lvgl 显示图片示例
随机推荐
Number protection AXB function! (essence)
JS bright blind your eyes date selector
Coding devsecops helps financial enterprises run out of digital acceleration
12 MySQL interview questions that you must chew through to enter Alibaba
Stm32+bh1750 photosensitive sensor obtains light intensity
Object. defineProperty() - VS - new Proxy()
Your childhood happiness was contracted by it
Definition of episodic and batch
JS knowledge points-01
SQL Server learning notes
[recruitment position] Software Engineer (full stack) - public safety direction
easyOCR 字符識別
Go learning ----- relevant knowledge of JWT
你童年的快乐,都是被它承包了
CODING DevSecOps 助力金融企业跑出数字加速度
Leetcode: Shortest Word Distance II
MySQL表字段调整
Common MySQL interview questions (1) (written MySQL interview questions)
美团优选管理层变动:老将刘薇调岗,前阿里高管加盟
Huawei Hubble incarnation hard technology IPO harvester