本文主要是介绍题目:肖恩的乘法表(蓝桥OJ 3404),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
解题思路:
本题采用二分中的二分答案。且本题check()用不到开数组,所以不需要开数组,脑海中想象一个数组就好了
题解:
#include<bits/stdc++.h>
using namespace std;
using ll = long long;ll n, m , k;ll check(ll mid)//引入参数为ll类型
{ll res = 0;for(int i = 1; i <= n; i++)res += min(m, mid/i);//注意:mid只能相同数据类型的比较,ll/int为ll类型return res;
}int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin >> n >> m >> k;ll l = 0, r = 1e14;while(l + 1 != r){ll mid = (l + r) / 2;if(check(mid) >= k)r = mid;//注意判断条件是>=else l = mid;}cout << r << "\n";return 0;
}
这篇关于题目:肖恩的乘法表(蓝桥OJ 3404)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!