RQNOJ 题目273 马棚问题(DP)
2015-09-20 18:00
246 查看
PID273
/ 马棚问题☆
提交你的代码
查看讨论和题解
![](http://www.rqnoj.cn/static/images/blank.png)
5秒前
我的状态
已通过
2015-09-20 17:51:21
运行耗时:1849 ms
运行内存:13252 KB
查看最后一次评测记录
![](http://www.rqnoj.cn/static/img/36_lightgrey_circle_status.png)
![](http://www.rqnoj.cn/static/images/static.png)
质量 7
题目评价
质量
7
★★★★★
★★★★☆
★★★☆☆
★★☆☆☆
★☆☆☆☆
66.6%
0%
0%
0%
33.3%
★
★
★
★
☆
![](http://www.rqnoj.cn/static/images/button-check.png)
通过人数 534 / 1087
通过统计
最短耗时
200ms
最小内存
0KB
![](http://www.rqnoj.cn/static/images/tag.png)
动态规划
题目标签
类型
动态规划
题目描述
每天,小明和他的马外出,然后他们一边跑一边玩耍。当他们结束的时候,必须带所有的马返回马棚,小明有K个马棚。他把他的马排成一排然后跟随它走向马棚,因为他们非常疲劳,小明不想让他的马做过多的移动。因此他想了一个办法:将马按照顺序放在马棚中,后面的马放的马棚的序号不会大于前面的马放的马棚的序号。而且,他不想他的K个马棚中任何一个空置,也不想任何一匹马在外面。已知共有黑、白两种马,而且它们相处得并不十分融洽。如果有i个白马和j个黑马在一个马棚中,那么这个马棚的不愉快系数将是i*j。所有k个马棚不愉快系数的和就是系数总和。确定一种方法把n匹马放入k个马棚,使得系数总和最小。
输入格式
输入:在第一行有两个数字:n(1≤n≤500)和k(1≤k≤n)。在接下来的n行是n个数。在这些行中的第i行代表队列中的第i匹马的颜色:1意味着马是黑色的,0意味着马是白色的。
输出格式
输出:只输出一个单一的数字,代表系数总和可能达到的最小值。
样例输入样例输出
提交题目
![](http://www.rqnoj.cn/static/images/language.png)
C++ Language
ac代码
/ 马棚问题☆
提交你的代码
查看讨论和题解
![](http://www.rqnoj.cn/static/images/blank.png)
5秒前
我的状态
已通过
2015-09-20 17:51:21
运行耗时:1849 ms
运行内存:13252 KB
查看最后一次评测记录
![](http://www.rqnoj.cn/static/img/36_lightgrey_circle_status.png)
![](http://www.rqnoj.cn/static/images/static.png)
质量 7
题目评价
质量
7
★★★★★
★★★★☆
★★★☆☆
★★☆☆☆
★☆☆☆☆
66.6%
0%
0%
0%
33.3%
★
★
★
★
☆
![](http://www.rqnoj.cn/static/images/button-check.png)
通过人数 534 / 1087
通过统计
最短耗时
200ms
最小内存
0KB
![](http://www.rqnoj.cn/static/images/tag.png)
动态规划
题目标签
类型
动态规划
题目描述
每天,小明和他的马外出,然后他们一边跑一边玩耍。当他们结束的时候,必须带所有的马返回马棚,小明有K个马棚。他把他的马排成一排然后跟随它走向马棚,因为他们非常疲劳,小明不想让他的马做过多的移动。因此他想了一个办法:将马按照顺序放在马棚中,后面的马放的马棚的序号不会大于前面的马放的马棚的序号。而且,他不想他的K个马棚中任何一个空置,也不想任何一匹马在外面。已知共有黑、白两种马,而且它们相处得并不十分融洽。如果有i个白马和j个黑马在一个马棚中,那么这个马棚的不愉快系数将是i*j。所有k个马棚不愉快系数的和就是系数总和。确定一种方法把n匹马放入k个马棚,使得系数总和最小。
输入格式
输入:在第一行有两个数字:n(1≤n≤500)和k(1≤k≤n)。在接下来的n行是n个数。在这些行中的第i行代表队列中的第i匹马的颜色:1意味着马是黑色的,0意味着马是白色的。
输出格式
输出:只输出一个单一的数字,代表系数总和可能达到的最小值。
样例输入样例输出
提交题目
![](http://www.rqnoj.cn/static/images/language.png)
C++ Language
ac代码
#include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> using namespace std; #define INF 0x3f3f3f3f int dp[505][505]; int b[505],w[505]; /*int fun(int x,int y) { return (b[y]-b[x])*(w[y]-w[x]); }*/ int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { // for() b[0]=w[0]=0; int i,j,k; for(i=0;i<=n;i++) for(j=0;j<=m;j++) dp[i][j]=INF; dp[0][0]=0; for(i=1;i<=n;i++) { int x; scanf("%d",&x); if(x) { b[i]=b[i-1]+1; w[i]=w[i-1]; } else { w[i]=w[i-1]+1; b[i]=b[i-1]; } dp[i][1]=b[i]*w[i]; } for(j=2;j<=m;j++) { for(i=j;i<=n;i++) { for(k=j-1;k<=i-1;k++) { int temp1,temp2; temp1=b[i]-b[k]; temp2=w[i]-w[k]; dp[i][j]=min(dp[i][j],dp[k][j-1]+temp1*temp2); } } } printf("%d\n",dp [m]); } }
相关文章推荐
- hdu 1302 The Snail
- HTML+CSS页面滚动效果处理
- U3D 长按加速 使用道具
- 论写代码注释的重要性
- Oracle补丁术语介绍
- 关于 jQuery 中的 $.data() 方法和 jQuery 对象上的data 方法
- 实习
- SQL Server中死锁的查询和处理
- [LeetCode] Contains Duplicate
- 细数银行7大手续费 这些冤枉钱别再交了
- 字符串函数
- bat 初试
- 你也可以拿来用的JDBC操作
- Tarena - 数组
- shell快捷键
- 利用UIDynamicanimation实现UIView布局弹簧效果
- C++中CString,int,string,char*之间的转换
- Entity Framework学习三:查询、插入、更新和删除操作
- Java的虚拟机存储 堆栈与GC概要
- IOS开发之免费证书+不越狱真机调试