C. k-th equality-880
题目大意:给你A,B,C为a,b,c的整数位数,再给你一个k,让你求满足a+b=c这个公式转化为字符串后字典序从小到大的第k个,如果没有就输出-1.
思路:巧妙地计算公式+枚举
对于a有:pow(10,A-1)<=a<=pow(10,A)-1,pow(10,B-1)<=b<=pow(10,B)-1,pow(10,C-1)<=c<=pow(10,C)-1。且由此公式我门可以枚举a而确定b,最终求出c。pow(10,C-1)<=a+b<=pow(10,C)-1,由此公式,可得:max(pow(10,B-1),pow(10,C-1)-a)<=b<=min(pow(10,B)-1,pow(10,C)-1-a),我们可以根据b的l和r的端点范围,来判断,k是否在这个范围之内,每次减去根据一个a而求出的b的范围,最终在a枚举结束前,如果有k落入这个范围之中,我们就可以输出了。
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e6+7;
int t,a,b,c,k;
int fastpow(int a,int b){int ans=1;while(b){if(b&1){ans=ans*a;}b>>=1;a*=a;}return ans;
}
void solve(){cin>>a>>b>>c>>k;int f=0;for(int i=fastpow(10,a-1);i<=fastpow(10,a)-1;i++){int l=max(fastpow(10,b-1),fastpow(10,c-1)-i);int r=min(fastpow(10,b)-1,fastpow(10,c)-1-i);//左右端点if(l>r)continue;int len=r-l+1;//每一部分b的区间if(k<=len){cout<<i<<" + "<<l+k-1<<" = "<<l+k-1+i<<"\n";f=1;break;}k-=len;//减去完整的区间}if(!f)cout<<-1<<"\n";return ;
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);cin>>t;while(t--){solve();}return 0;
}
C. k-th equality-880相关推荐
- 王者荣耀自动化获取金币/经验周上限 教程
本教程适用于手机屏幕分辨率为2160*1080,其他分辨率需要自行更改代码中的坐标,显示手机坐标自行百度.如果觉得自己操作比较麻烦,且比较损耗手机,可以尝试使用电脑安卓模拟器或云手机. 准备工作 安卓 ...
- GB_T28181-2016.pdf
国标28181-2016版本检测,由于文件过大,而且博客不支持上传文件,需要GB28181-2016协议文档和公安一所检测文档的可以私信我,QQ:123011785 I C S1 3. 3 1 0 A ...
- TuShare获取K线数据
Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们在数据获取 ...
- codeforces1451 C. String Equality
真的弱,这题都想蹦了. 这场md,b题看错题调了1小时才发现,c题上来也看错..最后懒得写了睡觉~ C. String Equality 神的讲解 注意到连续k个相同字符才能使用操作二,不过我们可以交 ...
- 1451C. String Equality
C. String Equality:题目 我也不知道这算不算dp....虽然它有一个dp的标签 #include <bits/stdc++.h> using namespace std; ...
- oracle下k M G,【性能调优】Oracle AWR报告指标全解析(2)
7-1 Checkpoint Activity 检查点与 Instance Recovery Stats 实例恢复 Checkpoint Activity Snaps: 70719-70723 -&g ...
- d3js mysql_使用d3js画K线图 - ObjectNotFoundException - OSCHINA - 中文开源技术交流社区
使用 必应和谷歌 搜索了一圈,发现只有一篇使用d3js画K线图的文章,但是将相关的HTML和JavaScript代码内容保存为.html文件并在浏览器打开后,发现当使用d3js V4版本时并不能画出K ...
- python生成k线图_基于tushare生成k线图
tushare简介 TuShare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工到数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据, ...
- 部署 Apache Camel K | 从 master 分支源码构建并部署 Camel K 平台
上一篇文章基于 camel-k:1.0.0-RC2 编写,部署到一半,遇到很多问题卡住了 有些问题修改一下项目比较容易解决,而且也不能干等下一个 Release 版本发布 因此选择从 master 分 ...
- 伍六七带你学算法 入门篇-最小的k个数
java面试题-最小的k个数 难度-简单 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:a ...
最新文章
- ❤比较两种模糊特效❤filter: blur(10px)和backdrop-filter: blur(10px)的区别
- Golang反射机制的实现分析——reflect.Type类型名称
- #linux进阶#归档压缩
- Coursera课程Python for everyone:chapter3
- nodejs里require的调试截屏
- Linux Tomcat安装
- Java:GraalVM数据库流性能
- Java 8的烹调方式–拼图项目
- 用Log4Net来记录系统的日志信息
- es6继承 vs js原生继承(es5)
- INSTALL_FAILED_UID_CHANGED解决办法
- np.roll的用法
- dell电脑恢复出厂系统(旧电脑如何重装系统)
- 如何扩展硬盘以及删除恢复分区?
- JAVA文件夹批量重命名
- blender合并物体后材质丢失问题的解决办法
- 宏 word 更新域
- cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings
- Linux 网卡驱动的安装
- 正方形里面两个扇形相交部分_边长为1的正方形内,两个扇形,一个半圆,求阴影面积....