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 ...
随机推荐
- MongoDB 索引 .explain("executionStats")
MongoDB干货系列2-MongoDB执行计划分析详解(3) http://www.mongoing.com/eshu_explain3 MongoDB之使用explain和hint性能分析和优化 ...
- linux 下c 链接so 库
gcc -shared -fPIC -o libname.so *.c //生成so库 gcc main.c -om -Lpath -lname //链接测试so 库 但是生成可执行程序执行时报 ...
- Spring Boot 默认的指标数据从哪来的?
了解有关 Spring Boot 默认指标及其来源的更多信息. 您是否注意到 Spring Boot 和 Micrometer 为您的应用生成的所有默认指标?如果没有 - 您可以将 actuator ...
- 对象数组和for循环遍历输出学生的信息
public class Student { private int no; private String name; private int age; public Student(int no, ...
- mysql truncate 的问题
问题是微信群里一伙计提的 `mysql truncate 空表都需要3 4秒,要优化解决` 一开始觉得这莫名其妙,因为作这种操作的都是后台运维,不是实时的对外服务,运维又不差这3秒 其反应trunca ...
- winform显示word、ppt和pdf,用一个控件显示
思路:都以pdf的格式展示,防止文件拷贝,所以要把word和ppt转换为pdf:展示用第三方组件O2S.Components.PDFView4NET.dll,破解版的下载链接:https://pan. ...
- bzoj1076 奖励关(概率dp)(状态压缩)
BZOJ 1076 [SCOI2008]奖励关 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须 ...
- openssl 密钥注意
使用openssl生成的密钥,在对加密字符串进行数字签名的时候,程序一直报错,错误异常: algid parse error, not a sequence 其原因是因为,openssl生成的私钥没 ...
- BigDecimal不整除的一个异常java.lang.ArithmeticException
转载地址:http://blog.csdn.net/jobjava/article/details/6764623 金额的数据类型是BigDecimal 通过BigDecimal的divide方法进行 ...
- python库之——sklearn
机器学习库sklearn 官方documentation(资料)中分为不同的部分: 其中我们主要讲User Guide(机器学习算法理论介绍).API(程序实现方法): 一.User Guide ht ...