首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
51nod 1061 最复杂的数V2
2024-11-07
51nod 1061 最复杂的数V2
题目链接 51nod 1061 题面简述 求\([1, n]\)中约数个数最多的数. \(n \le 10^{200}\) 题解 首先,答案一定是一个反素数. 什么是反素数? 一个正整数\(x\)是反素数的充要条件是:\([1, x - 1]\)中的整数的约数个数都小于\(x\)的约数个数. 反素数有什么性质? 把一个反素数分解成\(p_1^{a_1}p_2^{a_2}...p_n^{a_n}\)的形式,则\(a_1 \ge a_2 \ge ... \ge a_n\). 除\(1\)以外,一个反
【51nod】1061 最复杂的数 V2
题解 我是榜上最后一名= = 可能高精度用vector太慢了吧--什么破题= = 这道题很简单,如果高精度熟练代码--也很简单--然而,参数调了好久 我们发现质数的指数一定是,质数越小,指数越大,这个很显然我不说了 所以我们就用个优先队列BFS就好,队列按数从小到大排序,每次把队列的数取出来作为下一个我们需要的数(也就是大小递增且约数个数严格递增),删掉队列首比这个数约数个数小的数 然后用这个数再扩展一层质数,注意剪枝吧.. 预处理好后回答询问二分就行 质数大小开到85,搜出来的数的总量3810
51Nod 1084:矩阵取数问题 V2(多维DP)
1084 矩阵取数问题 V2 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上.第1遍时只能向下和向右走,第2遍时只能向上和向左走.两次如果经过同一个格子,则该格子的奖励只计算一次,求能够获得的最大价值. 例如:3 * 3的方格. 1 3 3 2 1 3 2 2 1 能够获得的最大价值为:17.1 -> 3 -> 3 -> 3 -&
51nod 1218 最长递增子序列 V2——LIS+思路(套路)
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1218 自己怎么连这种 喜闻乐见的大水题 都做不出来了…… 好像见过的套路,就是求每个位置到它为止的LIS和从它开始的LIS,最后拼起来是ans+1的就在LIS上. 然后试图通过方案数来判断经过该位置的LIS有多少,以判断该位置是不是唯一的. WA了一次后发现自己的树状数组传参没有-1,求成非严格的了. 还是WA了后面的点.给方案数开了long long后多A了几个
51nod 1218 最长递增子序列 V2(dp + 思维)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1218 题解:先要确定这些点是不是属于最长递增序列然后再确定这些数在最长递增序列中出现的次数,如果大于1次显然是可能出现只出现1次肯定是必然出现.那么就是怎么判断是不是属于最长递增序列,这个只要顺着求一下最长递增标一下该点属于长度几然后再逆着求一下最长递减标一下该点属于长度几如果两个下标之和等于最长长度+1那么该点就属于最长递增序列,然后就是求1-len(le
51nod 1053 最大M子段和 V2
N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的.如果M >= N个数中正数的个数,那么输出所有正数的和. 例如:-2 11 -4 13 -5 6 -2,分为2段,11 -4 13一段,6一段,和为26. 收起 输入 第1行:2个数N和M,中间用空格分隔.N为整数的个数,M为划分为多少段.(2 <= N , M <= 50000) 第2 - N+1行:N个整数(-10^9 <= a[i] <= 1
51nod 1132 覆盖数字的数量 V2
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1132 题意是给定a,b,l,r求[l,r]内有几个整数可以表示成ax+by(x,y为非负整数). 直接算l<=ax+by<=r会重复计算一个数的多种表示方法,而两种表示方法(x,y)总是相差k*(b/gcd(a,b),-a/gcd(a,b)),因此可以限制y取最小值进行去重 即x>=0,y>=0,l<=ax+by<=r,y<a/gcd(a
51nod 1479 小Y的数论题
一脸不可做题~~~233333 T<=100000,所以一定要logn出解啦. 但是完全没有头绪*&#……%*&……()……#¥*#@ 题解: 因为2^p+2^p=2^(p+1) 发现这个式子和原式很像诶~~~ 所以:2^(kab)+2^(kab)=2^(kab+1) 发现,只要选择合适的k,使得(kab+1)|c即可. 即:kab+1=lc lc-kab=1 exgcd出解. 因为(a,b,c)=1所以一定有解. 然后快速幂整出来x,y,z,对m取余 但是,当m是2的整次幂的时候,
51nod 1060 最复杂的数
把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数. 例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6.如果有多个数复杂度相等,输出最小的. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 100) 第2 - T + 1行:T个数,表示需要计算的n.(1 <= n <= 10^18) Output 共T行,每行2个数用空格分开,第1个数是答案,第2个数是约数的数量. Input示例
51nod 1060 最复杂的数 反素数
1060 最复杂的数 基准时间限制:1 秒 空间限制:131072 KB 把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数. 例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6.如果有多个数复杂度相等,输出最小的. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 100) 第2 - T + 1行:T个数,表示需要计算的n.(1 <= n <= 10^18) Output 共T行,每行2
热门专题
Unity 集成iOS第三方SDK
微信支付 v3 refund php
sql2012共享功能目录无法更改
jmeter 循环控制器怎样并发
bootstrap datepicker 回显1899
系统保护 系统c(找不到)
workservice 部署Linux
查锁表 select
ef tools 更新数据库
sublimetext 可以看md
shift 变成了粘贴
基本演绎法第一季下载
linux c高精度定时器
uniapp tab切换 swiper滑动居中
oracle 根据两个日期计算年龄
matelable跑的是cpu还是gpu
php 将二维数组中的值全部转换为字符串
jquery 自动签名
android 如何监听返回按键kecode
开启vpnservice失败华为手机