312c高速脉冲输出程序的数量 (g3高速312公里处是哪)

312c高速脉冲输出程序的数量

问题描述

给定一个长度为N的序列,定义子序列的权值为该子序列中最大元素与最小元素之差。求权值大于等于K的子序列数量。N<=2e5, K, A_i<=1e9

解题思路

使用双指针滑动窗口维护当前子序列的权值。初始化:left=1, right=1, ans=0滑动窗口递增right,更新当前权值max-min若当前权值>=K,更新ans为ans+right-left+1若当前权值 代码实现```cppinclude using namespace std;const int N = 2e5 + 5;long long a[N];int main() {int n, k;cin >> n >> k;for (int i = 0; i < n; i++) cin >> a[i];long long ans = 0;int left = 1, right = 1;long long max_v = a[1], min_v = a[1];while (right <= n) {max_v = max(max_v, a[right]);min_v = min(min_v, a[right]);if (max_v - min_v >= k) {ans += right - left + 1;max_v = min_v = a[++right];} else {left++;if (left > right) {right = left;max_v = min_v = a[left];}}}cout << ans << endl;return 0;}```

时空复杂度分析

时间复杂度:O(N)空间复杂度:O(1)

设置SMB67基本参数设置SMW68脉宽-影响到速度设置SMD72脉冲数量-行走的距离执行PLS指令设置方向把上面的写到一个子程序里,需要用脉冲程序的时候调用就好了具体可以参考西门子S7-200变成软件里的帮助,里面有个SM特殊寄存器的帮助,找到SM60那一页。 参考:如果对您有所帮助请采纳我哦~

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论