首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

51Nod--1010 只包含因子2 3 5的数

problemId=1010 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 K的因子中只包含2 3 5。...满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15。 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数。...(1 <= T <= 10000) 第2 - T + 1行:每行1个数N(1 N <= 10^18) Output 共T行,每行1个数,输出>= n的最小的只包含因子2 3 5的数。...Input示例 5 1 8 13 35 77 Output示例 2 8 15 36 80 先枚举出所有的因子只含有 2、3、5 的数字,用一个三重循环就行了...然后使用二分查找找出数组中第一个大于等于指定值的元素就是答案。因为题给出的数字范围是1~10^18 所以储存数字的时候使用 long long 数据类型。

61320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2021-08-26:长度为N的数组arr,一定可以组成N^2个数字对。例如arr = ,数字对有(3,3) (3

    2021-08-26:长度为N的数组arr,一定可以组成N^2个数字对。...例如arr = [3,1,2],数字对有(3,3) (3,1) (3,2) (1,3) (1,1) (1,2) (2,3) (2,1) (2,2),也就是任意两个数都可以,而且自己和自己也算数字对,数字对怎么排序...第一维数据从小到大;第一维数据一样的,第二维数组也从小到大,所以上面的数值对排序的结果为:(1,1)(1,2)(1,3)(2,1)(2,2)(2,3)(3,1)(3,2)(3,3)。...给定一个数组arr,和整数k,返回第k小的数值对。 福大大 答案2021-08-26: 1.暴力解。 时间复杂度:(N^2 * log(N^2)). 2.下标定位+bfprt算法。 2.1.k--。...2.2.定位下标i1和i2。 i1=k/N。 i2=k%N。 2.3.根据bfprt算法求出第i1小和第i2小的数。 时间复杂度:O(N)。 空间复杂度:O(1)。arr数组里的元素顺序会发生变化。

    28640

    2022-07-17:1、2、3...n-1、n、n、n+1、n+2... 在这个序列中,只有一个数字有重复(n)。 这个序列是无序的,找到重复数字n。 这个序

    2022-07-17:1、2、3...n-1、n、n、n+1、n+2...在这个序列中,只有一个数字有重复(n)。这个序列是无序的,找到重复数字n。这个序列是有序的,找到重复数字n。...第一问,两种方法,快慢指针找环问题和异或法。第二问,二分法。代码用rust编写。...异或方式"); break; } arr.sort(); if right(&mut arr) !...一个结论 return slow;}// 符合题目要求的、无序数组,找重复数// 时间复杂度O(N),额外空间复杂度O(1)// 用异或fn find_duplicate2(arr: &mut Vec...一个结论 return ans;}// 符合题目要求的、有序数组,找重复数// 时间复杂度O(logN),额外空间复杂度O(1)fn find_duplicate_sorted(arr: &mut

    82710

    2023-05-17:一个正整数如果能被 a 或 b 整除,那么它是神奇的。 给定三个整数 n , a , b ,返回第 n 个神奇的数字。 因为答案可能很大,

    2023-05-17:一个正整数如果能被 a 或 b 整除,那么它是神奇的。给定三个整数 n , a , b ,返回第 n 个神奇的数字。...2.初始化变量 l 为0,变量 r 为 (n * min(a, b)),其中 min(a, b) 表示 a 和 b 中的最小值。在这个范围内通过二分查找获得第 n 个神奇数字。...3.对于每个二分查找猜测值,计算在 a和b中出现的神奇数字个数:m/a + m/b。然后计算 a 和 b 的公共倍数 lcm 在 m 范围内出现的神奇数字个数:m/lcm。...4.如果出现的神奇数字总数大于或等于 n,则将当前猜测值存储在变量 ans 中,并将右边界向左移动一位(即缩小区间的范围)。...在这个算法中,使用了二分查找来搜索第 n 个神奇数字。在最坏情况下,二分查找的迭代次数为 O(logN)。因此,时间复杂度为 O(logN)。

    39500

    2021-08-26:长度为N的数组arr,一定可以组成N^2个数字

    2021-08-26:长度为N的数组arr,一定可以组成N^2个数字对。...例如arr = 3,1,2,数字对有(3,3) (3,1) (3,2) (1,3) (1,1) (1,2) (2,3) (2,1) (2,2),也就是任意两个数都可以,而且自己和自己也算数字对,数字对怎么排序...第一维数据从小到大;第一维数据一样的,第二维数组也从小到大,所以上面的数值对排序的结果为:(1,1)(1,2)(1,3)(2,1)(2,2)(2,3)(3,1)(3,2)(3,3)。...给定一个数组arr,和整数k,返回第k小的数值对。 福大大 答案2021-08-26: 1.暴力解。 时间复杂度:(N^2 * log(N^2)). 2.下标定位+bfprt算法。 2.1.k--。...2.2.定位下标i1和i2。 i1=k/N。 i2=k%N。 2.3.根据bfprt算法求出第i1小和第i2小的数。 时间复杂度:O(N)。 空间复杂度:O(1)。arr数组里的元素顺序会发生变化。

    41510

    C++有默认参数的函数 | 求2个或3个中的最大数

    如果有多个形参,可以使每个形参有一个默认值, 也可以只对一部分形参指定默认值,另一部分形参 不指定默认值。 经典案例:C++求2个或3个正整数中的最大数,要求使用默认参数。...>>num3;   max1=Max(num1,num2,num3);//调用函数,注意次数的参数有3个    cout<<max1<<endl;   cout<<"____________"<<endl...;   max2=Max(num1,num2);//调用函数,注意次数的参数有2个    cout2<<endl;   return 0; } int Max(int num1,int num2...,int num3)//函数定义  {   if(num2>num1)//把较大的数赋值给num1    {     num1=num2;   }   if(num3>num1)//把较大的数赋值给num1...C++求2个或3个中的最大数 更多案例可以go公众号:C语言入门到精通

    1.4K2828

    2022-04-18:things是一个N*3的二维数组,商品有N件,商品编号从1~N, 比如things = , 代表第3号商品:

    2022-04-18:things是一个N*3的二维数组,商品有N件,商品编号从1~N, 比如things3 = 300, 2, 6, 代表第3号商品:价格300,重要度2,它是6号商品的附属商品, 再比如...things6 = 500, 3, 0, 代表第6号商品:价格500,重要度3,它不是任何附属,它是主商品, 每件商品的收益是价格*重要度,花费就是价格, 如果一个商品是附属品,那么只有它附属的主商品购买了...,它才能被购买, 任何一个附属商品,只会有1个主商品, 任何一个主商品的附属商品数量,不会超过2件, 主商品和附属商品的层级最多有2层。...0}}, {{400, 5, 1}}, {{300, 5, 1}}, {{400, 3, 0}}, {{500, 2, 0}}} n := clean(things, size) fmt.Println...= -1 { p2 += a[0] * a[1] } p3 := -1 if b !

    25020

    2023-11-22:用go语言,给你一个长度为 n 下标从 0 开始的整数数组 nums。 它包含 1 到 n 的所有数字,请

    2023-11-22:用go语言,给你一个长度为 n 下标从 0 开始的整数数组 nums。 它包含 1 到 n 的所有数字,请你返回上升四元组的数目。...输入:nums = [1,3,2,4,5]。 输出:2。 来自左程云。 答案2023-11-22: go代码用灵捷3.5编写。 rust代码用讯飞星火编写。 c++的代码用天工编写。...c.再次遍历当前元素之前的所有元素(下标小于当前元素的下标),如果当前元素大于前一个元素,则将cnt加到dp[j]上;否则,将dp[j]加上cnt的整数值。 3.返回ans作为结果。...b.遍历当前元素之前的所有元素(下标小于当前元素的下标),如果当前元素大于前一个元素,则将dp[j]加到ans上,并将cnt加1;否则,将dp[j]加上cnt的整数值。 3.返回ans作为结果。...总的时间复杂度:两种算法的时间复杂度都是O(n^2),因为需要两层循环遍历数组。 总的额外空间复杂度:两种算法的空间复杂度都是O(n),因为需要使用一个长度为n的动态规划数组dp。

    19930

    2022-09-09:给定一个正整数 n,返回 连续正整数满足所有数字之和为 n 的组数 。 示例 1: 输入: n = 5 输出: 2 解释: 5 = 2 +

    2022-09-09:给定一个正整数 n,返回 连续正整数满足所有数字之和为 n 的组数 。...= 左 K 右 2x + k + 1 2N 奇数因子K, 2x + k + 1 也就是说,对于每一种方案,k和2x + k + 1,一定是不同的,并且连奇偶性都相反 所以2N里任何一个奇数因子,可能作为...N的质数因子:可以选择0个3..可以选择1个3...可以选择2个3...可以选择a个3,所以有a+1种选择 上面的选择,去乘以:可以选择0个5..可以选择1个5...可以选择2个5...可以选择b个5,...= 1表示只残留着最后一个奇数因子了 // 简单证明:如果N最后残留着不只一个奇数因子, // 比如x*y(不妨设xN //...= 1表示只残留着一个奇数因子 return if n == 1 { res } else { res << 1 }; } 执行结果如下: 图片 左神java代码

    73910

    3 个进程 P1、P2、P3 互斥地使用一个包含 N(N > 0)个单元的缓冲区。P1 每次用 produce() 生成一个正整数,并用 put() 将其送入缓冲区的某一空单元中 ;P2每次用 get

    3 个进程 P1、P2、P3 互斥地使用一个包含 N(N > 0)个单元的缓冲区。...P1 每次用 produce() 生成一个正整数,并用 put() 将其送入缓冲区的某一空单元中 ;P2每次用 getodd() 从该缓冲区中取出一个奇数,并用 countodd() 统计奇数的个数 ;...P3 每次用geteven() 从该缓冲区中取出一个偶数,并用 counteven() 统计偶数的个数。...请用信号量机制实现这 3 个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。...// 互斥信号量 mutex = 1; // 共享内存中的偶数个数 even = 0; // 奇数个数 odd = 0; // 共享内存的剩余空间 empty = n; p1(){ while

    78240

    《剑指offer》– 构建乘积数组、求1+2+3+…+n、不用加减乘除做加法、包含min函数的栈、用两个栈实现队列

    一、构建乘积数组: 1、题目: 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]*A[1]*…*A[i-1]*A[i+1]*…*A[n-1...3、代码实现: public class Solution { public int Sum_Solution(int n) { //利用&&的短路特性,&&就是逻辑与,逻辑与有个短路特点...四、包含min函数的栈: 1、题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。...2、第一种解题思路: 借助辅助栈存储min的大小,自定义栈结构 list 3,4,2,5,1 辅助栈 3,3,2,2,1 每入栈一次,就与辅助栈顶比较大小,如果小就入栈,如果大就入栈当前的辅助栈的栈顶元素...第二种解题思路: 每次入栈2个元素,一个是入栈的元素本身,一个是当前栈元素的最小值。

    37430
    领券