摘要:
题目链接:戳这里 题意:从(1,1)出发,一遍把格子走完,每个格子只能走一次。问怎么走总和最大。 解题思路:画图可知,总共就3种走法的混合。 dw: 样例1的走法 up: 样例1反过来的走法 lp: 样例2的走法 两种组合情况: 先lp,后dw或up 我的思路是暴力预处理。把dw,up,lp三种走法 阅读全文
摘要:
hdu - 1166 敌兵布阵(求和) 题目链接:戳这里 1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <algorithm> 5 #include <cmath> 6 #include <vector 阅读全文
摘要:
题目链接:戳这里 转自:参考博客 题意:给一个n*m的矩阵,放入q个点,这q个点之间的关系是,若已知这样三个点(x1,y1),(x2,y1),(x1,y2),可以在(x2,y2)处生成一个新的点,对于新的点和被使用过的点都能重复使用,问你最少需要在矩阵汇总添加多少个点是的整个矩阵被点铺满? 解题思路 阅读全文
摘要:
题目链接:戳这里 转自:戳这里 关于splay入门:戳这里 题意:给n个数,进行m次操作,每次都从n个数中取出连续的数放在最前面。 解题思路:splay的区间操作。 附代码: 1 #include<iostream> 2 #include<stdio.h> 3 using namespace std 阅读全文
摘要:
题目链接:戳这里 转自:戳这里 题意:长度为n的序列,删掉m个数字后有多少种不同的序列。n<=10^5,m<=10。 题解:dp[i][j]表示加入第i个数字后,总共删掉j个数字时,有多少种不同的序列。假设不考虑有重复的情况,dp方程为:dp[i][j]=dp[i-1][j] (第i个数字不删)+d 阅读全文
摘要:
csdn博客: 快戳这里 github博客:快戳这里 博客园仍会偶尔更新。 阅读全文
摘要:
参考博客: 戳这里 还有这里 这里这里 树状数组的用途就是维护一个数组,重点不是这个数组,而是要维护的东西,最常用的求区间和问题,单点更新。但是某些大牛YY出很多神奇的东西,完成部分线段树能完成的功能,比如区间更新,区间求最值问题。 树状数组当然是跟树有关了,但是这个树是怎么构建的呐?这里就不得不感 阅读全文
摘要:
题目链接:戳这里 题意:有A只蚂蚁,来自T个家族,每个家族有ti只蚂蚁。任取n只蚂蚁(S <= n <= B),求能组成几种集合? 这道题可以用dp或母函数求。 多重集组合数也是由多重背包问题拓展出来的一类经典问题,而此类问题也都可以用母函数求. 给大家讲2种方法: ①朴素方法: 状态:dp[i][ 阅读全文
摘要:
这段时间刷dp,总结出了一个不算套路的套路。 1.根据题意确定是否有重叠子问题,也就是前面的状态对后面的有影响,基本满足这个条件的就可以考虑用dp了。 2.确定是dp后,就是最难的部分——如何根据题意选定正确的状态,比如dp[i][j]表示前i个物品价格为j的所有可能。(这个需要刷题积累经验,暂时还 阅读全文
摘要:
Keeping track of all the cows can be a tricky task so Farmer John has installed a system to automate it. He has installed on each cow an electronic ID 阅读全文