【2017中国大学生程序设计竞赛 - 网络选拔赛】Palindrome Function
【链接】http://acm.hdu.edu.cn/showproblem.php?pid=6156
【题意】
已知函数f(x, k),如果10进制数x在k进制下是个回文数,那么f(x, k)值为k,否则为1
现给出l, r, x, y, 求出∑∑f(i, j) (l<=i<=r) (x<=j<=y)
【题解】
【错的次数】
【反思】
【代码】
#include <bits/stdc++.h>
#define int long long
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)
#define ri(x) scanf("%d",&x)
#define rl(x) scanf("%lld",&x)
#define rs(x) scanf("%s",x+1)
#define oi(x) printf("%d",x)
#define ol(x) printf("%lld",x)
#define oc putchar(' ')
#define os(x) printf(x)
#define all(x) x.begin(),x.end()
#define Open() freopen("F:\\rush.txt","r",stdin)
#define Close() ios::sync_with_stdio(0)
const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
using namespace std;
const int MAXN = 110; int dp[40][MAXN][MAXN][2];
int num[MAXN],temp[MAXN],base;
int dfs(int start,int cur,bool state,bool f)
{
if(cur<0) return state;
if(!f&&dp[base][start][cur][state]!=-1)
return dp[base][start][cur][state];
int en=f?num[cur]:base-1;
int ans=0;
for(int i=0;i<=en;i++)
{
temp[cur]=i;
if(start==cur&&i==0)
{
ans+=dfs(start-1,cur-1,state,f&&i==en);
}
else if(state&&cur<(start+1)/2)
{
ans+=dfs(start,cur-1,temp[start-cur]==i,f&&i==en);
}
else
{
ans+=dfs(start,cur-1,state,f&&i==en);
}
}
if(!f&&ans>=0)
dp[base][start][cur][state]=ans;
return ans;
}
int f(int n)
{
int len=0;
while(n)
{
num[len++]=n%base;
n/=base;
}
num[len]=0;
return dfs(len-1,len-1,1,1);
}
main()
{
ios::sync_with_stdio(false);
int t;
cin >> t;
memset(dp,-1,sizeof dp);
int cas = 0;
while(t--)
{
int L,R,l,r;
cin >> L >> R >> l >> r;
int ans = 0;
for (base = l;base <= r;base++)
{
int num = f(R)-f(L-1);
ans = ans + (num)*base;
ans = ans + R-L + 1 - num;
}
cout << "Case #" << ++cas <<": "<<ans<<endl;
}
return 0;
}
【2017中国大学生程序设计竞赛 - 网络选拔赛】Palindrome Function的更多相关文章
- HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛
普通的数位DP计算回文串个数 /* HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 2-36进制下回文串个数 */ ...
- HDU 6154 - CaoHaha's staff | 2017 中国大学生程序设计竞赛 - 网络选拔赛
/* HDU 6154 - CaoHaha's staff [ 构造,贪心 ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 题意: 整点图,每条线只能连每个方格的边或者对角线 问面积大于n的 ...
- HDU 6150 - Vertex Cover | 2017 中国大学生程序设计竞赛 - 网络选拔赛
思路来自 ICPCCamp /* HDU 6150 - Vertex Cover [ 构造 ] | 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 ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6155 Subsequence Count 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6155 题意: 题解来自:http://www.cnblogs.com/iRedBean/p/73982 ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6154 CaoHaha's staff(几何找规律)
Problem Description "You shall not pass!"After shouted out that,the Force Staff appered in ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6152 Friend-Graph(暴力搜索)
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=6152 Problem Description It is well known that small ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 1004 HDU 6153 A Secret (字符串处理 KMP)
题目链接 Problem Description Today is the birthday of SF,so VS gives two strings S1,S2 to SF as a presen ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 1005 HDU 6154 CaoHaha's staff (找规律)
题目链接 Problem Description "You shall not pass!" After shouted out that,the Force Staff appe ...
随机推荐
- vue4 属性 class style
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- legend---六、php脚本变量的生命周期是怎样的
legend---六.php脚本变量的生命周期是怎样的 一.总结 一句话总结:应该是脚本结束变量的生命周期就完了 1.外部js找不到元素是怎么回事? 1 function myDailyTaskFin ...
- Canny边缘检测及C++实现
Canny边缘检测算法是澳大利亚科学家John F. Canny在1986年提出来的,不得不提一下的是当年John Canny本人才28岁!到今天已经30年过去了,Canny算法仍然是图像边缘检测算法 ...
- linux log日志解析
linux log日志解析 其实,可以说成是监控系统的记录,系统一举一动基本会记录下来.这样由于信息非常全面很重要,通常只有 root 可以进行视察!通过登录文件(日志文件)可以根据屏幕上面的错误 ...
- oracle 高水位线问题
--查询高水位线 50295 0 28185 0select blocks, empty_blocks from dba_tables where table_name='TODAYOTHERCONS ...
- 开启Windows 7远程桌面功能的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 本设置方法同样适用用Vista和Windows Server 2008. 1.依次点击"开始"菜单 ...
- HDU 3374 String Proble
String Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- React开发实时聊天招聘工具 -第三章 React基础知识回顾
function a (props) { return <h1>hello world{this.props.asd}</h1> } class a extends React ...
- oracle 01578
http://blog.itpub.net/7728585/viewspace-670597/ http://www.2cto.com/database/201208/149056.html http ...
- codevs——T1006 等差数列
http://codevs.cn/problem/1006/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Descr ...