![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础算法
加油
执著者√
!
展开
-
第 k 个除数(试数法,约数)
给定两个整数 n 和 k,请你找到并输出能够整除 n 的第 k 小的正整数。输入格式一行,两个整数 n 和 k。输出格式输出能够整除 n 的第 k 小的整数。如果不存在,则输出 −1。数据范围1≤n≤1015,1≤k≤109。输入样例1:4 2输出样例1:2输入样例2:5 3输出样例2:-1算法:x能整除n,那么x一定是n的约数,因此可以先把n的所有约数先求出来;这里求约数的时候,用i * i <= n 比 i <= n / i 快~C++代码:#inc原创 2021-08-05 14:49:51 · 140 阅读 · 0 评论 -
单调栈(模板)
给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。输入格式第一行包含整数 N,表示数列长度。第二行包含 N 个整数,表示整数数列。输出格式共一行,包含 N 个整数,其中第 i 个数表示第 i 个数的左边第一个比它小的数,如果不存在则输出 −1。数据范围1≤N≤1051≤数列中元素≤109输入样例:53 4 2 7 5输出样例:-1 3 -1 2 2C++代码:#include <iostream>using namespac原创 2021-07-25 11:23:06 · 59 阅读 · 0 评论 -
最大的和(双指针,滑动窗口)
给定一个长度为 n 的正整数数列 a1,a2,…,an。初始时,数列中的每个元素要么处于可选状态,要么处于不可选状态。你可以选择一个长度恰好为 k 的区间 [i,i+k−1],使得 ai∼ai+k−1 这 k 个元素的状态全部变为可选。请问,在经过此操作后,所有处于可选状态的元素之和最大是多少。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数 ai。第三行包含一个长度为 n 的 01 序列,如果第 i 个数为 1,表示 ai 的初始状态为可选,如果第 i 个数为 0,表示 ai原创 2021-05-12 21:14:18 · 328 阅读 · 0 评论