B. 题意: 给定n和m,表示矩阵的行和列。矩阵中每个元素的大小为i*j。给定k,输出矩阵中第k大的数。n,m = 5e5 思路: 线性筛(bushi) 二分。找满足条件的最小值,满足有>=k个数比它小,所有满足条件的数中的最小值即是答案。花O(n)的时间check 时间复杂度: O(n) * O(n + m) 代码:
// Problem: 第k个数
// Contest: AcWing
// URL: https://www.acwing.com/problem/content/4083/
// Memory Limit: 256 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
#define fir(i,a,b) for(int i=a;iT;
// read(T);
while(T--)
{
solve();
}
return 0;
}