洛谷复习
XH_Source
这个作者很懒,什么都没留下…
展开
-
凌波微步-set的运用(去重)
题目描述 小Z的体型实在是太胖了,每次和小D一起出门都跟不上小D的脚步,这让小Z很气馁,于是小Z跋山涉水,仿名山,遍古迹,终于找到了逍遥派。掌门看小Z求师虔诚,决定传小Z一套《凌波微步》。 这种腿法可以无视距离的行进,但缺点是只能走向高处,否则强行发功极易走火入魔。 一天,练习《林波微步》的小Z来到一处练武场,这里从左到右,共有n个木桩,这些木桩有高有低,在这里小Z勤奋的练习着凌波微步,你知道小Z在这处练武场最多能练习多少次么? 输入描述: 本题有T组数据 对于每组数据 第一行有一个正整数n表示有多少个木桩原创 2021-01-26 16:06:49 · 202 阅读 · 0 评论 -
合并果子—优先队列的运用
题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n-1n−1 次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为 11 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费原创 2021-01-26 15:49:43 · 87 阅读 · 0 评论 -
洛谷题目复习1
洛谷 P1004 P1910 P1004 解题思路: 1.第一想法是DFS,但是双路两遍DFS不能保证最优解,双路同时DFS是能够想到的。 双路DFS实现也需要剪枝。 2.动态规划,类似01背包,思维数组记录每个状态。 动态规划代码实现: #include<iostream> #define REP(i,a,b) for(int i=(a);i<=(b);i++) using namespace std; int a[51][51]; int sum[51][51][51][51]; in原创 2020-10-22 21:19:12 · 116 阅读 · 0 评论 -
洛谷题目复习2
洛谷 P1003 P1003 解题思路: 1.暴力,二维数组循环赋值,超时 2.一维数组,只记录坐标点,输入坐标点的时候,一块一块地区判断是否在节点内, 更新目前所在位置。 代码实现: #include<iostream> using namespace std; int a[50500],b[50050],g[50050],k[50050],ans=-1; int main() {int n; cin>>n; for(int i=1;i<=n;i++) {cin>>原创 2020-10-22 20:05:14 · 63 阅读 · 0 评论