[宁波集训]0827Day1
1、\(CF771D\ Bear\ and\ Company\)(原题,比赛时改为多组数据)
一道毒瘤\(dp\)题,\(dp[i][j][k][0/1]\)表示有\(i\)个\(V\),有\(j\)个\(K\),有\(k\)个\(X\)所用的最小移动数
那么可以得出状态转移方程:
\]
\]
\]
#include<bits/stdc++.h>
using namespace std;
int sumv[1000000],sumk[1000000],T,sumx[1000000],dp[200][200][200][2],V[10000],K[10000],X[10000];
char y[100000],x[100000];
int main(){
scanf("%d",&T);
while (T--){
memset(dp,0x3f,sizeof(dp));
dp[0][0][0][0]=0;
dp[0][0][0][1]=0;
scanf("\n%s",x);
int N=strlen(x);
for (int i=0;i<N;i++){
sumv[i]=sumv[i-1];
sumk[i]=sumk[i-1];
sumx[i]=sumx[i-1];
if (x[i]=='V'){
sumv[i]=sumv[i-1]+1;
V[sumv[i]]=i;
}else if (x[i]=='K'){
sumk[i]=sumk[i-1]+1;
K[sumk[i]]=i;
}else{
sumx[i]=sumx[i-1]+1;
X[sumx[i]]=i;
}
}
for (int i=0;i<=sumv[N-1];i++){
for (int j=0;j<=sumk[N-1];j++){
for (int k=0;k<=sumx[N-1];k++){
if (i+j+k==0){
continue;
}
if (i) dp[i][j][k][1]=min(dp[i][j][k][1],min(dp[i-1][j][k][0],dp[i-1][j][k][1])+V[i]-(i-1+min(j,sumk[V[i]])+min(k,sumx[V[i]])));
if (j) dp[i][j][k][0]=min(dp[i][j][k][0],dp[i][j-1][k][0]+K[j]-(j-1+min(i,sumv[K[j]])+min(k,sumx[K[j]])));
if (k) dp[i][j][k][0]=min(dp[i][j][k][0],min(dp[i][j][k-1][0],dp[i][j][k-1][1])+X[k]-(k-1+min(j,sumk[X[k]])+min(i,sumv[X[k]])));
}
}
}
printf("%d\n",min(dp[sumv[N-1]][sumk[N-1]][sumx[N-1]][0],dp[sumv[N-1]][sumk[N-1]][sumx[N-1]][1]));
}
}
[宁波集训]0827Day1的更多相关文章
- ZOJ3541 The Last Puzzle
这道题是宁波集训的那道题,讲课时轻描淡写吧(应该是我听课不认真罢了),所以这样就要靠自己的理解了, dp[i][j][0]表示从左端点开始完成整个区间的最小花费dp[i][j][1]表示从右端点开始完 ...
- QDEZ集训笔记【更新中】
这是一个绝妙的比喻,如果青岛二中的台阶上每级站一只平度一中的猫,差不多站满了吧 自己的理解 [2016-12-31] [主席树] http://www.cnblogs.com/candy99/p/61 ...
- 宁波uber优歩司机注册教程 UBER宁波司机注册指南!
自2012年Uber开始向全球进军以来,目前已进入全球56个国家和地区的市场,在全球超过270个城市提供服务, 而Uber公司的估值已高达412亿美元. [目前开通Uber优步叫车服务的中国城市] ...
- Uber优步宁波司机注册正式开始啦! UBER宁波司机注册指南!
自2012年Uber开始向全球进军以来,目前已进入全球56个国家和地区的市场,在全球超过270个城市提供服务, 而Uber公司的估值已高达412亿美元. [目前开通Uber优步叫车服务的中国城市] ...
- 2015UESTC 暑假集训总结
day1: 考微观经济学去了…… day2: 一开始就看了看一道题目最短的B题,拍了半小时交了上去wa了 感觉自己一定是自己想错了,于是去拍大家都过的A题,十分钟拍完交上去就A了 然后B题写了一发暴力 ...
- JS省队集训记
不知不觉省队集训已经结束,离noi也越来越近了呢 论考前实战训练的重要性,让我随便总结一下这几天的考试 Day 1 T1 唉,感觉跟xj测试很像啊?meet in middle,不过这种题不多测是什么 ...
- 2013ACM暑假集训总结-致将走上大三征途的我
回想起这个暑假,从开始与雄鹰一起的纠结要不要进集训队,与吉吉博博组队参加地大邀请赛,害怕进不了集训队.当时激励我月份开始接触的,记得当时在弄运动会来着,然后就问了雄鹰一些输入输出的东西,怀着满心的期待 ...
- 至芯FPGA培训中心-1天FPGA设计集训(赠送FPGA开发板)
至芯FPGA培训中心-1天FPGA设计集训(赠送开发板) 开课时间2014年5月3日 课程介绍 FPGA设计初级培训班是针对于FPGA设计技术初学者的课程.课程不仅是对FPGA结构资源和设计流程的描述 ...
- 2014年CCNU-ACM暑期集训总结
2014年CCNU-ACM暑期集训总结 那个本期待已久的暑期集训居然就这种.溜走了.让自己有点措手不及.很多其它的是对自己的疑问.自己是否能在ACM这个领域有所成就.带着这个疑问,先对这个暑假做个总结 ...
随机推荐
- 【Web】网页清除浮动的方法
网页中,经常用浮动的div来布局,但是会出现父元素因为子元素浮动引起内部高度为0的问题,为了解决这个问题,我们需要清除浮动,下面介绍4中清除浮动的方法. 在CSS中,clear属性用户清除浮动,语法: ...
- 【Web】前端文件上传,带进度条
最近做项目发现,在文件上传的过程中,增加进度条,能大大改善用户体验.本例介绍带进度条的文件上传 环境搭建 参考:[Java]JavaWeb文件上传和下载. 原生ajax上传带进度条 <%@ pa ...
- spring 学习 一 spring 介绍
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架. Spring ...
- 使用 kbmmw 的ORM开发纯REST数据库访问服务
运行环境: WIN 10 X64 delphi 10.2.2 kbmmw 5.05.11 Firefox 58.0.2 今天使用最新的kbmmw 版本做一个基于ORM的纯数据库访问的REST 服务器 ...
- python 中 __name__ 的使用
1. 如果模块是被导入,__name__的值为模块名字2. 如果模块是被直接执行,__name__的值为’__main__’ Py1.py #!/usr/bin/env python def te ...
- 2019.01.21 NOIP训练 可持久化序列【模板】(可持久化treap)
传送门 题意简述:支持在把某个数插入到某版本的第k个位置,删除某版本第k个数,询问第k个数. 思路:用可持久化treaptreaptreap维护区间第kkk个位置的数是啥就可以了. 代码
- pat -1004(树的遍历)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805521431773184 思路: (1)用vector记录每 ...
- mysql学习之路_外键
回顾4 连接查询: 连接多张表到一起,不管记录数如何,字段数一定会增加. 分类:内连接,外连接.自然连接,交叉连接, 交叉连接:cross join (笛卡尔积) 内连接:inner join,左右两 ...
- python:浅拷贝与深拷贝
1,“相等”与“相同” 我们先赋值三个变量a, b, c: a = [1, 2, [1, 2]] b = [1, 2, [1, 2]] c = a 判断一下‘相等’: a == b 返回 True ...
- vue2.0路由-路由嵌套
vue一个重要的方面就是路由,下面是自己写的一个路由的例子: 1.引入依赖库就不必再说 2.创建组件 两种写法 第一种:间接 <template id="home"> ...