- 博客(69)
- 资源 (1)
- 收藏
- 关注
原创 HDU POJ 1190 生日蛋糕 dfs + 剪枝
题目链接:poj 1190题解:这题刚开始想不到搜索的初始状态,没办法下手,迷迷糊糊的,后来就想着 按照给定n的初始入手,吧未放置的第0层看成一个圆,不是立体,高度也设为n + 1, 然后 从下往上找。。。。 想这个思路 花了太长时间 。。。。虽然是一发a但是感觉 自己对搜索的理解 太浅 能力还是要提高啊AC code:#i
2016-08-30 23:11:32 622
原创 UVAlive 3092 无根树->有根树 dfs
题目链接:UVALA 3092题意:给定一个无根树,选其中一个非叶子节点作为服务器, 求要放置最小的服务器数满足 每个叶子节点到最近的服务器的距离最大为k,且服务器只能放在非叶子节点上。题解:先用dfs把无根树转成以给定服务器为根节点的有根树,那么 深度d AC code:#include#include#include#include
2016-08-29 10:19:24 661
原创 AOJ 455 POJ 1088 滑雪 dfs + 记忆化搜索
题目链接:AOJ 455 POJ1088AC code://package adruill;import java.util.Scanner;public class Main{ public static int dp[][] = new int[105][105],data[][] = new int[105][105]; public static i
2016-08-26 18:39:37 679
原创 HDU 5706 暴力dfs
题目链接:HDOJ 5706题意:给定字符矩阵,每一处可向四个方向组单词,求能够组成"girl"和"cat"的单词数。AC code:#include #include #include using namespace std;#define debug 1const int maxn = 1000 + 5;char da
2016-08-26 18:23:40 707
原创 UVA-LA 3971 组装电脑 二分枚举
题目链接:UVA-LA 3971题意:用不超过b的预算,购置电脑硬件,每种都需要购办一个,且要使品质最差的硬件的品质数最大。题解:二分枚举,在每种硬件里都选择比不小于当前品质(记为k)高硬件,如果预算不超过b,那么ans >= k;如果超过b,ans AC code:#include#include#include
2016-08-25 15:04:47 458
原创 HDOJ 1108 最小公倍数(java)
题目链接:HDOJ 1108AC code://package adruill;import java.util.Scanner;public class Main{ public static void main(String[] agrs){ Scanner in = new Scanner(System.in);
2016-08-24 18:35:51 579
原创 HDU 1042 N! 阶乘 高精度(java)
题目链接:HDOJ 1042\题意:求最大到10000的阶乘。题解:可想而知,n到10000时这个答案太大,所以必须要高精度;AC code:(java)//package adruill;import java.util.Scanner;public class Main { public static void main(St
2016-08-24 17:53:02 560
原创 UVA 11210 暴力枚举 + 递归(hdu 4431)
题目链接:UVA 11210 中国麻将题意:一般麻将的规则,给出13张手牌,按指定顺序输出可以“听”的牌,没有听牌输出“Not ready”;题解:这题和UVA 11464偶数矩阵的思路很像,在数量级小且无法判断的情况下进行必要的枚举以达到求解条件。AC code://lrl's submission//adru
2016-08-23 12:53:56 593
原创 这首歌 从不曾忘怀......让心把家回 为了你的美
世上最好吃的是亏这句话让我想了千百回倚天仗剑不为了征服谁最后看见你那一朵风中的玫瑰心上最难忘的是美这个字付出一生也无悔横刀立马究竟是为了谁走过风雨后再相会心中的安慰让我记住你的美忘了千百次伤悲就在你身边幸福着让心把家回让我记住你的美忘了千百次伤悲就在你身边幸福着让心把家回把家回
2016-08-22 19:56:21 1796
原创 AOJ 351 rmq或 基础线段树 求解
题目链接:AOJ 351RMQ:#include#include#include#include#includeusing namespace std;#define debug 0 const int maxn = 100000 + 5;int a[maxn],n,m,Max[maxn][20],Min[maxn][20];
2016-08-22 19:51:21 358
原创 UVA 11464 枚举方法
题目链接:UVA 11464题意:给定一个01矩阵,size:n * n,0可以变成1,1不可以转为0让你求出最小的变化数满足它成为一个偶数矩阵(任一点上下左右(存在)之和为偶数);题解:这题如果枚举所有01有2^255的复杂度。显然不行,可以降低枚举层次,只枚举第一层,然后根据偶数矩阵的特征递推,满足条件返回,不满足退出;ps:因为
2016-08-22 16:10:50 593
原创 Codeforces Round #368 (Div. 2) C
题目链接:CF 368 DIV2 C题意给定一个n(n>=1&&nAC code:#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL __int64#define debug 0
2016-08-20 23:06:14 442 2
原创 她
她估计不会看到这篇博文,这不是她的兴趣,也不算她可能关注的,包括我。大学一年了,大一下的某一天,我开始把她作为生活中的一部分。刚开始以为自己是单身太久,胡思乱想,结果.......这一学期啊,上专业集体课简直要了我的命,因为那时她离我最近,却让我明白心理距离还是那么远。我们算是很好的朋友吧,呵呵 其实这个问题我都不确定的。我喜欢水群,喜欢结识朋友,一直那么没心没肺,可这半学年,多了份奢望,
2016-08-20 19:34:44 451 1
原创 UVA 11300 Spreading the Wealth 分金币
题目链接:UVA 11300总结:还记得7月的某一天,有个学弟在群里问回答一个学长的问题,用的数学思维代数分析,虽然他回答漏了一些点,不过有这个思维就很不错,至少我在这方面比较缺的,今天开刷白皮书,第三题坚持没看题解,不过没成,思维偏了,都想着用dp了,关键找不到状态和复杂度啊,嘿嘿,懵逼,后来A掉后看了部分在vjudge提交的public代码,同题解。。。。
2016-08-20 17:21:15 423
原创 UVA 11137 母函数
题目链接:UVA 11137这题题用的母函数解法,还是不熟,有一发WA,AC CODE:#include#include#include#includeusing namespace std;#define debug 0#define M(a, b) memset(a, b, sizeof(a))const
2016-08-20 15:33:45 354
原创 呦吼
46道dp题解已经写完了,写的不是很好,不过勉强能交差,还有10天多一点的时间,剩下的时间:重点在dp和线段树的巩固,数论、图论也要系统的开刷了,撤!
2016-08-19 18:17:35 528
原创 暑期dp46道(46)--HDOJ 1069
题目链接:HDOJ 1069算水题了,重点就是 把n种block细分成3n种;AC CODE:#include#include#include#include#include#includeusing namespace std;#define debug 0#define M(a) memset(a,0,siz
2016-08-19 18:08:47 363
原创 暑期dp46道(45)--HDOJ 1257 最少拦截系统 最长递增子序列
题目链接:hdoj 1257AC CODE:#include#include#include#define debug 0#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)#define REP(o) for(int i=1;i<=o;i++)const int maxn =
2016-08-19 16:43:41 394
原创 暑期dp46道(44)--HDOJ 1058
题目链接:HDOJ 1058代码:(注意输出细节#include#include#include#define debug 0#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)#define REP(o) for(int i=1;i<=o;i++)__int64 ans[
2016-08-19 16:37:16 372
原创 暑期dp46道(43)--HDOJ 1159 最长公共子序列(可不连续)
题目链接:HDOJ 1159简单dp,裸题,直接上代码:#include#include#include#define debug 0#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)const int maxn = 1000 + 5;int dp[maxn][maxn];ch
2016-08-18 20:27:26 392
原创 暑期dp46道(42)--HDOJ 1789 Doing Homework again 贪心
题目链接:HDOJ 1789题意:和状压dp那个类似,不过这个和那个区别就是 这个每门作业都只要一天就可以完成,而且一旦没有在规定期限内完成就直接罚分,一次性罚完,所以这题可以直接排序后贪心做(做完每们作业所需时间(代价相同),贪心解这类题目较多)代码:#include#include#include#include#include#i
2016-08-18 20:15:31 416
原创 暑期dp46道(41)--HDOJ 1978 How many ways dfs + 记忆化搜索
题目链接:HDOJ 1978代码:#include#include#include#include#includeusing namespace std;#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)#define debug 0const int maxn
2016-08-18 20:07:01 451
原创 POJ 2342 Anniversary party树形dp
题目链接:POJ 2342题意:在一个公司里,每个成员都有各自的rating,要参加一次年会,规定 有直接上下级关系的任意两人不能同时参加,并且要使参加年会成员的rating值最大;题解:关于树形dp—树形dp总结而对于这题,对于么个成员都有去不去两种可能,用dp[i][0]表示他不去的最大rating值,dp[i][1]表示去的最大r
2016-08-18 17:32:54 352
原创 暑期dp46道(40)--HDOJ 2830 最大子矩阵面积 额
题目链接:hdoj 2830不说什么了,上代码:#include#include#include#define debug 0#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)const int maxn = 1000 + 5;int h[maxn], num
2016-08-18 17:14:08 387
原创 暑期dp46道(39)--HDOJ 2870 最大子矩阵面积...
题目链接:HDOJ 2870题意:给定一个仅由'a','b','c','w','x','y','z'组成的字符矩阵,且你可以把'w' 转成 (to)'a' 或 'b', 'x' to 'b' or 'c', 'y' to 'a' or 'c', 'z' to 'a', 'b' or 'c',求能转成的最大子矩阵面积;题解:毫无疑问,对于'a','b
2016-08-18 16:59:54 487
原创 UVA 10125 Sumsets 折半枚举 + 二分
题意:就是给定一个整数序列,让你在这个序列中找到一个子集{a, b, c, d}吗,满足a + b + c = d且d最大,若不存在这样的集合输出 “no solution”;题解:这题如果用暴力枚举,O(n^4),n最大为1000,必然TLE。所以要拆分枚举,a + b = c - d枚举 a , b 然后c - d的值二分搜索 和 a+ b比较直到 a+b=c-d;
2016-08-18 16:24:59 304
原创 暑期dp46道(38)--HDOJ 2845 Beans 最大不连续子序列和
题目链接:HDOJ 2845刚开始有点迷,后来发现这就是最大不连续子序列和的二维变形.......因为选定一个点, 和他同行相邻的点不能选定,且和它列数相邻的也不可选,全局考虑下,就是先求一维的最大不连续序列和,然后 再对所求序列和组成序列求和。。。结束代码:#include#include#include#include#inclu
2016-08-16 16:40:59 534
原创 暑期dp46道(37) HDOJ 2844 COINS
题目链接:HDOJ 2844多重背包,不过没用模板 省事写了二进制代码:#include#include#include#define debug 1#define M(a) memset(a, 0, sizeof(a))const int maxn = 100000 + 5;int n, m, f[100005], s[maxn], c[max
2016-08-16 16:30:59 376
原创 暑期dp46道(36)--HDOJ 2577
题目链接:HDOJ 2577题意:打出所给的字符串,大小写都有,并且最终Caps Lock 要关闭,求最少的按键数题解:简单的dp方程,考虑Caps Lock on 和in的情况dp就可代码:#include#include#include#include#includeusing namespace std;#define M(
2016-08-16 15:03:16 366
原创 dp心得
这个暑假到现在,做了那么多dp题目,比较大的感受就是 做这类题目,眼光要放远,立于当下,不影响当下的因素不要考虑,而有影响的全要考虑.......(感觉不只是做题啊)数量级,复杂度,正确的解法复杂度本身应该是有个确定范围的;简单dp是没有太复杂的关系的,而较难的dp是需要花时间找不显眼的状态关系,身为dp弱鸡,还在磨练中;对于背包方案和母函数,这类题目(数字拆分方案之类)数量级小就用d
2016-08-16 14:40:24 365
原创 暑期dp46道(35)--HDOJ 2159 FATE 背包问题
题目链接:hdoj 2159背包问题....直接代码代码:#include#include#include#define debug 0#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)const int maxn = 100 + 5;int c[maxn], w[max
2016-08-13 16:13:42 314
原创 暑期dp46道(34)--HDOJ 1203 01背包
题目链接:HDOJ 1203题解:01背包问题,注意至少拿到一个offer的概率 b:一个offer拿不到的概率a,则b=1-a;所以dp[j] = Max(dp[j], 1-(1- dp[j - c[i]])*(1 - w[i]));代码:#include#include#include#define debug 0#define M(a) m
2016-08-13 16:05:54 425
原创 暑期dp46道(33)--HDOJ 1176 免费馅饼 类树塔:
题目链接:HDOJ 1176树塔问题,data[i][j]表示i时刻,j+1位置能接到最大馅饼数;代码:#include#include#include#define debug 0#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)const int maxn
2016-08-13 15:59:40 370
原创 暑期dp46道(32)--hdoj 1171 Big Event in HDU 多重背包:
题目链接:hdoj 1171多重背包问题,由于数据量较小,所以可以不用二进制优化。代码:#include#include#include#include#includeusing namespace std;#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)#def
2016-08-13 15:50:16 392
原创 暑期dp46道(31)--HDOJ 1087 最大上升子序列和 dp(水)
题目链接:HDOJ 1087裸题,直接上代码:#include#include#include#include#includeusing namespace std;#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)#define Min(a,b) ((a<
2016-08-13 15:41:15 348
原创 暑期dp46道(30) HDOJ 1227 Fast Food
题目链接:hdoj 1227题意:给定n个快餐店的位置,要在其中m个位置建商店,使得n餐厅到离自己最近的商店 距离的和最小,求这个最优解;题解:首先对i和j之间所有餐厅来说,建一个商店的最优解,就是把它的位置定在a[(i+j)/2],这时sum(i,j)=abs(a[k]-a[(i+j)/2])(k>=i&&k所以可以枚举之前的子状态
2016-08-11 17:08:30 469
原创 暑期dp46道(29) HDOJ 1503 Advanced Fruits 最长公共子序列
题目链接:HDOJ 1503题意:给定两个字符串,输出任意一个满足条件的字符串;条件,给定的两个字串都是该字符串的子序列且该字串的长度最短。题解:这题很容易推出待求字串的长度和两串的最长公共子序列有关,公共部分输出一次,两字符串各私有的各个输出;而私有不私有在求解最长公共子序列的时候,每个子问题都可以得出;例如两个字符串str1和str2,d
2016-08-11 15:22:48 512
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人