首页 > 其他分享 >Codeforces Round #640 (Div. 4) C. K-th Not Divisible by n

Codeforces Round #640 (Div. 4) C. K-th Not Divisible by n

时间:2022-09-20 00:44:43浏览次数:118  
标签:10 岛田 测试点 Divisible Codeforces 640 整除 leqslant

Codeforces Round #640 (Div. 4)

翻译 岛田小雅

C. K-th Not Divisible by n

出题人 MikeMirzayanov

有两个正整数 \(n\) 和 \(k\),输出第 \(k\) 个不能被 \(n\) 整除的正整数。

举个例子,如果 \(n=3\),\(k=7\),那么所有的不能被 \(3\) 整除的数是 \(1,2,4,5,7,8,10,13,…\)。这些数里面的第 \(7\) 个是 \(10\)。

输入格式

第一行是一个整型 \(t\) \((1\leqslant{t}\leqslant{1000})\),代表测试点个数。接下来 \(t\) 行每行一个测试点。

每个测试点给你两个正整型,一个 \(n\) \((2\leqslant{n}\leqslant{10^9})\),一个 \(k\) \((1\leqslant{k}\leqslant{10^9})\)。

输出格式

对每个测试点输出第 \(k\) 个不能被 \(n\) 整除的正整数。

样例输入

6
3 7
4 12
2 1000000000
7 97
1000000000 1000000000
2 1

样例输出

10
15
1999999999
113
1000000001
1

题解

作者 岛田小雅

样例的第 5 个测试点让我悟到了不得了的东西。

以题目中的 \(3\) 为例,把不能被 \(3\) 整除的数铺开:

\[1,2,4,5,7,8,10,11,13,14,… \]

现在把能被 \(3\) 整除的数塞回去:

\[1,2,(3,)4,5,(6,)7,8,(9,)10,11,(12,)13,14,… \]

对于 \(3\) 来说,每隔 \(2\) 个数会少一个数。

那对于 \(n\) 来说,就是每隔 \(n-1\) 个数会少一个数。

所以,\(k\) 个数里面少了几个数呢?令缺少的数的数目为 \(x\),不难得出 \(x=\frac{k}{n-1}\)。那么答案就是 \(k+x\) ——

——了吗?

仔细想想,如果 \(k\) 能被 \(n-1\) 整除,那我们的 \(x\) 就会多算一个。如何避免这种情况呢?

那当然写个条件判断就好啦~(啪)(AC 代码中用了条件运算符

AC 代码

作者 岛田小雅
#include <bits/stdc++.h>
using namespace std;

int t, n, k;

int main()
{
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> t;
    while(t--)
    {
        cin >> n >> k;
        cout << k+(k%(n-1)?k/(n-1):k/(n-1)-1/*条件运算符*/) << '\n';
    }
    return 0;
}

标签:10,岛田,测试点,Divisible,Codeforces,640,整除,leqslant
From: https://www.cnblogs.com/CasseShimada/p/16709671.html

相关文章

  • Codeforces Round #819 D
    D.EdgeSplitn+2条边并且连通图就证明最多多3条边我们可以想到的是要是连成了环的话不如拆一条边给其他颜色所以我们一定要无环我们先跑一遍最小生成树确定成红色......
  • Codeforces Round #316 (Div. 2) D Tree Requests
    TreeRequests判断\(V_i\)的子树中,深度为\(h_i\)的结点上所带有的字符,能否组成一个回文串启发式合并维护所有深度上不同字符的数量,并且维护其奇数字符出现的次数如......
  • Codeforces Round #221 (Div. 1) D Tree and Queries
    TreeandQueries询问\(V_j\)的子树中,有多少种颜色出现了\(K_j\)次启发式合并最直接的,树上启发式合并的同时维护颜色出现的次数,然后再拿一个数组记录一下出现了\(i......
  • Codeforces Round #151 (Div. 2) E Blood Cousins Return
    BloodCousinsReturn启发式合并在跑启发式合并的同时,对每个深度都维护一个\(set\),就可以自动去重并计算有多少种不同的字符串#include<iostream>#include<cstdio>......
  • Codeforces Round #816 (Div. 2) A-D
    CodeforcesRound#816(Div.2)A-D传送门A题意:长为n,m的一个棋盘,左上的旗子要去右下,左下的棋子要去右上,每次移动花费为1,但当一个棋子在另一个棋子的轨迹上时,可以花费......
  • Codeforces Round #819 (Div. 1 + Div. 2) A-D
    CodeforcesRound#819(Div.1+Div.2)A-D传送门过程本场A小磕一下,浪费了一点时间,随后B的迷惑题面浪费大量时间,心态发生了变化,不过最后还是在强猜后蒙过了,C又浪费了......
  • Codeforces Round #819 (Div. 1 + Div. 2) 补题 C
    C.Jatayu'sBalancedBracketSequence(思维题)题意:给你一个平衡括号序列(符合书写规则),其任意子区间[i,j]如果是平衡子序列,就建立一条i,j之间的无权无向边,求最后建成的图......
  • Codeforces Round #819 (Div. 1 + Div. 2)
    \(\texttt{Unrated}\)好像是印度老哥又一次放了F原题,悲。A考虑保留头尾的数,\(3\)种情况的分讨,即保留\(a_1\),保留\(a_n\),或者都保留。MyCode#include<bits/stdc+......
  • Codeforces Round #816 (Div. 2)
    Preface早上7:20起来早自习,结果不知道背什么遂刷了好久知乎……下午只有一个思修课,一边划水一遍写题,堪堪做了ABCD晚上据说有C语言的程序设计?又可以摸鱼了好耶A.Crossm......
  • Educational Codeforces Round 40 (Rated for Div. 2) 补题
    E.WaterTaps题意:每个水龙头有一个流量限制\(a_i\),温度\(t_i\),现在让你控制每个水龙头的出水量\(x_i\),使得最终的水温为\(T\),水温的公式为$\frac{\sum\limits_{i=1}^{......