Codeforces Round #363 (Div. 2) C Vacations

来源:互联网 发布:达尔朗 知乎 编辑:程序博客网 时间:2024/06/09 19:44

先爆搜一发,tle,然后改成记忆化搜索,就一直wa这里写图片描述
http://blog.csdn.net/keyboarderqq/article/details/51960464
看了大佬代码,发现我少写一个状态。。。相比dp,记忆化搜索还是比较好写的,思路也不难。

#include <bits/stdc++.h>using namespace std;const int MAXN = 110;int num[MAXN],n;int dp[MAXN][4];int dfs(int cnt, int pre){    if(cnt == n)        return 0;    if(dp[cnt][pre] != -1)        return dp[cnt][pre];    int ret = 1000;    ret = min(ret,dfs(cnt+1,0)+1);    for(int i = 1; i <= 2; ++i)    {        if(i == pre) continue;        if(!(i&num[cnt])) continue;        ret = min(ret,dfs(cnt+1,i));    }    return dp[cnt][pre] = ret;}int main(){    ios::sync_with_stdio(false);    cin >>n;    memset(dp,-1,sizeof(dp));    for(int i = 0; i < n; ++i)        cin >> num[i];    cout << dfs(0,0) << endl;    return 0;}
阅读全文
0 0
原创粉丝点击