摘要:
二分 求一个序列的最长上升子序列个数。 本程序采用边读边处理 + 二分法。 ll f[maxn], ans = 1; //注意答案个数初始化为1 int main() { ll n = read(); for (int i = 1; i <= n; ++i) { int x = read(); if 阅读全文
posted @ 2021-06-29 10:11
EdisonBa
阅读(154)
评论(0)
推荐(0)
摘要:
使用前提:数列为有序数列。 ①数组内 //查找范围:[ begin , end ) ,左闭右开区间。 *lower_bound(begin, end, num); //返回第一个 >= num 的数的数值 lower_bound(begin, end, num) - begin; // 返回下标 实 阅读全文
posted @ 2021-06-29 10:07
EdisonBa
阅读(759)
评论(0)
推荐(0)
摘要:
快速乘法取余 给定三个整数 \(a,n,mod\) ,求 \(a \times n ~\%~mod\) 的值。 inline int mult_mod(int a, int n, int mod) { int ans = 0; while (n > 0) { if (n & 1) ans = (an 阅读全文
posted @ 2021-06-29 10:04
EdisonBa
阅读(54)
评论(0)
推荐(0)
摘要:
最大公约数 ① 标准 inline int gcd(int a, int b) { int r; while (b > 0) { r = a % b; a = b; b = r; } return a; } ② 位运算 inline int gcd(int a, int b) //a,b不能为0 { 阅读全文
posted @ 2021-06-29 10:03
EdisonBa
阅读(120)
评论(0)
推荐(0)
摘要:
给定一个整数 \(n\) ,求出 $[2,n] $ 之间的所有素数。 prime 数组存放已经筛出的素数, \(m\) 代表素数个数(也就是说遍历时从 \(1\) 遍历到 \(m\) 即可),v 数组代表有没有被标记,避免重复筛。 int v[maxn], prime[maxn], n, k, t, 阅读全文
posted @ 2021-06-29 10:01
EdisonBa
阅读(34)
评论(0)
推荐(0)

浙公网安备 33010602011771号