02 2021 档案
摘要:A. Dense Array 链接: https://codeforces.com/contest/1490/problem/A 思路: 贪心。找到一对不满足的数,求最大值是最小值2的几次幂倍就好。 代码: #include<iostream> #include<cstdio> #include<c
阅读全文
摘要:写在前面,网上的一些教程实在一言难尽,,,当然我这篇也是(狗头)。所以我打算写一篇自己可以理解的树状数组维护区间最值,以最大值举例。需要树状数组维护区间和的相关知识,好,进入正题。 1 前言 c[i]的意义:c[i]代表原数组区间[i-lowbit(i)+1,i]内的最大值。 和维护区间和类似,c[
阅读全文
摘要:个人对dp的理解: 记忆化,从小到大,先求出小问题的最优解,然后状态转移逐步求出原问题的解。递推是神,des。 使用dp前提: 能拆分为子问题并能求出状态转移方程,原问题是最优解的同时子问题也都是最优解。 无后效性,也就是一个状态的值只与当前有关,此刻求出多少就是多少。且不会因为达到最优地方式的不同
阅读全文
摘要:1 01背包 定义状态为背包容量为j时,装入前i个物品能达到的最大价值,设为dp[i][j]。 状态转移方程为: j<w,dp[i][j] = dp[i-1][j] //背包装不下该物品,最大价值不变 j>=w, dp[i][j] = max( dp[i-1][j-w[i]] + v, dp[i-1
阅读全文
摘要:单调栈优化求最大连续上升子序列。 先说说什么是单调栈,此部分内容转自 https://blog.csdn.net/lucky52529/article/details/89155694 1 单调栈 有两种: 单调递增栈:数据出栈的序列为单调递增序列,也就是从栈底到栈顶的数据从大到小。 单调递减栈:数
阅读全文
摘要:upper_bound与lower_bound函数 格式 两个函数用法类似,都是对一个有序序列的一个左闭右开的有序区间进行二分查找,区间左端点和右端点分别为第1、2个参数,第三个参数是查找的值,第四个参数可填一个cmp函数。以下用upper_bound函数举例。 1 对于一个升序序列或不下降序:up
阅读全文
摘要:一维树状数组 有两张图觉得很好用,转载过来了: 原地址 https://blog.csdn.net/bestsort/article/details/80796531 对于原数组$arr$: 单点更新,区间查询 均为$O(logn)$ #include<cstdio> #include<iostre
阅读全文
摘要:常用算法模板(持续更新,大概) 快速幂 typedef long long ll; ll qpow(ll x,int n) { ll ans=1; while(n) { if(n&1) ans*=x; n>>=1; x*=x; } return ans; } //如果对p取模 typedef lon
阅读全文

浙公网安备 33010602011771号