Ural 1167 Bicolored Horses
2015-05-19 22:32
211 查看
题意:将n匹马进入k个马厩中,这些马有两种颜色,黑色与白色,分别用0和1表示。要求每个马厩中都有马,并且马厩中的马必须是连续的,每个马厩都有一个不快乐值,不快乐值=该马厩中的黑马数*该马厩中的白马数,求怎样安排马才能使这些马的不快乐值最小。
链接:http://acm.timus.ru/problem.aspx?space=1&num=1167
思路:动态规划,设计状态dp[i][j],表示第i个马厩中放j值马时,不快乐值的最小值,状态转移方程dp[i][j] = min ( dp[i][j], dp[i-1][p-1] + ( cnt0[j] - cnt0[p-1] ) * ( cnt1[j] - cnt1[p-1] ) ),表示不快乐值为i个马厩中放j匹马与i-1个马厩中放j-p匹马+第i个马厩中放p匹的最小值
注意点:无
以下为AC代码:
链接:http://acm.timus.ru/problem.aspx?space=1&num=1167
思路:动态规划,设计状态dp[i][j],表示第i个马厩中放j值马时,不快乐值的最小值,状态转移方程dp[i][j] = min ( dp[i][j], dp[i-1][p-1] + ( cnt0[j] - cnt0[p-1] ) * ( cnt1[j] - cnt1[p-1] ) ),表示不快乐值为i个马厩中放j匹马与i-1个马厩中放j-p匹马+第i个马厩中放p匹的最小值
注意点:无
以下为AC代码:
ID | Date | Author | Problem | Language | Judgement result | Test # | Execution time | Memory used |
---|---|---|---|---|---|---|---|---|
6254535 | 16:32:06 19 May 2015 | luminous11 | 1167. Bicolored Horses | G++ 4.9 C++11 | Accepted | 0.171 | 1 386 KB |
/* *********************************************** *# @Author : Luminous11 (573728051@qq.com) *# @Date : 2015-05-19 13:31:22 *# @Link : http://blog.csdn.net/luminous11 *********************************************** */ #include <bits/stdc++.h> #define clr(a, v) memset( a , v , sizeof(a) ) using namespace std; const double eps = 1e-10; const double pi = acos(-1.0); int num[505]; int cnt0[505]; int cnt1[505]; int dp[505][505]; //dp[i][j]表示第i个马厩中放第j只马的最小值 int main() { //ios::sync_with_stdio ( false ); int k, n; while ( scanf ( "%d%d", &n, &k ) != EOF ){ memset ( num, 0, sizeof ( num ) ); memset ( cnt0, 0, sizeof ( cnt0 ) ); memset ( cnt1, 0, sizeof ( cnt1 ) ); for ( int i = 1; i <= n; i ++ ){ scanf ( "%d", &num[i] ); if ( num[i] ){ cnt1[i] = cnt1[i-1] + 1; cnt0[i] = cnt0[i-1]; } else{ cnt1[i] = cnt1[i-1]; cnt0[i] = cnt0[i-1] + 1; } } memset ( dp, 0x3f3f3f3f, sizeof ( dp ) ); dp[0][0] = 0; for ( int i = 1; i <= k; i ++ ){ for ( int j = 1; j <= n; j ++ ){ for ( int p = 1; p <= j; p ++ ){ dp[i][j] = min ( dp[i][j], dp[i-1][p-1] + ( cnt0[j] - cnt0[p-1] ) * ( cnt1[j] - cnt1[p-1] ) ); } } } printf ( "%d\n", dp[k] ); } return 0; }
相关文章推荐
- Ural 1167 Bicolored Horses
- URAL 1167 Bicolored Horses dp练习
- URAL 1167
- URAL 1167
- Ural 1167. Bicolored Horses DP
- URAL -1167 Bicolored Horses
- Ural 1167 双色马
- URAL 1167 Bicolored Horses(DP)
- URAL 1167. Bicolored Horses dp
- 递推DP URAL 1167 Bicolored Horses
- 【Ural1167】 Bicolored Horses——基础Dp
- Ural 1167 Bicolored Horses (DP)
- ural 1223. Chernobyl’ Eagle on a Roof
- 九度OJ 1167:数组排序 (排序)
- URAL 1205 By the Underground or by Foot?
- ural 1246. Tethered Dog
- URAL 1684 Jack's Last Word
- URAL 1130 Nikifor's Walk
- 【HDU3294,URAL1294】manacher算法
- ural 1251. Cemetery Manager