首页 > 喜欢切数组的红
头像 Bezime
发表于 2024-11-24 21:59:25
E题题解: 时间复杂度O(n)哦! 题目大意: 给数组切 2 刀,每份总和相等,都要包含正数 思路: 首先定义一个前缀和数组 sum,sum[i]=a[1]+a[2]+...+a[i]。 如果 sum[n] 不是三的倍数,怎么切,都不行。 直接考虑第一刀砍在 i,i+1 之间,求右边能切的位置数量, 展开全文
头像 可爱大狐狸若藻
发表于 2024-11-24 22:39:00
E解题思路 要将数组切分成三个满足条件的子数组,需要满足以下条件: 总和可被3整除:数组的总和 必须能够被3整除,否则无法均分为三个相等的子数组。 每个子数组至少有一个正数:在切分的位置,需要确保每个子数组包含至少一个正数。 子数组和相等:每个子数组的和必须等于 。 具体步骤 展开全文
头像 yitouerbi
发表于 2024-11-24 21:11:47
题目大意 把一个数组分成三个部分,每个部分和相同,且都有至少一个正数。 思考过程 容易证明,若总和不是3的倍数或者数组中没有整数,则方案数为0 解题过程 分两类情况 1.总和不是3的倍数或者数组中没有整数 输出0 2.其他情况 可以维护一个前缀和数组遍历 CODE #include <bits 展开全文
头像 洋洋@王者荣耀
发表于 2025-05-23 11:37:51
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = 展开全文
头像 庆余年202304042113228
发表于 2025-04-20 10:37:29
import java.util.HashMap; import java.util.LinkedList; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public 展开全文
头像 11155454
发表于 2025-03-25 20:34:54
#include <iostream> using namespace std; long long v[200005],pre_sum[200005],aft_sum[200005]; int main() { long long n; cin>>n; 展开全文
头像 牛客94987038号
发表于 2025-04-03 10:52:24
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in. 展开全文
头像 帅气的干饭人在吃瓜
发表于 2025-05-30 16:57:16
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.h 展开全文
头像 龍眠
发表于 2025-03-24 21:13:55
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n 展开全文
头像 攀云
发表于 2025-04-26 16:09:43
#include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<long long> 展开全文

等你来战

查看全部