Educational Codeforces Round 111 (Rated for Div. 2) C

C. Manhattan Subarrays
是好题要读好题。。。
题意:找到一个子序列使得其中其中不包含3点组成单调递增或单调递减,那么该子序列对答案贡献为1。求有多少这样的子序列

大佬思路
对于长度为3的子序列,如果单调递增或者递减那么这段子序列舍弃
对于长度为4的子序列,还是看代码吧

rep(i,1,n-2) {
	if(a[i]>=a[i+1]&&a[i+1]>=a[i+2]) continue;
	 if(a[i]<=a[i+1]&&a[i+1]<=a[i+2]) continue;
	 ans++;
}
rep(i,1,n-3) {
	实际效果跟枚举是否有单调一样,但二分抄代码嘛
	if((a[i+1]-a[i])*(a[i+2]-a[i+1])<0&&
	   (a[i+1]-a[i])*(a[i+3]-a[i+1])<0&&
	   (a[i+2]-a[i])*(a[i+3]-a[i+2])<0&&
	   (a[i+2]-a[i+1])*(a[i+3]-a[i+2])<0
	   ) ans++;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值