当前位置:网站首页>Value sequence (subsequence contribution problem)
Value sequence (subsequence contribution problem)
2022-07-07 07:45:00 【whitewall_ nine】
#include<bits/stdc++.h>
using namespace std;
#define rep(i,l,r) for(int i=(l);i<=(r);i++)
#define per(i,l,r) for(int i=(l);i>=(r);i--)
#define ll long long
#define pii pair<int, int>
#define mset(s,t) memset(s,t,sizeof(t))
#define mcpy(s,t) memcpy(s,t,sizeof(t))
#define fir first
#define pb push_back
#define sec second
#define sortall(x) sort((x).begin(),(x).end())
inline int read () {
int x = 0, f = 0;
char ch = getchar();
while (!isdigit(ch)) f |= (ch=='-'),ch= getchar();
while (isdigit(ch)) x = x * 10 + ch - '0', ch = getchar();
return f?-x:x;
}
template<typename T> void print(T x) {
if (x < 0) putchar('-'), x = -x;
if (x >= 10) print(x/10);
putchar(x % 10 + '0');
}
const int N = 1e6 + 10;
const int mod = 998244353;
int n;
ll a[N];
ll qmi (ll a, ll b, ll c ){
ll ans = 1;
while (b) {
if (b & 1) ans =ans * a %c;
b >>= 1;
a = a * a % mod;
}
return ans;
}
void solve() {
cin >> n;
for (int i = 1; i<= n ;i++) {
cin >> a[i];
}
//sort(a + 1, a + 1 + n);
ll ans = 1;
a[n + 1] = 2e18;
a[0] = 2e18;
for (int i = 1, j = 1; i <= n ; i ++) {
while (j < n && a[j + 1] == a[i]) {
j ++;
}
int len = j - i + 1;
if (((a[i - 1] < a[i] && a[j] < a[j + 1]) || (a[i - 1] > a[i] && a[j] > a[j + 1])) && ( i !=1 && j != n))
ans = (ans * qmi(2, j - i + 1, mod) %mod) %mod;
else {
ans = ((ans * ((qmi(2, j - i + 1, mod) - 1) %mod + mod) %mod) %mod + mod) %mod;
}
j ++;
i = j -1;
}
cout << ans << endl;
}
int main () {
int t;
cin >> t;
while (t --) solve();
return 0;
}
https://ac.nowcoder.com/acm/contest/23481/B The first question is which numbers will not have no impact on the contribution If n <= 2 Then delete any one of them, either unchanged or reduced , Therefore, we can guess that deleting a number in the sequence must not increase For one of the positions , There are four size relationships , It can be found that the contribution will not change after the order of increasing or decreasing is deleted , Otherwise, it must be reduced , So one must be left .
边栏推荐
- Kbu1510-asemi power supply special 15A rectifier bridge kbu1510
- Deep learning Flower Book + machine learning watermelon book electronic version I found
- idea添加类注释模板和方法模板
- resource 创建包方式
- 三、高质量编程与性能调优实战 青训营笔记
- Six methods of flattening arrays with JS
- pytorch 参数初始化
- misc ez_ usb
- [unity] several ideas about circular motion of objects
- 【性能压测】如何做好性能压测?
猜你喜欢
URP - shaders and materials - light shader lit
即刻报名|飞桨黑客马拉松第三期等你挑战
How to * * labelimg
【经验分享】如何为visio扩展云服务图标
[Linux] process control and parent-child processes
【数学笔记】弧度
图解GPT3的工作原理
Detailed explanation of uboot image generation process of Hisilicon chip (hi3516dv300)
The configuration that needs to be modified when switching between high and low versions of MySQL 5-8 (take aicode as an example here)
[ANSYS] learning experience of APDL finite element analysis
随机推荐
Make a bat file for cleaning system garbage
按键精灵脚本学习-关于天猫抢红包
Redis data migration
知识点滴 - 关于苹果认证MFI
Determining the full type of a variable
[2022 CISCN]初赛 web题目复现
Calculus key and difficult points record part integral + trigonometric function integral
I failed in the postgraduate entrance examination and couldn't get into the big factory. I feel like it's over
Leetcode-543. Diameter of Binary Tree
Outsourcing for three years, abandoned
在线直播系统源码,使用ValueAnimator实现view放大缩小动画效果
Operation suggestions for today's spot Silver
Common method signatures and meanings of Iterable, collection and list
科技云报道:从Robot到Cobot,人机共融正在开创一个时代
pytest+allure+jenkins安装问题:pytest: error: unrecognized arguments: --alluredir
gslx680触摸屏驱动源码码分析(gslX680.c)
Mysql高低版本切换需要修改的配置5-8(此处以aicode为例)
测试周期被压缩?教你9个方法去应对
[cloud native] how to give full play to memory advantage of memory database
pytest+allure+jenkins环境--填坑完毕