CodeForces #363 div2 Vacations DP
题目链接:C. Vacations
题意:现在有n天的假期,对于第i天有四种情况:
0 gym没开,contest没开
1 gym没开,contest开了
2 gym开了,contest没开
3 gym开了,contest开了
所有题主每天可能就有三种选择,rest,do sport,do contest。题主拒绝连续两天做同样的事情。现在请你安排他的假期,使得题主休息的天数最少。
思路:tag:dp
n=100的dp和暴力有什么区别... ...
第i天的三种选择得到的最少休息天数,只需要知道第i-1天的对应(活动不重复)选择得到的最少休息天数。
感觉这种dp初始化比状态转移方程还要麻烦~~~
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<map>
#include<queue>
#include<iostream>
#include<vector>
#define maxn 210
#define inf 9999999
using namespace std; ///不能连续做两天一样的活动 安排使其休息最少的天数 问最少休息的天数 int val[maxn];
int dp[maxn][5]; /// 0 rest 1 sport 2 contest int main() {
// freopen("in.cpp", "r", stdin);
int n;
while(~scanf("%d", &n)) {
for (int i=1; i<=n; ++i) {
scanf("%d", &val[i]);
} for (int i=1; i<=n; ++i) {
dp[i][0] = inf;
dp[i][1] = inf;
dp[i][2] = inf;
} dp[1][0] = 1;
if (val[1] == 2 || val[1] == 3) {
dp[1][1] = 0;
}
if (val[1] == 1 || val[1] == 3) {
dp[1][2] = 0;
} for (int i=2; i<=n; ++i) {
dp[i][0] = min(dp[i-1][0], min(dp[i-1][1], dp[i-1][2]))+1;
if (val[i] == 2 || val[i] == 3) {
dp[i][1] = min(dp[i-1][0], dp[i-1][2]);
}
if (val[i] == 3 || val[i] == 1) {
dp[i][2] = min(dp[i-1][1], dp[i-1][0]);
}
} int ans = min(dp[n][0], min(dp[n][1], dp[n][2]));
printf("%d\n", ans);
}
return 0;
}
CodeForces #363 div2 Vacations DP的更多相关文章
- codeforces #round363 div2.C-Vacations (DP)
题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...
- codeforces round367 div2.C (DP)
题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...
- codeforces 369 div2 C dp
http://codeforces.com/contest/711 C. Coloring Trees time limit per test 2 seconds memory limit per t ...
- Codeforces#363 Div2
A题: 题意:给定一些数,给定一些往左走和往右走的操作,问是否能够相遇,如果相遇请求出相遇时间 分析:对于相邻两个数,如果大的往左,小的往右就能够相遇,否则不能相遇,在求出所有相遇当中的第一次相遇即可 ...
- Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)
Problem Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...
- Codeforces #180 div2 C Parity Game
// Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...
- Codeforces #541 (Div2) - E. String Multiplication(动态规划)
Problem Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...
- Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)
Problem Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...
- Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)
Problem Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...
随机推荐
- VS工具--GhostDoc
一.介绍: GhostDoc是Visual Studio的一个免费插件,可以帮助开发人员编写XML格式的注释文档. C#中XML格式的文档注释好处多多:Visual Studio会在很多地 ...
- JavaScript、jQuery、fish的遍历方法(each、forEach)总结
起因 在工作中,需要在遍历的dom中找到第一个并做下操作然后退出遍历,我首先想到了用each方法,但由于无论是公用的jQuery组件还是公司的fish组件.我都忘记了怎么去退出遍历,所以就有了这篇帖子 ...
- windows平台解决quick3.5final + sublimeText3 模拟器找不到的问题
下载了quick3.5 准备在sublime上进行开发,结果发现quick3.5中的player模拟器不见了,原来模拟器移到了quick引擎主目录下的 /tools/simulator/runtime ...
- [SAP ABAP开发技术总结]ABAP调优——Open SQL优化
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- fineUI ueditor(可能别的editor也有)配置注意事项
1.把ueditor配置在弹窗里的一些小问题 这种弹窗的原理 如果把ueditor放进这个小窗口里 放进items里(以下截图还没有放) 那么配置的ueditor是不可用的 就好像enable=fal ...
- em和rem
em是一个相对值,是相对于父元素的值. body{ font-size:62.5%;/*10/16*100%=62.5%*/ } h1{ font-size:2.4em;/*2.4em*10=24px ...
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) E. Santa Claus and Tangerines
E. Santa Claus and Tangerines time limit per test 2 seconds memory limit per test 256 megabytes inpu ...
- k近邻
k近邻(k-NearestNeighbor)算法简称kNN.基本思想简单直接,对于一个需要分类的数据实例x,计算x与所有已知类别的样本点在特征空间中的距离.取与x距离最近的k个样本点,统计这些样本点所 ...
- 利用CSS制作三角形
在我们看到类似于这样的图片时: 我们一般都会想,哎,这还不简单,用一张图片就可以了. 的确,用图片可以很轻松地做到.不过我们接下来要讨论的是: 如何用css也作出这样的效果. 首先,我们来定义一个 ...
- NSScanner知悉 (转)
http://blog.csdn.net/likendsl/article/details/7974761 NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的 ...