1 solutions
- 
  0
中位数处1不动,其他的1向中间移动即可
具体证明有点类似中位数定理
void s() { int n; cin >> n; string s; cin >> s; vector<int> a; for(int i = 0; i < n; i++) { if(s[i] == '1') { a.push_back(i); } } int mid = a.size() / 2; int ans = 0; for(int i = 0; i < a.size(); i++) { ans += abs(a[mid] - (mid - i) - a[i]); } cout << ans << '\n'; } 
Information
- ID
 - 7011
 - Time
 - 200ms
 - Memory
 - 256MiB
 - Difficulty
 - 8
 - Tags
 - # Submissions
 - 104
 - Accepted
 - 18
 - Uploaded By