首页 > 操作数组
头像 AliLexiWalker
发表于 2026-05-04 00:07:33
若两数组总和不等则无法实现后续操作;否则最少操作数为所有需增加位置的差值之和:。 void solve(){ int n;cin>>n; vll a(n),b(n); for(int i=0;i<n;++i)cin>>a[i]; for( 展开全文
头像 憨憨的竹林
发表于 2026-05-04 00:12:57
很简单的题目呀 首先我们要保证两个数组的元素之和是相等的,否则移来移去也只是在做无用功。 确保这个前提之后,我们每次操作都同时选中一个 与一个 去进行操作即可,所以最后操作数量实际上就是 了 代码如下: #include <bits/stdc++.h> using namespac 展开全文
头像 lotusor
发表于 2026-05-04 00:47:23
操作都是一加一减,所以初始值一定要相同,加多少减多少只需要记住总共需要加或减多少就行了 n = int(input()) a = list(map(int,input().split())) b = list(map(int,input().split())) if sum(a) != sum(b) 展开全文
头像 BeauWill
发表于 2026-05-04 02:35:14
Modern Cpp #include <iostream> #include <vector> #include <numeric> using i64 = long long; int main() { std::ios::sync_with_stdi 展开全文
头像 此在Dasein
发表于 2026-05-04 01:43:44
1. 问题分析 该问题的本质是一个带有守恒约束的线性变换问题。 操作特性:每次操作选择两个不同的索引 ,使 减 1,同时 加 1。这一操作在数学上等价于在数组元素之间进行“单位增量的转移”。 和的不变性(Invariant):无论执行多少次操作,数组 的元素总和 始终保持不变。 目标状态: 展开全文
头像 腌萝卜干
发表于 2026-05-04 14:55:19
简单题 #include <bits/stdc++.h> #define x first #define y second #define all(x) x.begin(), x.end() #define vec1(T, name, n, val) vector<T> n 展开全文
头像 想去杭州的沸羊羊在刷代码
发表于 2026-05-04 20:06:34
#include <bits/stdc++.h> using namespace std; #define int long long signed main() { int n; cin>>n; int sum=0; int a[n+2]; int b[n+2]; 展开全文
头像 白子伍
发表于 2026-05-04 22:02:56
import sys # for line in sys.stdin: # a = line.split() # print(int(a[0]) + int(a[1])) def solve(): input = sys.stdin.readline n = in 展开全文