点开卷子看了看,三道奇葩题 T1可持久化无旋treap裸题,操作比较复杂,卡时卡空间,瞎打了打对拍也没上就交了,好像没翻车,被卡常一个点,90分 T2求两个序列的最长公共回文子序列,n<=500,因为我连以前那道最长公共上升子序列都不会,这题也没打算做了,想了想感觉记忆化搜索在随机数据下好像很优,然 ...
分类:
其他好文 时间:
2017-04-24 21:16:10
阅读次数:
253
典型的记忆化递归问题。 这类问题的记忆主要是利用数组记忆。那么已经计算过的值就能够直接返回。不须要进一步递归了。 注意:下标越界。递归顺序不能错,及时推断是否已经计算过值了,不要多递归。 或者直接使用动态规划法填好表也是能够的。 #include <stdio.h> #include <limits ...
分类:
其他好文 时间:
2017-04-22 14:54:19
阅读次数:
144
1415: [Noi2005]聪聪和可可 Description Input 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数。 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号。 接下来E行,每行两个整数,第i+2行的两个整数A ...
分类:
其他好文 时间:
2017-04-22 09:17:58
阅读次数:
202
题意: 给你n*n的地图 每一个格子有一个值仅仅能从值小的格子走到值较大的格子 给你k每次上下左右最多走k步 问你走的格子最大值的是多少 dp【i】【j】表示以(i,j)为起点的能得到的最大值 然后深搜求解 #include<stdio.h> #include<string.h> #include< ...
分类:
其他好文 时间:
2017-04-16 18:57:35
阅读次数:
164
How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5203 Accepted Submission(s): 3067 P ...
分类:
其他好文 时间:
2017-04-15 20:49:08
阅读次数:
234
【算法】数位DP 【题解】参考题解 记忆化搜索挺好写的,而且比DP+递推快。 大概思路是记录h(高度),pre(前一位数字),limit(限制)。 从根往叶子走,limit=0时,扫0~9判断符合条件就递归。 limit=1时,也就是当前位于n上,只能扫0~end-1,end就要limit=1来递归 ...
题意:给定一个n*n的矩阵,问从(0,0)开始走,每次最多水平或者垂直走k个格子,且要保证每次到达的格子要大于前一个,问最大和是多少。 析:一个很简单的记忆搜索,dp[i][j],表示到达(i,j)的最大和是多少,我们可以反着推出答案。 代码如下: ...
分类:
其他好文 时间:
2017-04-12 23:08:48
阅读次数:
282
从 n 变到 1,有多少种方案? 打表记忆化。 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 int n; 6 int dp[1000005]; 7 int dfs(int n) { 8 if(n==1) 9 return 1; 10 ...
分类:
其他好文 时间:
2017-04-09 23:36:07
阅读次数:
235
滑雪 【问题描述】 小明喜欢滑雪,因为滑雪的确很刺激,可是为了获得速度,滑的区域必须向下倾斜,当小明滑到坡底,不得不再次走上坡或等着直升机来载他,小明想知道在一个区域中最长的滑坡。滑坡的长度由滑过点的个数来计算,区域由一个二维数组给出,数组的每个数字代表点的高度。下面是一个例子: 1 2 3 4 5 ...
分类:
其他好文 时间:
2017-04-08 22:39:22
阅读次数:
222
题目描述 对于一个递归函数w(a,b,c) 如果a<=0 or b<=0 or c<=0就返回值1. 如果a>20 or b>20 or c>20就返回w(20,20,20) 如果a<b并且b<c 就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c) 其它别的情况就返回w(a- ...
分类:
其他好文 时间:
2017-04-08 12:42:39
阅读次数:
341