摘要:
浅谈差分约束 1.定义: 如果一个系统由$n$个变量和$m$个约束条件组成,并且条件都为形如$a_i-a_j\le k$的不等式,则称其为差分约束系统。 差分约束系统是一种特殊的$n$元一次不等式组,每个约束条件都为两个变量作差构成。 2.模型转换: 求解差分约束系统,可以转化成图论中的 阅读全文
摘要:
浅谈背包问题 问题原型: 有一个背包,总体积为V,现有N个物品,每个物品都有一个体积Vi与价值Wi,问如何选择物品,使得在总体积不超过V的前提下价值最大。 类型1:0/1背包 限制条件:每个物品只有一个 朴素做法: 经典的动态规划问题,设置$$F(i,j)$$为遍历到第i个物品,包内体积为j 阅读全文
摘要:
浅谈动态规划 前言 本蒟蒻认为,在算法竞赛中,最重要的两个算法就是动态规划和搜索。后者可以暴力骗分,也可通过剪枝或记忆化、迭代加深等优化来解决问题。而前者则可以在非指数级时间复杂度内解决许多抽象而复杂的问题。 定义 动态规划(\(DP,Dynamic Programming\))是求解决策问 阅读全文
摘要:
三门问题 代码: #include<bits/stdc++.h> using namespace std; int random(int l,int r)//1车 {return rand()%(r-l+1)+l;} int main() { // set(jzw.cpp,"-static-libg 阅读全文
摘要:
概率与期望 定义: 1.概率:概率,亦称“或然率”,它是反映随机事件出现的可能性大小。随机事件是指在相同条件下,可能出现也可能不出现的事件。 2.在概率论和统计学中,期望是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。 计算式: \[ P(A) 阅读全文
摘要:
2020CSP—S模板 仅以此篇,纪念一年左右的OI生涯,预祝大家CSP RP++ 算法 二分: while(l<r) { int mid = (l+r)>>1; int ans = solve(mid); if(ans>m) l=mid+1; else r=mid; } 离散化 for(int i 阅读全文
摘要:
洛谷:P2538 [SCOI2008]城堡 题目传送门 模拟退火: 定义:模拟退火算法是一种随机化算法。其原型来源于固体的退火过程。将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小 阅读全文
摘要:
洛谷P1731 生日蛋糕 题目传送门 题解 搜索+剪枝: 众所周知,暴力搜索的时间复杂度是O(N!)的,也就是说,仅仅能过N<10左右的数据。而我们优化搜索的方式一般有两种,一种是优化枚举顺序,使得答案更早的出现。另一种是剪枝,去除不可能的情况。 对于本题而言,我们有三种剪枝策略: 1.如果剩余体积 阅读全文
摘要:
洛谷 P1180 石子合并 题目传送门 区间DP模板题,枚举起点终点、中间点再进行转移即可。 方程为 这里我们可以使用前缀和来维护区间查和 值得注意的是,这里的石子围成一圈,我们可以把一个圈拆成两条链处理。 最后只需遍历dp(i,i+n-1)即可 #include<cstdio>#define ma 阅读全文
摘要:
洛谷:P2831 愤怒的小鸟 题目传送门 本题是一道很明显的状压DP,麻烦的是浮点数的处理和抛物线的计算,这里讲一些注意事项: 一.浮点数判相等: 二.抛物线的判断: 题目中的抛物线有两个未知数,在正常情况下,每两点便可确定一条抛物线,但以下情况除外: 1.两点所在的直线经过原点 2.两点横坐标相等 阅读全文