HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛
普通的数位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\n", tt, ans);
}
}
HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛的更多相关文章
- HDU 6154 CaoHaha's staff(2017中国大学生程序设计竞赛 - 网络选拔赛)
题目代号:HDU 6154 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6154 CaoHaha's staff Time Limit: 2000/1 ...
- HDU 6154 - CaoHaha's staff | 2017 中国大学生程序设计竞赛 - 网络选拔赛
/* HDU 6154 - CaoHaha's staff [ 构造,贪心 ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 题意: 整点图,每条线只能连每个方格的边或者对角线 问面积大于n的 ...
- HDU 6150 - Vertex Cover | 2017 中国大学生程序设计竞赛 - 网络选拔赛
思路来自 ICPCCamp /* HDU 6150 - Vertex Cover [ 构造 ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 题意: 给了你一个贪心法找最小覆盖的算法,构造一组 ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6156 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6156 题意:如题. 解法:数位DP,暴力枚举进制之后,就转化成了求L,R区间的回文数的个数,这个直接做 ...
- 【2017中国大学生程序设计竞赛 - 网络选拔赛】Palindrome Function
[链接]http://acm.hdu.edu.cn/showproblem.php?pid=6156 [题意] 已知函数f(x, k),如果10进制数x在k进制下是个回文数,那么f(x, k)值为k, ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6155 Subsequence Count 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6155 题意: 题解来自:http://www.cnblogs.com/iRedBean/p/73982 ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6152 Friend-Graph(暴力搜索)
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=6152 Problem Description It is well known that small ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6150 Vertex Cover 二分图,构造
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6150 题意:"最小点覆盖集"是个NP完全问题 有一个近似算法是说—每次选取度数最大 ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6154 CaoHaha's staff 思维
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6154 题意:在笛卡尔坐标系下,画一个面积至少为 n 的简单多边形,每次只能画一条边或者一个格子的对角 ...
随机推荐
- LaTeX技巧96:LaTeX 图片控制命令,位置控制
LaTeX技巧96:LaTeX 图片控制命令,位置控制 2012-04-05 17:25:44 zd0303 阅读数 28512更多 分类专栏: Latex LaTeX 控制图片的位置,就是加感叹 ...
- raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
转自:http://www.cnblogs.com/xiaobinglife/articles/10716605.html 一.Django数据同步过程中遇到的问题: 1.raise Improper ...
- (十六)Activitivi5之内置用户组(角色)设计表以及IdentityService
一.内置用户组(角色)设计表概念 用户和组(或者叫做角色),多对多关联,通过关联表实现 act_id_user 用户表: act_id_group 用户组表: act_id_membership 用户 ...
- (二)XML基础(2)
三.解析 服务端解析 JDK: DOM SAX JAXB java and xml Binding 开源(一般都是用开源的) ...
- Android 使用自定义Drawable 设置圆角矩形或者圆形图片
转自 Android Drawable 那些不为人知的高效用法 本文出自:[张鸿洋的博客] http://blog.csdn.net/lmj623565791/article/details/437 ...
- static的用法详解
一.静态类 [1] 仅包含静态成员. [2] 静态类的本质,是一个抽象的密封类,所以不能被继承,也不能被实例化.也就是说,不能使用 new 关键字创建静态类类型的变量. [4] 不能包含实例构造函数. ...
- CAN总线上的消息单帧某个信号的值计算(C#)
public static ulong GetMotorolaSignalValue(byte[] data, int startBit, int bitLength) { ; , j =; i ...
- 批量删除checkbox前台后台
<%@ page contentType="text/html;charset=UTF-8" %><%@ include file="/WEB-INF/ ...
- BeginInvoke异步线程
this.BeginInvoke(new Action(() => { dataGridView1.DataSource = BLLBillConsume.BllGetClearMarketLo ...
- nginx的so_keepalive和timeout相关小计
KeepAlive 这里的keepalive是TCP的探活机制: [root@ ~]# sysctl -a |grep tcp_keepalive net.ipv4.tcp_keepalive_tim ...