2019湘潭校赛 H(dp)
题目传送
dp是常规的;\(m^2\)的预处理:把位置存进vector然后\(O(1)\)算出想要的;WA点:要注意特意设置一下val[i][v.size()]=0
,即全天都放鸽子则花费时间为0.
#include <bits/stdc++.h>
using namespace std;
int T, n, m, d, ans;
int val[205][205], dp[205][205];
char s[205];
int main() {
for (scanf("%d", &T); T; T--) {
memset(val, 0x3f, sizeof val);
memset(dp, 0x3f, sizeof dp);
scanf("%d %d %d", &n, &m, &d);
for (int i = 1; i <= n; i++) {
scanf("%s", s + 1);
vector<int> v;
for (int j = 1; j <= m; j++) {
if (s[j] == '1') {
v.push_back(j);
}
}
val[i][v.size()] = 0;
for (int j = 0; j < v.size(); j++) {
for (int k = j; k < v.size(); k++) {
int l = v[j], r = v[k];
int angry = v.size() - (k - j + 1);
val[i][angry] = min(val[i][angry], r - l + 1);
}
}
}
for (int i = 0; i <= d; i++)
dp[0][i] = 0;
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= d; j++) {
for (int k = 0; k <= j; k++)
if (val[i][k] < 0x3f3f3f3f && dp[i - 1][j - k] < 0x3f3f3f3f)
dp[i][j] = min(dp[i][j], dp[i - 1][j - k] + val[i][k]);
}
}
ans = 0x3f3f3f3f;
for (int i = 0; i <= d; i++)
ans = min(ans, dp[n][i]);
printf("%d\n", ans);
}
}
2019湘潭校赛 H(dp)的更多相关文章
- 2019湘潭校赛 G(并查集)
要点 题目传送 题目本质是每个点必属于两个集合中的一个,伴随的性质是:如果一个人说别人true,则他们一定属于同一阵营:如果说别人fake,一定不属于同一阵营. 每个点拆为\(i\)和\(i + n\ ...
- 2019湘潭校赛 E(答案区间维护)
题目传送 思路是始终维护西瓜数量的区间,即L代表目前可以达到的最少的,R是最多的,然后判断一下. #include <bits/stdc++.h> using namespace std; ...
- 2019沈阳网赛树形dp
https://nanti.jisuanke.com/t/41403 2019沈阳网络赛D题 树形dp.一棵树,求任意两个点的距离之和.u-v和v-u算两次.两点之间的距离分为三类,模3等于0,1,2 ...
- PKU2018校赛 H题 Safe Upper Bound
http://poj.openjudge.cn/practice/C18H 题目 算平均数用到公式\[\bar{x}=\frac{x_1+x_2+x_3+\cdots+x_n}{n}\] 但如果用in ...
- GDUT 校赛01 dp
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABT8AAAILCAIAAAChHn9YAAAgAElEQVR4nOy9f4il13nneUGgxrRYux ...
- ZOJ3956 ZJU2017校赛(dp)
题意:给出n对(h,c) 记 sumh为选出的h的总和 sumc为选出的c的总和 你可以从中选出任意多对(可以不选) 使得 sumh^2-sumh*sumc-sumc^2 最大 输出最大值 输入 ...
- hdu 4028 2011上海赛区网络赛H dp+map离散
一开始用搜索直接超时,看题解会的 #include<iostream> #include<cstdio> #include<map> #include<cst ...
- GDUT 校赛02 dp回文串
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABSkAAAIhCAIAAAAtmainAAAgAElEQVR4nOzdfaxkd33n+ZJacstqa3 ...
- 2019浙大校赛--E--Potion(签到水题)
一丢丢思维就ok 题目大意: 魔法师要煮药,有n个等级的药,所需要的药物为a1,a2...an,意为第n级需要多少药物,下一行为库存的不同等级药物,药物可降级使用不可升级. 思路:从高级药物开始解,把 ...
随机推荐
- matlab的数组
1.定义:同一类型的元素的集合. 2.生成:用[]创建,元素之间用逗号或者空格隔开. 第一例: >>a=[1,2,3,4] a = 1 2 3 4 注意,取矩阵的某几列,是这样a(:,2: ...
- python3 - 写一个生成双色球号码的一个程序,生成的号码写到文件里面
写一个生成双色球号码的一个程序,生成的号码写到文件里面 # 中奖号码由6个红色球号码和1个蓝色球号码组成 # 篮球范围:01-16 # 红球范围:01-33 def swq(num): random. ...
- 在node.js中建立你的第一个HTTp服务器
这一章节我们将从初学者的角度介绍如何建立一个简单的node.js HTTP 服务器 创建myFirstHTTPServer.js //Lets require/import the HTTP modu ...
- listen 80
Facebook Quietly Created New Email Addresses For a company that made its name by building one of the ...
- erlang的map基本使用
maps 适用于需要在运行时改变数据结构(record则不行)的场景,可以动态增加key 数据量不宜过大,具体多大没有实际数据, maps from_list 如果list表很长,则相应的耗时时间会 ...
- 【LeetCode】063. Unique Paths II
题目: Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. H ...
- python爬虫知识点总结(十)分析Ajax请求并抓取今日头条街拍美图
一.流程框架
- HTML5设计原理
HTML5是Web标准的巨大飞跃,它为什么要包含那些东西,它背后的设计原则是什么? <JavaScript DOM编程艺术>和<HTML5 For Web Designer>作 ...
- Eclipse设置:背景与字体大小、xml文件中字体大小调整和自动提示 SVN插件安装
Eclipse中代码编辑背景颜色修改: 代码编辑界面默认颜色为白色.对于长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以改变workspace的背景色,可以使眼睛舒服一些.设置方法如下: 1.打开 ...
- struts2的使用知识点
最开始学习java的时候学习过struts,但是对配置和struts的理解深度不够,现在工作虽然再用,但是自己搭建环境和使用心得始终很零散,所以现在决定重新理一遍,有条理的学习一下struts. 至于 ...