每个i位置对于某个 s s,会支配所有xmodlen=imodlenx \mod len = i \mod len的位置,其中 x x是[l+j]∗s[l+j]*s。 也就是说 xmodgcd(s,len)=imodgcd(s,len) x \mod gcd(s,len) = i \mod gcd(s,len)。 举个例子 n=3,s=2,则a[1]≥a[1],a[2],a[3]:1
This way 题意: 给你一个长度为n的数组a,你每次可以选择一个长度为2k的连续区间(k不定),将后k个数一一对应赋值给前k个数,问你最终要使得a中所有元素相等,需要至少多少次操作。 题解: 想错了…我以为是前赋值后或者后赋值前,这样情况就比较复杂了,暂时想到的方法是区间DP,还有一些奇奇怪怪的DP。但是2e5的范围不能接受,以后再想想怎么做,或许也会凭此出一道题目。 既然是后赋值
题目 思路: #include <bits/stdc++.h>using namespace std;#define int long long#define pb push_back#define fi first#define se second#define lson p << 1#define rson p << 1 | 1const int maxn =
Leetcode 3036. Number of Subarrays That Match a Pattern II 1. 解题思路2. 代码实现 3036. Number of Subarrays That Match a Pattern II 1. 解题思路 这一题其实有点水,因为本质上还是一道套路题目,和前两周的两道题目一样,都是考察的z算法: Leetcode 3031. Mini
Leetcode 3013. Divide an Array Into Subarrays With Minimum Cost II 1. 解题思路2. 代码实现 题目链接:3013. Divide an Array Into Subarrays With Minimum Cost II 1. 解题思路 这一题的话思路上的话我一开始是想着偷懒直接用动态规划,结果果然还是遇到了超时的问题,因为
Leetcode 2962. Count Subarrays Where Max Element Appears at Least K Times 1. 解题思路2. 代码实现 题目链接:2962. Count Subarrays Where Max Element Appears at Least K Times 1. 解题思路 这一题思路上同样很直接,就是找到最大的元素所在的全部的位置坐
leetcode 1031. Maximum Sum of Two Non-Overlapping Subarrays 题意:给你一个数组,再给你一个L,M,求在这个数组里面,两个不重合的长度分别为L,M的最的最大和。 思路: 先预处理一个dp[i][2]; dp[i][0]表示以i为开头,长度为L的值。 dp[i][1]表示以i为开头,长度为M的值。 在两层for,遍历i,j分别表示
[python 刷题] 1248 Count Number of Nice Subarrays 题目如下: Given an array of integers nums and an integer k. A continuous subarray is called nice if there are k odd numbers on it. Return the number of n