zoukankan      html  css  js  c++  java
  • HDU 6156

    普通的数位DP计算回文串个数

    /*
    HDU 6156 - Palindrome Function [ 数位DP ]  |  2017 中国大学生程序设计竞赛 - 网络选拔赛
    2-36进制下回文串个数
    */
    #include <bits/stdc++.h>
    using namespace std;
    #define LL long long
    int t, L, R, l, r, base;
    int dig[40], tmp[40];
    LL dp[40][40][40][2];
    LL DFS(int pos, int start, bool state, bool limit)
    {
        if (pos < 0) return state;
        if (!limit && dp[base][pos][start][state] != -1) return dp[base][pos][start][state];
        int end = (limit ? dig[pos] : base-1);
        LL res = 0;
        for (int i = 0; i <= end; i++)
        {
            tmp[pos] = i;
            if (pos == start && i == 0)
            {
                res += DFS(pos-1, start-1, state, limit && (i == end));
            }
            else if (state && pos < (start+1)/2)
            {
                res += DFS(pos-1, start, tmp[start-pos] == i, limit && (i == end));
            }
            else
            {
                res += DFS(pos-1, start, state, limit&&(i == end));
            }
        }
        if (!limit) dp[base][pos][start][state] = res;
        return res;
    }
    LL Cal(LL x)
    {
        int len = 0;
        while (x)
        {
            dig[len++] = x % base;
            x /= base;
        }
        return DFS(len-1, len-1, 1, 1);
    }
    LL solve()
    {
        LL num = (Cal(R) - Cal(L-1));
        return num*base + (R-L+1-num);
    }
    int main()
    {
        memset(dp, -1, sizeof(dp));
        scanf("%d", &t);
        for (int tt = 1; tt <= t; tt++)
        {
            scanf("%d%d%d%d", &L, &R, &l, &r);
            LL ans = 0;
            for (int i = l; i <= r; i++)
            {
                base = i;
                ans += solve();
            }
            printf("Case #%d: %lld
    ", tt, ans);
        }
    }
    

      

  • 相关阅读:
    移动应用跨平台之旅
    ReactNative之坑爹的在线安装
    关于拆箱装箱引发的类型转换报错
    Unity HDR (高动态范围 )
    Instruments如何看Mono内存分配
    Unity编辑器崩溃大全
    Unity3D获取手机存储空间
    关于构建AssetBundle哈希冲突的问题
    关于UnityWebRequest的超时讨论
    Wwise音频插件介绍
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/7399547.html
Copyright © 2011-2022 走看看