码迷,mamicode.com
首页 > 其他好文 > 详细

Educational Codeforces Round 73

时间:2019-09-21 10:35:59      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:bit   ref   不能   scan   test   can   contest   min   main   

1334 (-2), pupil
Rank: 2668

(虽然比上次好,但是摆脱不了掉分的命运。。。)

D. Make The Fence Great Again

http://codeforces.com/contest/1221/problem/D

分析:对每个高度来说,最多升高两次,因此可以对这个进行dp(一开始读错题了,没有看到是相邻不能同高,一开始以为所有都不能同高)

代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 1e6;
 4 typedef long long ll;
 5 const ll inf = 0x3f3f3f3f3f3f3f3f;
 6 int n;
 7 int h[maxn], w[maxn];
 8 ll dp[maxn][3];
 9 
10 int main()
11 {
12     int T; cin >> T;
13     while (T--)
14     {
15         int n; cin >> n;
16         for (int i = 1; i <= n; i++)
17             scanf("%d%d", h + i, w + i);
18         for (int i = 1; i <= n; i++)
19             dp[i][0] = dp[i][1] = dp[i][2] = inf;
20         dp[1][0] = 0, dp[1][1] = w[1], dp[1][2] = 2 * w[1];
21         for (int i = 2; i <= n; i++)
22         {
23             for (int j = 0; j <= 2; j++)
24                 for (int k = 0; k <= 2; k++)
25                     if (h[i - 1] + j != h[i] + k)
26                         dp[i][k] = min(dp[i][k], w[i] * k + dp[i - 1][j]);
27         }
28         cout << min(dp[n][0], min(dp[n][1], dp[n][2])) << endl;
29     }
30 }

 

Educational Codeforces Round 73

标签:bit   ref   不能   scan   test   can   contest   min   main   

原文地址:https://www.cnblogs.com/liuwenhan/p/11561495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!