Codeforces Round #612 (Div. 2)C. Garland
第四次写题解,请多指教!
http://codeforces.com/contest/1287/problem/C题目链接
题目大意是有一个数字串挂有1-n n个数字,现在上面缺失了一些数字,让你找出使得复杂度最低的填补方式,求出最低复杂度。
数据量只有100;显然可以用dp来做;创建一个四维dp[i][j][k][2] i表示数组下标,j表示剩余偶数,k表示剩余奇数最后一维存当前下标要取奇数还是偶数;
显然状态转移方程可以写成
if(a[i]==){
dp[i][j][k][]=min(dp[i-][j][k+][]+,dp[i-][j][k+][]);
dp[i][j][k][]=min(dp[i-][j+][k][],dp[i-][j+][k][]+);
}
else if(a[i]%){
dp[i][j][k][]=min(dp[i-][j][k+][]+,dp[i-][j][k+][])
}
else {
dp[i][j][k][]=min(dp[i-][j+][k][],dp[i-][j+][k][]+);
}
最后的答案将会是奇书偶数剩余量都为0的情况第n位取奇数或者偶数时较小的那个上代码
:
#include<bits/stdc++.h>
using namespace std;
int dp[][][][];
int a[];
int main()
{
int n;
cin>>n;
for(int i=;i<=n;i++) cin>>a[i];
int ou,qi;
if(n%){ou=n/;qi=n/+;}
else{ou=n/;qi=n/;}
for(int i=;i<=n+;i++)
for(int j=;j<=ou+;j++)
for(int k=;k<=qi+;k++)
dp[i][j][k][]=dp[i][j][k][]=;
dp[][ou][qi][]=dp[][ou][qi][]=;
for(int i=;i<=n;i++)
{
for(int j=;j<=ou;j++)
{
for(int k=;k<=qi;k++)
{
if(a[i]==){
dp[i][j][k][]=min(dp[i-][j][k+][]+,dp[i-][j][k+][]);
dp[i][j][k][]=min(dp[i-][j+][k][],dp[i-][j+][k][]+);
}
else if(a[i]%)
{
dp[i][j][k][]=min(dp[i-][j][k+][]+,dp[i-][j][k+][]);
}
else
{
dp[i][j][k][]=min(dp[i-][j+][k][],dp[i-][j+][k][]+);
}
}
}
}
cout<<min(dp[n][][][],dp[n][][][]);
}
Codeforces Round #612 (Div. 2)C. Garland的更多相关文章
- 【codeforces】Codeforces Round #612 (Div. 2) C. Garland——DP
题目链接 贪心模拟了半天,最后放弃了 题意 给你一串从1−n1-n1−n的序列,其中部分未知(表示为0),补全序列使得相邻数值奇偶性相反的数量最少 相邻数值的奇偶性相反:两个相邻的两个数值,其中一个为 ...
- Codeforces Round #612 (Div. 2) 前四题题解
这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...
- Codeforces Round #612 (Div. 2)
https://codeforces.com/contest/1287/ A - Angry Students 题意:求A后面的P最长连续有几个? 题解:? int n; char s[200005] ...
- Codeforces Round #398 (Div. 2) C. Garland —— DFS
题目链接:http://codeforces.com/contest/767/problem/C 题解:类似于提着一串葡萄,用剪刀剪两条藤,葡萄分成了三串.问怎样剪才能使三串葡萄的质量相等. 首先要做 ...
- 【DFS】Codeforces Round #398 (Div. 2) C. Garland
设sum是所有灯泡的亮度之和 有两种情况: 一种是存在结点U和V,U是V的祖先,并且U的子树权值和为sum/3*2,且U不是根,且V的子树权值和为sum/3. 另一种是存在结点U和V,他们之间没有祖先 ...
- Codeforces Round #612 (Div. 2) (A-D)
直 接看所有A后面连续P的个数最大值 #include<cstring> #include<cstdio> #include<set> #include<io ...
- Codeforces Round #398 (Div. 2)
Codeforces Round #398 (Div. 2) A.Snacktower 模拟 我和官方题解的命名神相似...$has$ #include <iostream> #inclu ...
- Codeforces Round #535 (Div. 3) 题解
Codeforces Round #535 (Div. 3) 题目总链接:https://codeforces.com/contest/1108 太懒了啊~好久之前的我现在才更新,赶紧补上吧,不能漏掉 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
随机推荐
- python程序的打开运行方式
python程序的运行方式大致可以分为两种,一种是直接通过python解释器直接解释型运行,另外一种是先把python程序编译为二进制文件再运行. .源代码 -python源代码的文件以"p ...
- 二、linux-mysql -cmake方式安装mysql 5.5
1.安装解压cmake包 cmake软件cd /home/oldboy/tools/tar xf cmake-2.8.8.tar.gzcd cmake-2.8.8./configure#CMake ...
- 吴裕雄--天生自然 JAVA开发学习:多线程编程
class RunnableDemo implements Runnable { private Thread t; private String threadName; RunnableDemo( ...
- 《ECMAScript 6 入门教程 - 阮一峰著》学习笔记
在刷LeetCode的过程中看到很多新的语法糖,系统学习一下以便代码更加规范,美观,健壮.
- 关于Apache Commons-IO的使用
commons-io是一款处理io流的工具,封装了很多处理io流和文件的方法,可以大大简化我们处理io流和操作文件的代码.从common-io的官方使用文档可以看出,它主要分为工具类.尾端类.行迭代器 ...
- An internal error occurred during: "Redeploy".
原因:项目中JDK使用的版本与现在使用的JDK版本不同所致. 解决方法:右键选择项目>properties>java Build Path>Libraries 查看下面的JRE Sy ...
- 将list转成tree
using System;using System.Collections.Generic;using System.Linq; namespace Infrastructure{ /// <s ...
- python语法基础-基础-控制语句
############### if条件控制语句 ############### # 以下实例 x 为 0-99 取一个数,y 为 0-199 取一个数,如果 x>y 则输出 x,如 ...
- MySQL性能优化的21条最佳经验
英文原文:<Top 20+ MySQL Best Practices>,编译:陈皓 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只 ...
- HttpClient系统日志配置
详细介绍在:http://hc.apache.org/httpclient-3.x/logging.html 一般使用context logging基本够用,context logging解释原文如下 ...