摘要:
题目 题目描述 舒克和贝塔终于下定决心要去营救被关押在众猫聚居的$A$城中的大米。 $A$城的构造是很奇怪的。$A$城中的所有$N$栋建筑沿着一条直线排列,没有两栋楼的高度相同,而大米就被关押在其中的某栋建筑中。每一栋建筑的顶上都有一些猫在看守。如果按照从一端到另一端的顺序将所有的建筑编号为$1$~ 阅读全文
摘要:
设$A$为一个有$n$个数字的有序集$(n>1)$,其中所有数字各不相同。 如果存在正整数$i,j$使得$1 ≤ i < j ≤ n$而且$A[i] > A[j]\(,则\)<A[i], A[j]>$这个有序对称为$A$的一个逆序对,也称作逆序数。 ——百度 1.冒泡排序 思想 我们的冒泡排序的思想 阅读全文
摘要:
题目描述 重庆八中在$80$周年校庆的时候获捐$n$个杯子, 每个杯子有两个属性:一个是已装水量$ai$,一个是可装水量$bi$(\(ai <= bi\))。 从一个杯子向另一个杯子倒$x$单位体积的水需要花费的时间是$x$秒。 现在用$n$ 个杯子中的$k$个来装所有的水, 求最小的$k$, 以及 阅读全文
摘要:
传送门 思路$1$ 十分经典的一道DP题。 转移方程式为: f[j]+=f[j-a[i]]; 我们首先定义$f[i][j]$表示前$i$个菜品恰好花费$j$元的方案数。 当我们买第$i$道菜时: f[i][j]+=f[i-1][j-a[i]]; 当我们不买第$i$道菜时: f[i][j]+=f[i- 阅读全文
摘要:
题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V是花瓶的数目。花束可以移动,并且每束花用1到F的整数标识。如果I < J,则花束I必须放在花束J左边的花瓶中。例如,假设杜鹃花的标识数为1,秋海棠的标识数 阅读全文
摘要:
题目传送门 思路 我们可以把依赖关系用一棵树来表示,我们选了一个节点就节点的父亲都要选。 然后我们可以把有依赖的背包问题看成是分组背包问题,每一个结点是看成是分组背包问题中的一个组,子节点的每一种选择我们都看作是组内的一种物品,因此我们可以通过分组背包的思想去写。 但我们如何去遍历子节点的每一种选择 阅读全文
摘要:
题目传送门 思路 我们其实可以发现,我们如果要$(x,y)$这个点能被看见的话,我们就需要$gcd(x,y)==1$。 我们就可以打一个暴力: #include <bits/stdc++.h> using namespace std; int n,ans; int main() { scanf("% 阅读全文
摘要:
题目传送门 思路 我们的方法是:二分+贪心+倍增。 我们可以知道:如果这个时间可以让题意满足,则比它大的时间也可以让题意满足。 所以有单调性,我们就可以二分答案。 但$check$函数怎么打呢?我们要使用贪心:显然我们希望每个军队都停留在深度更小的节点(从而管理更多的路径),所以我们就需要军队向上走 阅读全文
摘要:
题目传送门 思路 我们首先求出最小生成树,可知次小生成树与最小生成树只有一边之差(恶心)。 证明 我们先求一个最小生成树。 然后,我们加入一条没有使用过的边加入,就会形成一个环。 我们设这个环上最大值为$Val_1$,次大值为$Val_2$。 所以我们$Val_1>Val_2$。 我们将加入的边替换 阅读全文
摘要:
1.Floyd(弗洛伊德) $Floyd$算法可以求出任意两点的最短路径,相当于求解$n$次单源最短路径问题,并且十分简单,时间复杂度为$O(n^3)$。 思想 Floyd算法是动态规划。我们设 $f [ k ][ i ][ j ]$表示“经过若干个标号不超过$k$的节点”从$i$到$j$的最短路长 阅读全文