Codeforces Round #256 (Div. 2)D 二分答案_html/css_WEB-ITnose
D. Multiplication Table
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Bizon the Champion isn't just charming, he also is very smart.
While some of us were learning the multiplication table, Bizon the Champion had fun in his own manner. Bizon the Champion painted ann?×?m multiplication table, where the element on the intersection of the i-th row and j-th column equals i·j (the rows and columns of the table are numbered starting from 1). Then he was asked: what number in the table is the k-th largest number? Bizon the Champion always answered correctly and immediately. Can you repeat his success?
Consider the given multiplication table. If you write out all n·m numbers from the table in the non-decreasing order, then the k-th number you write out is called the k-th largest number.
Input
The single line contains integers n, m and k (1?≤?n,?m?≤?5·105; 1?≤?k?≤?n·m).
Output
Print the k-th largest number in a n?×?m multiplication table.
Sample test(s)
input
2 2 2
output
input
2 3 4
output
input
1 10 5
output
Note
A 2?×?3 multiplication table looks like this:
1 2 32 4 6
题解
题目意思是,从一个n*m的乘法表(不要问我乘法表是什么)中选出第k小数(相同的数字会计算多次)。
比如样例 2 3 4
乘法表为
1 2 3
2 3 4
非减序列是:1, 2, 2, 3, 3, 4。第4个数字是3,所以输出3。
一开始我想到的是搜索,从n*m开始搜索,后来发现状态实在太多而且即便是搜索,时间复杂度是O(N * M)。
正确的解法是二分。二分答案(边界是[1, n * m]),然后在乘法表中去找比他小的数。因为乘法表是一个有规律的数表,所以针对每一列直接O(1)计算即可,总共计算N次。
总的时间复杂度是O(N * 2 * log(N))。
代码示例
/*****************************************************************************# COPYRIGHT NOTICE# Copyright (c) 2014 All rights reserved# ----Stay Hungry Stay Foolish----## @author :Shen# @name :D# @file :D.cpp# @date :2014/07/17 22:47# @algorithm :Binary Search******************************************************************************///#pragma GCC optimize ("O2")//#pragma comment(linker, "/STACK:1024000000,1024000000")#include <bits>using namespace std;template<class t>inline bool updateMin(T& a, T b){ return a > b ? a = b, 1: 0; }template<class t>inline bool updateMax(T& a, T b){ return a > n >> m >> k; int64 Right = n * m, Left = 1; int64 ans = BinarySearch(Left, Right); cout <br> <br> </class></class></bits>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

蛋仔派对最近非常火热的揪出捣蛋鬼答题,到底20道题答案是什么,有很多玩家害怕打错,所以就来搜索,其实这些题目都是很基础,答案已经总结出来了,一起来看看这篇蛋仔派对揪出捣蛋鬼全20题答案汇总,肯定能够给你带来帮助。蛋仔派对攻略大全蛋仔派对揪出捣蛋鬼答题答案1、作为一名心机蛋,以下哪个是你的技能效果?答案:可以让被击倒的蛋仔隐形2、一局游戏失败后,以下哪种行为是不对的?答案:指责导致失败的蛋仔。3、以下哪个关于紧急讨论的说法是正确的?答案:在有重要信息时可以发起紧急讨论来告诉大家4、以下哪个蛋在在局

在php中,round的意思为“四舍五入”,是一个内置函数,作用是将浮点数转换为整数;该函数可以对浮点数进行四舍五入,并返回一个float类型的整数值,语法“round(number,precision,mode);”。

round() 函数是PHP数字格式化库中一个非常实用的函数,可以将浮点数四舍五入到指定的小数位数。但是,由于PHP的除法运算可能会出现无限小数或精度丢失的问题,因此对除数进行四舍五入也很必要。接下来,我们会详细讲解如何使用PHP的round()函数进行除以四舍五入。

在折叠屏领域,小折叠屏凭借着轻盈便携、精致小巧的时尚属性,同样备受很多年轻用户的喜爱。在之前的三星GalaxyZFold6大折叠屏评测中,我给了它「更方更AI」的评价。而与它同一时间发布的小折叠屏——三星GalaxyZFlip6,同样备受瞩目。那么它又会有怎样的体验?今天,我们就一起来解锁这款时尚新品。「轻」设计:流于指尖的时尚颜值和GalaxyZFold6一样,GalaxyZFlip6机身采用了方正形态的设计。展开形态下,机身比一般的直板机还要修长,前后以直边中框衔接,四个R角保留了圆润的形态

以下哪个职业是科学育婴的好帮手是蚂蚁新村今日问题,蚂蚁新村今日答案是育婴师,育婴师照顾宝宝真的很专业,具体内容一起跟随小编看看这篇蚂蚁新村今日答案3.7最新2024,希望能够给你带来帮助。蚂蚁新村今日答案最新蚂蚁新村今日答案3.7问题:以下哪个职业是科学育婴的好帮手答案:育婴师解析:育婴师是科学育婴的好帮手,指的是用现代教育理念和科学方法对0-3岁宝宝进行生活照料、护理、教育的专业人员。

蚂蚁庄园今日答案2.24是什么?今天的问题分别是:为了避免汤圆粘到锅底,应该?“星灿乌云里,珠浮浊水中”是哪种节日美食?有许多小伙伴还不知道问题的答案,那么下面小编就为大家带来了2024最新蚂蚁庄园小鸡2.24今日答案,感兴趣的小伙伴快来一起了解一下吧。蚂蚁庄园今日答案汇总蚂蚁庄园今日答案2.24问题一:为了避免汤圆粘到锅底,应该?正确答案:开水下汤圆蚂蚁庄园2.24问题一答案详情问题二:“星灿乌云里,珠浮浊水中”是哪种节日美食?正确答案:汤圆蚂蚁庄园2.24问题二答案详情蚂蚁庄园每日一题怎么参

蚂蚁庄园今日答案3.11是什么?今天的问题分别是:成语"脱颖而出”的主人公是谁?以下哪种蔬菜有“菊花菜”的别称?有许多小伙伴还不知道问题的答案,那么下面小编就为大家带来了2024最新蚂蚁庄园小鸡3.11今日答案,感兴趣的小伙伴快来一起了解一下吧。蚂蚁庄园今日答案汇总蚂蚁庄园今日答案3.11问题一:成语"脱颖而出”的主人公是谁?正确答案:毛遂蚂蚁庄园3.11问题一答案详情问题二:以下哪种蔬菜有“菊花菜”的别称?正确答案:筒蒿蚂蚁庄园3.11问题二答案详情蚂蚁庄园每日一题怎么参与:1、首先打开支付宝

以下哪个职业专门修复破损的彩妆产品是蚂蚁新村今日问题,蚂蚁新村今日答案是彩妆修复师,一些贵的彩妆还是修复之后再利用更具有性价比,具体内容一起跟随小编看看这篇2024蚂蚁新村今日答案2.22最新,希望能够给你带来帮助。蚂蚁新村今日答案最新蚂蚁新村今日答案2.22问题:以下哪个职业专门修复破损的彩妆产品答案:彩妆修复师解析:彩妆修复师是专门修复破损彩妆产品的手艺人,他们通过研磨、加热、消毒、塑型、分装等各种工序,将已经破损的彩妆产品进行重新修复。
