[vijos1162]波浪数
题目链接:https://www.vijos.org/p/1162
这题的解法我觉得可能是模拟吧,但是题的分类又是构造QAQ。。。。。
不是很懂,所以我们把这个方法叫做奇技淫巧吧
这题的暴力思路就是针对x到y这个范围里的每一个数进行判断,可以就输出
但是很容易看出,这个暴力会超时
所以就有了奇技淫巧
【思路】
我们预处理出范围内所有波浪数的波浪重数
这些波浪数我们可以主动去构造,这题中的波浪数其实拆开就是两个数字构成的,所有只需要枚举奇数位的i,和偶数位的j,i不能为0,然后最大为进制数-1
然后我们处理一下输入的范围x,y在p进制下的位数,并通过我们枚举的i,j和进制p构造位数在x,y之间的p进制数,接着把这个数转换成十进制,让这个波浪数的重数在十进制状态下+1,最后再十进制下枚举x,y之间的所有数,如果重数等于输入的s,就输出这个数
这个题的代码也不难,非常容易看懂滴
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<cstdlib> 5 #include<cmath> 6 #include<algorithm> 7 #include<queue> 8 #define maxn 10000005 9 using namespace std; 10 11 int num[maxn],ja,jb,x,y,s; 12 13 int length(int n,int p){//数字n在p进制下的长度 14 int cnt=0; 15 while(n){ 16 n/=p;cnt++; 17 }return cnt; 18 } 19 20 int make(int a,int b,int len,int p){ 21 int now=0; 22 for(int i=1;i<=len;i++){ 23 if(i&1)now=now*p+a; 24 else now=now*p+b; 25 }return now;//转成10进制 26 } 27 28 void work(int p){ 29 int l=length(x,p),r=length(y,p); 30 for(int i=1;i<p;i++){//首位不为0 31 for(int j=0;j<p;j++){ 32 if(i!=j){//波浪数的条件 33 for(int k=l;k<=r;k++){ 34 int sum=make(i,j,k,p); 35 //构造波浪数并转换成十进制sum 36 if(sum>=x&&sum<=y)num[sum]++; 37 } 38 } 39 } 40 } 41 42 } 43 44 int main(){ 45 scanf("%d%d%d%d%d",&ja,&jb,&x,&y,&s); 46 for(int i=ja;i<=jb;i++){ 47 work(i); 48 } 49 for(int i=x;i<=y;i++){ 50 if(num[i]==s){ 51 printf("%d\n",i); 52 } 53 } 54 }
View Code
【总结】
遇见一看数据范围就很暴力的题,可以换角度下手,要么反向操作,或者预处理,或者构造满足条件的数
转载于:https://www.cnblogs.com/Danzel-Aria233/p/7729008.html
[vijos1162]波浪数相关推荐
- [RQNOJ313]波浪数
题目描述 波浪数是在一对数字之间交替转换的数,如1212121,双重波浪数则是指在两种进制下都是波浪数的数,如十进制数191919是一个十进制下的波浪数,它对应的十一进制数121212也是一个波浪数, ...
- HDU 4489 找出n!个全排列数中的“波浪数” dp 思维,全排列
这题关键还是在于找出dp的转移方程,这题是从第n个数在前n-1个数的位置中入手,然后把"波浪数"分成两派.理解起来不困难,但是要自己想到的话,其中的思维一片也不能断掉,尤其是要找到 ...
- [Unity实战]制作卷动的波浪
参考链接:http://tieba.baidu.com/p/2655013091#40457365538l 效果图: 这里,我们制作的波浪是通过改变mesh上的顶点来实现的.更准确的说,是改变mesh ...
- Unity 水、流体、波纹基础系列(三)——波浪(Waves)
目录 1 正弦波 1.1 调整顶点 1.2 调整Y 1.3 振幅 1.4 波长 1.5 速度 1.6 法线向量 1.7 Mesh分辨率 1.8 阴影 2 格斯特纳波(Gerstner) 2.1 来回移 ...
- cocos2d-x初探学习笔记(8)--场景特效
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 如何让场景中的所有都受一个动作特效的影响呢?可 ...
- HDU 6078Wavel Sequence
[题目链接]http://acm.hdu.edu.cn/showproblem.php?pid=6078 题目意思 给定两个数组问你同时满足波浪的波浪数.不理解可以看题目提示部分 解题思路 首先从a数 ...
- HDU 6078 Wavel Sequence【动态规划】
题目来戳呀 Problem Description Have you ever seen the wave? It's a wonderful view of nature. Little Q is ...
- php k线15分钟 30分钟,15分钟30分钟K线战法
A.一种利用均线,你在15分钟K线图上设置一根21天均线及一根5天均线,当你看到5天上穿21天均线时那就是买入信号:卖出方法有两种:一般情况下,看到5天均下穿21天均线就要坚决离场:特殊情况下,如该股 ...
- echarts水波球特效(附带外边框进度条)
echarts水波球特效(附带外边框进度条) 1.话不多说先上效果图 2.这里用到了echarts的liquidFill图表,需要加载liquidFill插件 npm i echarts-liquid ...
最新文章
- 死前真的会有「跑马灯」,人类首次同步测量大脑濒死状态
- richTextBox1 转到行号
- SQL 触发器的使用
- 手机1像素线粗_小米1亿像素手机配置全曝光:史上最炫酷呼吸灯!
- 可以使用计算机解决的问题是什么,1.1 使用计算机解决问题的一般过程教案1
- c# DataTable DataBinding 应用笔记
- 关于qq创始人----马化腾的一些琐事
- PHP检测每一段代码执行时间
- THINK PHP 学习笔记20171115
- runloop的mode作用是什么?
- 【问题解决方案】从 Anaconda Prompt 或 Jupyter Notebook 终端进入Python后重新退出到命令状态...
- OOP之C#设计及其UML(反向工程)
- 查看oracle数据库版本
- 谷歌测试工具_使用Google网站优化工具进行A / B测试的指南
- 算法刷题路线总结与相关资料分享
- 基于MTK65xx平台lcm和背光驱动的编写
- [c语言]倒置字符串 -牛客网
- SpringBoot 自定义全局异常处理器
- 植物大战僵尸设计元素浅析
- 无心剑英译紫穗穗《熵》