poj 2033 Alphacode

原创 2015年07月06日 18:23:44

确定第i+2 个元素与第i个元素和第i+1的元素的关系即可

/*
#include<iostream>
#include<string.h>
#include<math.h>
#include<fstream>
#include<algorithm>
#include<stdio.h>
#include<queue>
#include<vector> 
#define MAXSIZE 100
using namespace std;
typedef long long int ll;
ll a = 0;
int dat[100000010]; 
int dp[10000010];
int ind = 0;
void getEverynum()
{
    while(a)
    {
        int t = a % 10;
        dat[ind++] = t;
        a = a / 10;
    } 
}
int main()
{
    freopen("data_2033.txt","r",stdin);
    while(true)
    {
        ind = 1;
        memset(dat, 0, sizeof(dat));
        memset(dp, 0, sizeof(dp));
        scanf("%d", &a);
        if (a == 0)
        {
            break;
        }
        getEverynum();
        //dp[1] = 1;
        for (int i = 1; i < ind; i++)
        {
            if (dat[i + 1] < '7')
            {
                dp[i + 1] = dp[i] + 2;
                i += 1;
            }else
            {
                dp[i + 1] = max (dp[i] + 1, dp[i - 1] + 2);
            }
        }
        printf("%d\n", dp[ind]);
    }

    return 0;
}*/

#include<iostream>
#include<string.h>
#include<math.h>
#include<fstream>
#include<algorithm>
#include<stdio.h>
#include<queue>
#include<vector> 
#define MAXSIZE 100
using namespace std;

int dp[100010];
int main()
{
    //freopen("data_2033.txt","r",stdin);
    char s[100010];
    while(true)
    {
        scanf("%s", s);
        if (s[0] == '0')
        {
            break;
        }
        dp[0] = 1;
        dp[1] = 1;
        for (int i = 2; i <= strlen(s); i++)
        {
            dp[i] = 0;
            if (s[i - 1] != 48)
            {
                dp[i] += dp[i - 1];
            }
            if (s[i - 1] - 48 + s[i - 2] * 10 - 480 <= 26 && s[i - 2] != 48)
            {
                dp[i] += dp[i - 2];
            }
        }
        printf("%d\n", dp[strlen(s)]);
    }

    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

poj2033------Alphacode

http://poj.org/problem?id=2033         这是一道DP的题,但是DP我还不会,所以被我当做找规律做了。       &#...

poj 2033 : Alphacode(DP)

这道题的题意大概是这样的:给出一个字符串,如果将字母表中的26个字母依次映射成数字1-26,这样便形成一个密码。学过密码学就知道,这是一个简单的替代密码不过似乎并不是那么好用,虽然加密的确很方便,可是...

poj 2033 DP

题目: Alphacode Time Limit: 1000MS        Memory Limit: 30000K Total Submissions: 9788       &...

poj2033 简单dp

Alphacode Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12136   Acc...

hdu 2033 人见人爱A+B (java)

问题: 在for循环时习惯用元素i,以至于换成别的时老是用i,在每次for循环时请多注意该循环的元素是否一致。 在m,y有值的情况下习惯性将它当零直接赋值了,请注意!! 人见人爱A+...

[2033 ] :人见人爱A+B

人见人爱A+B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

1001. Alphacode

InputInput will consist of multiple input sets. Each set will consist of a single line of digits rep...

从Alphacode看斐波那契数列与线性动态规划

Alice and Bob need to send secret messages to each other and are discussing ways to encode their mes...

动态规划实例:"Alphacode" From Sicily 1001

动态规划实例之 Alphacode 1.问题描述:      Alphacode 题目描述 2.问题背景:  动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变...

[sicily]1001. Alphacode

1001. Alphacode Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Alice and Bob nee...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)