题解:AT_arc173_a [ARC173A] Neq Number
简单二分。
思路
数位 dp 预处理和判断。
init 预处理出 dp 数组,与 windy 数大致相同。
二分答案,如果 111 至 midmidmid 的 Neq 数数量大于等于 kkk,rt=midrt=midrt=mid;否则 lt=midlt=midlt=mid,最后输出 rtrtrt。
query 直接当 check 用。
AC code:
#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
int dp[100][100];
int l,r;
void init(){
for(int i=0;i<=9;i++){
dp[1][i]=1;
}
for(int i=2;i<=19;i++){
for(int j=0;j<=9;j++){
for(int k=0;k<=9;k++){
if(j!=k){
dp[i][j]+=dp[i-1][k];
}
}
}
}
}
int query(int x){
if(x==0){
return 0;
}
int num[25],cnt=0,ans=0;
while(x!=0){
cnt++;
num[cnt]=x%10;
x/=10;
}
for(int i=cnt;i>=1;i--){
for(int j=0;j<num[i];j++){
if(i==cnt&&j==0)continue;
if(i!=cnt&&num[i+1]==j)continue;
ans+=dp[i][j];
}
if(i!=cnt&&num[i]==num[i+1])break;
if(i==1)ans++;
}
for(int i=cnt-1;i>=1;i--){
for(int j=1;j<=9;j++){
ans+=dp[i][j];
}
}
return ans;
}
signed main(){
init();
int t,k;
cin>>t;
while(t--){
cin>>k;
int lt=-1,rt=1e15+1;
while(lt+1!=rt){
int mid=(lt+rt)/2;
if(query(mid)>=k){
rt=mid;
}
else{
lt=mid;
}
}
cout<<rt<<endl;
}
return 0;
}
题解:AT_arc173_a [ARC173A] Neq Number的更多相关文章
- 题解-Ehab's REAL Number Theory Problem
Ehab's REAL Number Theory Problem 前置知识 质数 分解质因数 无向无权图最小环<讲> Ehab's REAL Number Theory Problem/ ...
- LeetCode题解之Valid Triangle Number
1.题目描述 2.问题分析 暴力计算 3.代码 int triangleNumber(vector<int>& nums) { ; ) return res; ; i < n ...
- PAT甲题题解-1019. General Palindromic Number (20)-又是水题一枚
n转化为b进制的格式,问你该格式是否为回文数字(即正着写和倒着写一样)输出Yes或者No并且输出该格式又是水题... #include <iostream> #include <cs ...
- PAT甲题题解-1104. Sum of Number Segments (20)-(水题)
#include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...
- C#版(打败97.89%的提交) - Leetcode 202. 快乐数 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
- LeetCode Graph Valid Tree
原题链接在这里:https://leetcode.com/problems/graph-valid-tree/ 题目: Given n nodes labeled from 0 to n - 1 an ...
- 【codeforces 796A】Buying A House
[题目链接]:http://codeforces.com/contest/796/problem/A [题意] 让你选一个最靠近女票的,且能买的房子; 输出你和你女票的距离; [题解] 枚举 [Num ...
- Codeforces #144 (Div. 1) B. Table (组合数学+dp)
题目链接: B.Table 题意: \(n*m\)的矩阵使每个\(n*n\)矩阵里面准确包含\(k\)个点,问你有多少种放法. \((1 ≤ n ≤ 100; n ≤ m ≤ 10^{18}; 0 ≤ ...
- 【Leetcode 做题学算法周刊】第四期
首发于微信公众号<前端成长记>,写于 2019.11.21 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 67 ...
- C#版 - Leetcode 414. Third Maximum Number题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
随机推荐
- Popup弹出层滚动不流畅
使用 Vant 框架中的 van-popup 组件(弹框组件);导致列表上下滑动不流畅 Popup 弹出层 滚动不流畅 <van-popup v-model="conFlag" ...
- Akka中使用Logback日志框架
Akka提供的默认日志系统只输出到控制台,这种日志系统不可以用到产品环境,当然你可以整合SLF4J这样的日志系统,下面介绍如何在Akka中使用Logback记录日志. 1. 创建Maven工程引入相关 ...
- shell脚本获取本机ip地址
IP=`ifconfig|grep -v '127.0.0.1'|grep -v 'inet6'|grep 'inet'|awk '{print $2}'|awk 'NR==1'|egrep -o ' ...
- 流程控制之switch选择结构
实现方式:switch case语句 switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支 switch语句中的变量类型可以是: byte.short.int或者cha ...
- HTML骨架简述
<!DOCTYPE html><!-- <!声明 DOC docment文件/文档 TYPE 类别/类型 告知浏览器当前文档为html> --><html&g ...
- android短信数据库监听回调多次问题
在监听android短信数据库变化时.由于只能注册content://sms/ 的observer.所以,在数据库每次状态变化的时候,都会多次回调 onChange 方式.目前还未找到很好的方式,解决 ...
- 傻妞教程——对接QQ机器人go-cqhttp
原本我懒,用的傻妞QQbot一键安装版,docker的,最近有点问题,索性换了go-cqhttp 安装go-cqhttp: go-cqhttp项目地址:https://github.com/Mrs4s ...
- Kafka - [02] Kafka单机版部署
Kafka是一个分布式的流处理平台. kafka主要是作为一个分布式的.可分区的.具有副本数的日志服务系性.高容错性.访问速度快.分布式等特性:具有高水平扩展 主要应用场景是:日志收集系统和分布式发布 ...
- Java Map一些基本使用方法
1 // Map key值不能相同,value值可以相同 2 // HashMap中的Entry对象是无序排列的 3 4 // 实例化1 5 Map<String, String> map ...
- 【ABAQUS模态动力学】Material-Damping 对模态分析的影响
先说结论,执行Frequency Step (特征值提取)时定义材料行为中的Damping 行为,对结果没有影响. 1. abaqus calculation compare 1.1 ANALYSIS ...