首页 > 相助(easy)
头像 kilomatutinal
发表于 2026-01-03 01:22:43
喵呜~这道题其实很简单啦,首先人家要提醒你注意哦,题目里的ai只会是0和1呢~所以一共只有四种可能喵:"0……0"、"1……1"、"1…10…0"、"0…01…1"。首尾不同怎么办喵?很简单哒,只要在中间遍历一遍,看看有 展开全文
头像 此在Dasein
发表于 2026-01-03 01:34:59
问题分析 1. 操作性质分析 题目定义的操作是:选择 的一对索引并删除区间 。 这一操作看似是“消除”操作,但我们可以从逆向或者等价转换的角度来理解: 若要使数组清空,数组中的每一个元素都必须属于某一次消除操作。 虽然操作会导致剩余元素拼接(索引变化),但从原始数组的视角看,任何一次操作实际上都 展开全文
头像 quchen666
发表于 2026-01-03 00:18:04
#include <bits/stdc++.h> using namespace std; const int N = 6e5+10; int a[N]; int cnt[N]; int main() { int n; cin>>n; for(in 展开全文
头像 Phantom_73
发表于 2026-01-03 18:18:03
/* * .,:,,, .::,,,::. * .::::,,;;, .,;;:,,....:i: * 展开全文
头像 RogeAustine
发表于 2026-01-03 00:23:58
// 我们只需要考虑4中情况,其他的全都-1 // 1.....10....0 // 0.....01...1 // 1..........1 // 0...........0 // 然后就是模拟设法找到几个标志性的0和1 // 注意特判一下1,2,3,很特殊 #include <iost 展开全文
头像 ATRI_execution
发表于 2026-01-03 12:36:40
"""一般情况: 1. 直接dp[i][j]保存区间[i,j]的分割答案,状态转移时尝试一分、二分、三分...直到(j-i)//2分,时间复杂度o(n³),基本不可接受.优化方案的话,我是菜鸡,想不出来 2. 贪心+回溯,每次都优先匹配最外层的(这样总次数更少且更可 展开全文
头像 奋斗的蕃茄
发表于 2026-01-03 19:52:05
#include <bits/stdc++.h> using namespace std; const int N=5e5+10; int n,arr[N],a,b; bool check(){ for(int i=2;i<n-1;i++) if(arr[i 展开全文
头像 YunBaichuan
发表于 2026-01-03 09:46:05
参考:https://www.nowcoder.com/share/jump/5537992501767403764056 思路:这题可以用划分dp来做,我们定义表示到使得数组为空的最小划分数,并且记录一个数组,用来记录元素值的最小划分次数。这样后续在进行首尾元素相同,状态转移的时候,就可以找到结尾 展开全文
头像 ccl_aurora
发表于 2026-01-03 09:46:22
#include <iostream> #include<vector> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n 展开全文
头像 smartiphone
发表于 2026-01-03 10:26:22
#include<bits/stdc++.h> #define INF 0x3fffffff #define endl '\n' using namespace std; void solve() { int n;cin >> n; vector<in 展开全文