HDU6156 Palindrome Function
题意:输入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相关推荐
- HDU 6156 Palindrome Function 数位DP
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6156 题目描述: 求L~R所有的数的l~r进制的f(x), f(x) = 当前进制 如果回文串, f ...
- HDU - 6156 Palindrome Function(数位dp)
题目链接:点击查看 题目大意:给出一段区间 [ l , r ] ,问十进制下的 [ l , r ] 内在 k 进制下有多少个回文串 题目分析:对于每个进制下求数位 dp 即可,dp[ pos ][ l ...
- 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 ...
- 30秒的PHP代码片段(3)字符串-String 函数-Function
本文来自GitHub开源项目 点我跳转 30秒的PHP代码片段 精选的有用PHP片段集合,您可以在30秒或更短的时间内理解这些片段. 字符串 endsWith 判断字符串是否以指定后缀结尾,如果以指定 ...
- C++判断一个数是否为回文数palindrome的算法(附完整源码)
C++判断一个数是否为回文数palindrome的算法 C++判断一个数是否为回文数palindrome的算法完整源码(定义,实现,main函数测试) C++判断一个数是否为回文数palindrome ...
- [LeetCode] Palindrome Linked List
Given a singly linked list, determine if it is a palindrome. 一开始想用栈,但是试来试去发现写不出来遂放弃,后来想想再不济可以转换成数组然后 ...
- LeetCode Palindrome Partitioning II
原题链接在这里:https://leetcode.com/problems/palindrome-partitioning-ii/ 题目: Given a string s, partition s ...
- [LeetCode][JavaScript]Palindrome Linked List
Palindrome Linked List Given a singly linked list, determine if it is a palindrome. Follow up: Could ...
- C语言逻辑操作符的巧妙用法:an anagram of a palindrome
这是网上看到的面试题. A string is a palindrome if it has exactly the same sequence of characters when read ...
最新文章
- Java并发程序设计(四)JDK并发包之同步控制
- layui时间怎么设置年月日时分秒_安卓手机便签敬业签到时间提醒后怎么设置延时30分钟再提醒?...
- linux 7 vsftpd 配置,centos7下vsftpd配置
- Gradle 配置jetty启动项目
- Dubbo服务启动时Caused by: com.alibaba.dubbo.remoting.RemotingException: Failed to bind NettyServer on /19
- 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)...
- 大数据模型研究报告pdf_业绩大数据分析报告模型
- c语言列出1~100所有素数_一次找出范围内的所有素数,埃式筛法是什么神仙算法?...
- urllib2 request 模拟伪装浏览器
- 自学python能学成吗-Python能自学成功吗?
- 重新认识C#: 玩转指针
- SpringBoot 2.1.0 整合 WebSocket 通信
- 设置notepad++背景护眼色
- store buffer and invalidate queues
- TOM邮箱6.0版全面上线,全新交互设计,让办公更从容
- 有一天,你不上班后,打算干什么?
- mysql explain row_MySQL explain详解
- 快进来看王冰冰!青年大学习提醒系统来了!!
- 计算机图形学【GAMES-101】5、几何(距离函数SDF、点云、贝塞尔曲线、曲面细分、曲面简化)
- ShareSDK实现第三方登录和分享
热门文章
- Collection、泛型
- C++异常处理,Error,C和C++ 解决容错,栈自旋,Standard Exception【C++异常处理】(60)
- Linux下监控磁盘io,如何在Linux下监控磁盘IO?
- 绵阳python培训_《绵》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
- nodejs实现的高性能服务器编程,使用NodeJS搭建自己的接口服务器,提交APP的开发效率...
- django restful 请求_利用 Django REST framework 构建 RESTful Web API
- 100 个网络基础知识普及,看完成半个网络高手! 【厦门微思网络】
- 与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 部署
- Serverless 躁动背后的 5 大落地之痛
- 基于函数计算的 BFF 架构