洛谷 P2022 有趣的數

2021-07-26 06:56:08 字數 1192 閱讀 8213

讓我們來考慮1到n的正整數集合。讓我們把集合中的元素按照字典序排列,例如當n=11時,其順序應該為:1,10,11,2,3,4,5,6,7,8,9。

定義k在n個數中的位置為q(n,k),例如q(11,2)=4。現在給出整數k和m,要求找到最小的n,使得q(n,k)=m。

輸入輸出格式

輸入檔案只有一行,是兩個整數k和m。

輸出檔案只有一行,是最小的n,如果不存在這樣的n就輸出0。

輸入輸出樣例

輸入樣例#1:

sample 1: 2 4

sample 2: 100000001 1000000000

這裡sample 1 和 2是分開的兩個資料點。

輸出樣例#1:

sample 1: 11

sample 2: 100000000888888879

說明40%的資料,1<=k,m<=10^5;

100%的資料,1<=k,m<=10^9。

對於比n小的,字典序n的數ans=k/10(位數的次方)-1 (可以自己列幾個數出來看看就好了)

#include 

#include

#define n 100

using

namespace

std;

long

long s[n], f[n];

long

long n, m, k;

long

long cnt = 0;

long

long base = 1;

void get(long

long x)

base /= 10;

for(int i = 1; i <= t; i++)

f[i] = s[t - i + 1];

cnt += t - 1;

for(int i = t; i >= 1; i--)

cnt += now;

}}int main()

long

long x = k - base, y = k;

for(; cnt < m - 1;)

long

long ans = max(k, y - (cnt - m + 2));

std::cout

<< ans << endl;

}

洛谷P2022 有趣的數

題目鏈結 首先求出1 k中有多少個在k前面的數的個數,若 m,則無解 比如12345,從第一位開始,1 0 1 共2個 1 0 1 12 10 12共3個 12 10 1 123 100 123 共24個 123 100 1 1234 1000 1234 共235個 1234 1000 1 之後看還...

洛谷 P2022 有趣的數

我們把乙個數稱為有趣的,當且僅當 它的數字只包含0,1,2,3,且這四個數字都出現過至少一次。所有的0都出現在所有的1之前,而所有的2都出現在所有的3之前。最高位數字不為0。因此,符合我們定義的最小的有趣的數是2013。除此以外,4位的有趣的數還有兩個 2031和2301。請計算恰好有n位的有趣的數...

洛谷 P2022 有趣的數 思維

傳送門 將1 n 1 n1 n的所有正整數都按照字典序排序,指定k m k mk m問nn n至少是多少時k kk的位置是第mmm位 這麼大的資料範圍我們顯然不能乙個個列舉,我直接推規律好了 有個十分明顯的規律,1 10 100 1 10 100 1 10 1 00這些數肯定在前面的 當n nn小於...