【数位DP】HDU 6156 Palindrome Function】的更多相关文章

普通的数位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 p…
思路: 数位dp的操作是dfs+记忆化,我们dp开四维:位置,长度,进制,是否回文.然后每次暴搜记录下每个位置的数字是什么,搜到对称轴另一边需要检查是否符合回文. 终于把友谊赛的题目都补完了...没做出来的都是学过的,做出来的都是没学过骚操作过的...学以不致用... 代码: #include<cstdio> #include<set> #include<stack> #include<cstring> #include<algorithm> #…
http://acm.hdu.edu.cn/showproblem.php?pid=6156 题意:$f(n,k)$表示判断n在k进制下是否是回文串,如果是,则返回k,如果不是,则返回1.现在要计算$\sum_{i=L}^{R}\sum_{j=l}^{r}f(i,j)$. 思路:因为我不会数位dp,所以我直接模拟做了一发,写得十分繁琐... 先是将数转换成k进制,然后去计算出它的前一半的数,只要小于该数那都是成立的 ,比如说现在前面的数为985,那么1~984的数都是满足的,绝对不会超. 思路大…
http://acm.hdu.edu.cn/showproblem.php?pid=6156 [AC] #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ]; int L,R,l,r; ll query(int x,int k) { ) ; ; int cp=x; while(cp) { num[cnt++]=cp%k; cp/=k; } ,tot=; ;i<cnt;i++) { tot+=base-…
开学之后完全没时间写博客.... HDU 2089 不要62(vjudge) 数位DP 思路: 题目给出区间[n,m] ,找出不含4或62的数的个数 用一个简单的差分:先求0~m+1的个数,再减去0~n的个数. 但问题依旧不简单,再次简化为求0~i位数中不含4或62的数的个数. i= //0~9中 i= //0~99中 i= //0~999中 ...... dp[i][] //0~i位数中的吉利数 dp[i][] //0~i位数中以2打头的吉利数 dp[i][] //0~i位数中的非吉利数(含4…
不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 64953    Accepted Submission(s): 25842 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可…
Palindrome Function As we all know,a palindrome number is the number which reads the same backward as forward,such as 666 or 747.Some numbers are not the palindrome numbers in decimal form,but in other base,they may become the palindrome number.Like…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6156 题意:如题. 解法:数位DP,暴力枚举进制之后,就转化成了求L,R区间的回文数的个数,这个直接做一个数位DP就好了.dp[jz][start][cur][state]表示jz进制下以start位起始到cur位状态为state(1表示已经回文,0表示没有回文)时回文数的个数. #include <bits/stdc++.h> using namespace std; typedef long…
Palindrome Function Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 256000/256000 K (Java/Others)Total Submission(s): 863    Accepted Submission(s): 476 Problem Description As we all know,a palindrome number is the number which reads the same…
一.题目 二.思路 1.这是很明显的数位DP: 2.和以往数位DP不同的是,这里带了个进制进来,而以往做是纯十进制下或者纯二进制下做操作.但是,不管多少进制,原理都是一样的: 3.这里有个小坑,题目中说大于10的数用A.B.C.…….Z表示,那都是骗人的.分解给定数字的每一位数后,得到每一位的就是在给定进制下的该位的权值,压根不需要在数字.字母之间转来转去,纯数字娱乐: 4.比较直观的想法是: (1)枚举给定范围内的每一个进制: (2)计算在b进制下的回文数个数,然后即可得出在b进制下的和: (…