12 2024 档案

摘要:LIS是动态规划中经典的问题。 首先我们令f[i]表示前i个元素中最长上升(不下降同理)子序列长度,那么我们有: $f[i] = max{f[j] + 1 | a[i] > a[j]} $ 朴素的算法当中我们在外层枚举1~n,内层枚举1~i-1来挨个比较转移,这样的时间复杂度是 $ O(n^{2}) 阅读全文
posted @ 2024-12-18 19:46 孤枕 阅读(50) 评论(0) 推荐(0)
摘要:在素数筛法当中,首先先讲一下朴素的筛法和埃氏筛。 朴素筛法:对于任何一个数\(i\),我们从2到\(sqrt(i)\)挨个枚举看是不是i都无法整除这些数,如果是的话那么就说明\(i\)是素数,反之则不是 埃氏筛:我们发现,在朴素筛法当中我们希望枚举每个数的因子,也就是说,当我们判断4是不是素数,我们 阅读全文
posted @ 2024-12-13 09:28 孤枕 阅读(318) 评论(0) 推荐(2)
摘要:原题在这里 题目大意:给定n个数,求出这n个数中第k小的数。 做法: 1.首先直接想到的肯定是直接排序然后\(O(1)\)输出即可。这样的时间复杂度是\(O(nlogn)\),由于题目中n的数据范围过大我们无法接受。 2.再想到,我们在进行快速排序的过程中,随机选取一个数作为基准,每次将比它大的数放 阅读全文
posted @ 2024-12-11 11:23 孤枕 阅读(61) 评论(0) 推荐(0)
摘要:万能头: #include<bits/stdc++.h> cin加速: ios::sync_with_stdio(0); cin.tie(0); 快读: inline int read() { int x=0,f=1;char ch=getchar(); while (ch<'0'||ch>'9') 阅读全文
posted @ 2024-12-11 10:32 孤枕 阅读(27) 评论(0) 推荐(0)