2 条题解
- 
  1
debug了半小时,结果发现......
想引用一下
曾经最近没开时写的:
不过数据范围我数组开到评测只因你告诉我
Standard answer longer than user output....得了正题。
用个动态数组,是局部的,每次存删除后的水果序列,再赋值给最终的。
code:
#include <bits/stdc++.h> using namespace std; int n,a[300000],l[300000],r[300000];//报复性开大 vector <int> ve; vector <int> tmp; signed main() { freopen("fruit.in","r",stdin); freopen("fruit.out","w",stdout); scanf("%d",&n); a[0] = a[n + 1] = -1; r[0] = 1; l[n + 1] = n; for(int i = 1;i <= n;i++) { scanf("%d",&a[i]); if(a[i] != a[i - 1]) ve.push_back(i); l[i] = i - 1; r[i] = i + 1; } while(r[0] != n + 1) { tmp.clear(); for(int i = 0;i < ve.size();i++) { printf("%d ",ve[i]); int u = l[ve[i]]; int v = r[ve[i]]; r[u] = v; l[v] = u; if(a[ve[i]] != a[u] && a[ve[i]] == a[v]) tmp.push_back(v); } ve = tmp; printf("\n"); } return 0; } 
信息
- ID
 - 1478
 - 时间
 - 1000ms
 - 内存
 - 256MiB
 - 难度
 - 9
 - 标签
 - 递交数
 - 23
 - 已通过
 - 3
 - 上传者