题意:输入L,R,l,r求[L,R]范围内在[l, r]进制下的回文数(2<=l<=r<=26, L<=R<1e9)

题解:主要是求回文数,枚举每个进制,求ans = R前面的回文数-L前面的回文数,可以发现每个进制下小于1e9的回文数比较少,直接把所有的回文数预处理排序二分就可以

#include <bits/stdc++.h>
#define ll long long
#define maxn 100100
#define BUG(x, n) for(ll i=0;i<=n;i++) cout<<x[i]<<" ";cout<<endl;
using namespace std;
ll temp[100];
vector<ll >vec[40];
ll mmp(ll x,ll t,ll k){ll num=0, ans = 0;while(x){temp[++num] = x%t;x /= t;}for(ll i=num;i>=1;i--) ans = ans*t+temp[i];if(k!=-1) ans = ans*t+k;for(ll i=1;i<=num;i++) ans = ans*t+temp[i];return ans;
}
void init(){ll t1 = 0;for(ll i=2;i<=36;i++)for(ll j=0;j<i;j++)vec[i].push_back(j);for(ll j=2;j<=36;j++)for(ll i=1;;i++){t1 = mmp(i, j, -1);if(t1>1e9) break;vec[j].push_back(t1);}for(ll j=2;j<=36;j++)for(ll k=0;k<j;k++)for(ll i=1;;i++){t1 = mmp(i, j, k);if(t1>1e9) break;vec[j].push_back(t1);}for(ll i=2;i<=36;i++)sort(vec[i].begin(), vec[i].end());
}
int main(){init();ll T, L, R, l, r, ans, RR, LL, num = 1;scanf("%lld", &T);while(T--){ans = 0;scanf("%lld%lld%lld%lld", &L, &R, &l, &r);for(ll i=l;i<=r;i++){RR = upper_bound(vec[i].begin(), vec[i].end(), R)-vec[i].begin()-1;LL = upper_bound(vec[i].begin(), vec[i].end(), L-1)-vec[i].begin()-1;ans += (RR-LL)*(i-1)+(R-L+1);}printf("Case #%lld: %lld\n", num++, ans);}return 0;
}

转载于:https://www.cnblogs.com/Noevon/p/7399284.html

HDU6156 Palindrome Function相关推荐

  1. HDU 6156 Palindrome Function 数位DP

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6156 题目描述: 求L~R所有的数的l~r进制的f(x), f(x) = 当前进制 如果回文串, f ...

  2. HDU - 6156 Palindrome Function(数位dp)

    题目链接:点击查看 题目大意:给出一段区间 [ l , r ] ,问十进制下的 [ l , r ] 内在 k 进制下有多少个回文串 题目分析:对于每个进制下求数位 dp 即可,dp[ pos ][ l ...

  3. HDU 6156 2016ICPC网络赛 G: Palindrome Function(数位DP)

    题意: 已知函数f(x, k),如果10进制数x在k进制下是个回文数,那么f(x, k)值为k,否则为1 现给出l, r, x, y, 求出∑∑f(i, j)  (l<=i<=r)  (x ...

  4. 30秒的PHP代码片段(3)字符串-String 函数-Function

    本文来自GitHub开源项目 点我跳转 30秒的PHP代码片段 精选的有用PHP片段集合,您可以在30秒或更短的时间内理解这些片段. 字符串 endsWith 判断字符串是否以指定后缀结尾,如果以指定 ...

  5. C++判断一个数是否为回文数palindrome的算法(附完整源码)

    C++判断一个数是否为回文数palindrome的算法 C++判断一个数是否为回文数palindrome的算法完整源码(定义,实现,main函数测试) C++判断一个数是否为回文数palindrome ...

  6. [LeetCode] Palindrome Linked List

    Given a singly linked list, determine if it is a palindrome. 一开始想用栈,但是试来试去发现写不出来遂放弃,后来想想再不济可以转换成数组然后 ...

  7. LeetCode Palindrome Partitioning II

    原题链接在这里:https://leetcode.com/problems/palindrome-partitioning-ii/ 题目: Given a string s, partition s  ...

  8. [LeetCode][JavaScript]Palindrome Linked List

    Palindrome Linked List Given a singly linked list, determine if it is a palindrome. Follow up: Could ...

  9. C语言逻辑操作符的巧妙用法:an anagram of a palindrome

    这是网上看到的面试题.     A string is a palindrome if it has exactly the same sequence of characters when read ...

最新文章

  1. Java并发程序设计(四)JDK并发包之同步控制
  2. layui时间怎么设置年月日时分秒_安卓手机便签敬业签到时间提醒后怎么设置延时30分钟再提醒?...
  3. linux 7 vsftpd 配置,centos7下vsftpd配置
  4. Gradle 配置jetty启动项目
  5. Dubbo服务启动时Caused by: com.alibaba.dubbo.remoting.RemotingException: Failed to bind NettyServer on /19
  6. 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)...
  7. 大数据模型研究报告pdf_业绩大数据分析报告模型
  8. c语言列出1~100所有素数_一次找出范围内的所有素数,埃式筛法是什么神仙算法?...
  9. urllib2 request 模拟伪装浏览器
  10. 自学python能学成吗-Python能自学成功吗?
  11. 重新认识C#: 玩转指针
  12. SpringBoot 2.1.0 整合 WebSocket 通信
  13. 设置notepad++背景护眼色
  14. store buffer and invalidate queues
  15. TOM邮箱6.0版全面上线,全新交互设计,让办公更从容
  16. 有一天,你不上班后,打算干什么?
  17. mysql explain row_MySQL explain详解
  18. 快进来看王冰冰!青年大学习提醒系统来了!!
  19. 计算机图形学【GAMES-101】5、几何(距离函数SDF、点云、贝塞尔曲线、曲面细分、曲面简化)
  20. ShareSDK实现第三方登录和分享

热门文章

  1. Collection、泛型
  2. C++异常处理,Error,C和C++ 解决容错,栈自旋,Standard Exception【C++异常处理】(60)
  3. Linux下监控磁盘io,如何在Linux下监控磁盘IO?
  4. 绵阳python培训_《绵》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
  5. nodejs实现的高性能服务器编程,使用NodeJS搭建自己的接口服务器,提交APP的开发效率...
  6. django restful 请求_利用 Django REST framework 构建 RESTful Web API
  7. 100 个网络基础知识普及,看完成半个网络高手! 【厦门微思网络】
  8. 与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 部署
  9. Serverless 躁动背后的 5 大落地之痛
  10. 基于函数计算的 BFF 架构