首页 > 其他 > 详细

Educational Codeforces Round 109 (Rated for Div. 2)

时间:2021-05-25 23:50:07      阅读:35      评论:0      收藏:0      [点我收藏+]

D. Armchairs

比赛时以为贪心可以做。。。其实是一个dp

技术分享图片
 1 int a0[N],a1[N];
 2 int dp[N][N];
 3 int main()
 4 {
 5     ios::sync_with_stdio(false); cin.tie(nullptr);
 6     
 7     int n;
 8     cin >> n;
 9     int cnt0 = 0, cnt1 = 0;
10     for (int i = 1; i <= n; i++) {
11         int tmp;
12         cin >> tmp;
13         if (tmp) {
14             a1[++cnt1] = i;
15         }
16         else
17             a0[++cnt0] = i;
18     }
19     for (int i = 1; i <= cnt1; i++) {
20         for (int j = i; j <= cnt0; j++) {
21             if (j == i) {
22                 dp[i][j] = dp[i - 1][j - 1] + abs(a1[i] - a0[j]);
23             }
24             else
25                 dp[i][j] = min(dp[i - 1][j - 1] + abs(a1[i] - a0[j]),
26                     dp[i][j - 1]);
27         }
28     }
29     
30     cout << dp[cnt1][cnt0];
31 }
View Code

 

Educational Codeforces Round 109 (Rated for Div. 2)

原文:https://www.cnblogs.com/lingshi321/p/14810563.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!