第四次写题解,请多指教!

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的更多相关文章

  1. 【codeforces】Codeforces Round #612 (Div. 2) C. Garland——DP

    题目链接 贪心模拟了半天,最后放弃了 题意 给你一串从1−n1-n1−n的序列,其中部分未知(表示为0),补全序列使得相邻数值奇偶性相反的数量最少 相邻数值的奇偶性相反:两个相邻的两个数值,其中一个为 ...

  2. Codeforces Round #612 (Div. 2) 前四题题解

    这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...

  3. Codeforces Round #612 (Div. 2)

    https://codeforces.com/contest/1287/ A - Angry Students 题意:求A后面的P最长连续有几个? 题解:? int n; char s[200005] ...

  4. Codeforces Round #398 (Div. 2) C. Garland —— DFS

    题目链接:http://codeforces.com/contest/767/problem/C 题解:类似于提着一串葡萄,用剪刀剪两条藤,葡萄分成了三串.问怎样剪才能使三串葡萄的质量相等. 首先要做 ...

  5. 【DFS】Codeforces Round #398 (Div. 2) C. Garland

    设sum是所有灯泡的亮度之和 有两种情况: 一种是存在结点U和V,U是V的祖先,并且U的子树权值和为sum/3*2,且U不是根,且V的子树权值和为sum/3. 另一种是存在结点U和V,他们之间没有祖先 ...

  6. Codeforces Round #612 (Div. 2) (A-D)

    直 接看所有A后面连续P的个数最大值 #include<cstring> #include<cstdio> #include<set> #include<io ...

  7. Codeforces Round #398 (Div. 2)

    Codeforces Round #398 (Div. 2) A.Snacktower 模拟 我和官方题解的命名神相似...$has$ #include <iostream> #inclu ...

  8. Codeforces Round #535 (Div. 3) 题解

    Codeforces Round #535 (Div. 3) 题目总链接:https://codeforces.com/contest/1108 太懒了啊~好久之前的我现在才更新,赶紧补上吧,不能漏掉 ...

  9. 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 ...

随机推荐

  1. MongoDB 索引 .explain("executionStats")

    MongoDB干货系列2-MongoDB执行计划分析详解(3) http://www.mongoing.com/eshu_explain3 MongoDB之使用explain和hint性能分析和优化 ...

  2. linux 下c 链接so 库

    gcc -shared -fPIC -o libname.so  *.c  //生成so库 gcc main.c -om  -Lpath -lname //链接测试so 库 但是生成可执行程序执行时报 ...

  3. Spring Boot 默认的指标数据从哪来的?

    了解有关 Spring Boot 默认指标及其来源的更多信息. 您是否注意到 Spring Boot 和 Micrometer 为您的应用生成的所有默认指标?如果没有 - 您可以将 actuator  ...

  4. 对象数组和for循环遍历输出学生的信息

    public class Student { private int no; private String name; private int age; public Student(int no, ...

  5. mysql truncate 的问题

    问题是微信群里一伙计提的 `mysql truncate 空表都需要3 4秒,要优化解决` 一开始觉得这莫名其妙,因为作这种操作的都是后台运维,不是实时的对外服务,运维又不差这3秒 其反应trunca ...

  6. winform显示word、ppt和pdf,用一个控件显示

    思路:都以pdf的格式展示,防止文件拷贝,所以要把word和ppt转换为pdf:展示用第三方组件O2S.Components.PDFView4NET.dll,破解版的下载链接:https://pan. ...

  7. bzoj1076 奖励关(概率dp)(状态压缩)

    BZOJ 1076 [SCOI2008]奖励关 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须 ...

  8. openssl 密钥注意

    使用openssl生成的密钥,在对加密字符串进行数字签名的时候,程序一直报错,错误异常: algid parse error, not a sequence​ 其原因是因为,openssl生成的私钥没 ...

  9. BigDecimal不整除的一个异常java.lang.ArithmeticException

    转载地址:http://blog.csdn.net/jobjava/article/details/6764623 金额的数据类型是BigDecimal 通过BigDecimal的divide方法进行 ...

  10. python库之——sklearn

    机器学习库sklearn 官方documentation(资料)中分为不同的部分: 其中我们主要讲User Guide(机器学习算法理论介绍).API(程序实现方法): 一.User Guide ht ...