DP入门水题集】的更多相关文章

HDU 1087 Input contains multiple test cases. Each test case is described in a line as follow:N value_1 value_2 …value_N It is guarantied that N is not more than 1000 and all value_i are in the range of 32-int.A test case starting with 0 terminates th…
本文含有原创题,涉及版权利益问题,严禁转载,违者追究法律责任 本次是最后一篇免费的考试题解,以后的考试题目以及题解将会以付费的方式阅读,题目质量可以拿本次作为参考 本来半个月前就已经搞得差不多了,然后给一位神犇orz看(神犇orz都是很忙的!),就一直听取意见修修改改呀拖到了半个月之后,不过这也是为了能够做到完美吧 T1-apple-1s 第一题是一道贪心的水题 天数只有两天,不是今天吃就是明天吃,我们将 b[i]=min(x[i],y[i])定为基础开心值,也就是说不论哪天吃都至少可以得到这个…
题目:http://www.cnblogs.com/ljc20020730/p/6937936.html 水题A:[AHOI2001]质数和分解 安徽省选OI原题!简单Dp. 一看就是完全背包求方案数! 完全背包都会打吧,原来是最优值,现在是累计值. 状态转移方程:f[j]=f[j]+f[j-w[i]],w[i]是待选质数. 理解:一个数要拆成若干素数和,等同于拆成所有该数减去一个素数差的方案数之和(而不是最优方案数) 但这么做需要初始化为0,同时用滚动数组可以减小时间和空间复杂度. 代码如下:…
0: 靠前感觉之前dp抄题解都是抄的题解,自己从没有真正理解过dp.wyh下了很大决心从头学dp,于是便有了这篇文章. 1.背包 前四讲01背包&多重背包&完全背包(混合背包) :樱花 \(Note:\) 还需要学单调队列优化多重背包. 其他:咕咕咕! 泛化物品: 应该说是背包问题的一个方法综合,以函数的眼光审视背包,有助于新类型背包问题的解决. 考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化.这就是泛化物品的概念. 更严格的定义之.在背包容量为V的背包…
题解:http://www.cnblogs.com/ljc20020730/p/6937954.html 水题A: [AHOI2001]质数和分解 题目网址: https://www.luogu.org/problem/show?pid=2563 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式.例如,9 的质数和表达式就有四种本质不同的形式: 9 = 2 + 5 + 2 =…
题目链接 现在代码能力没上升,倒是越来越会找水题了(比例题还水的裸题你值得拥有) 这网站不是针对竞赛的,所以时空限制都很宽松 然后就让我水过去了 对于每个点,包括自己的前m个元素是否取都是一种状态,所以状压一下(才1024不要怂) #include <cstdio> int n,m,q; ]; ][]; int max(int a,int b){return(a<b)?b:a;} int main() { scanf("%d%d%d",&n,&m,&a…
威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 737    Accepted Submission(s): 406 Problem Description 威威猫最近不务正业,每天沉迷于游戏“打地鼠”. 每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! 无话可说...…
DFS的核心就是从一种状态出发,转向任意的一个可行状态,直到达到结束条件为止.(个人理解) 下面全是洛谷题,毕竟能找到测试点数据的OJ我就找到这一个....在其他OJ上直接各种玄学问题... P1596 [USACO10OCT] 湖计数Lake Counting DFS入门题,求连通块的. #include<iostream> #include<algorithm> using namespace std; ]={-,-,-, , , ,,};//方向 ]={-, , ,-, ,-…
题目链接 http://poj.org/problem?id=3254 转自http://blog.csdn.net/harrypoirot/article/details/23163485 #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #includ…
  区间DP主要思想是先在小区间取得最优解,然后小区间合并时更新大区间的最优解.       基本代码: //mst(dp,0) 初始化DP数组 ;i<=n;i++) { dp[i][i]=初始值 } ;len<=n;len++) //区间长度 ;i<=n;i++) //枚举起点 { ; //区间终点 if(j>n) break; //越界结束 for(int k=i;k<j;k++) //枚举分割点,构造状态转移方程 { dp[i][j]=max(dp[i][j],dp[i…
还是逆推,如果遇到跳板直接继承目标地的期望即可 #include<bits/stdc++.h> using namespace std; #define maxn 200005 double dp[maxn]; int n,m,nxt[maxn]; int main(){ while(scanf("%d%d",&n,&m)&&n){ memset(nxt,,sizeof nxt); memset(dp,,sizeof dp); ;i<=…
https://www.luogu.org/problemnew/show/P2858 方程很好想,关键我多枚举了一次(不过也没多大关系) #include <bits/stdc++.h> #define read read() #define up(i,l,r) for(register int i = (l);i <= (r); i++) using namespace std; ; int n,a[N],f[N][N]; int read { ;char ch = getchar(…
最最基础的单调队列题目.一个单增一个单减.还是可以借此好好理解一下单调队列的. #include <stdio.h> #include <string.h> #include <iostream> using namespace std; #define maxx 1000005 int num[maxx], inque[maxx], dque[maxx], maxn[maxx], minn[maxx]; int pre1, pre2, lst1, lst2; int…
题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题.于是当日课后,小明就向老师提出了这个问题: 一株奇怪的花卉,上面共连有N N朵花,共有N-1N−1条枝干将花儿连在一起,并且未修剪时每朵花都不是孤立的.每朵花都有一个"美丽指数",该数越大说明这朵花越漂亮,也有"美丽指数"为负数的,说明这朵花看着都让人恶心.所谓"修剪"…
首先说一下BSGS的一个坑点: 解方程A^x≡B(mod p) 需要特判一个东西=>A%p==B%p==0? 如果相等的话puts("1")反之则无解. 因为如果A%p=0,那么无法移项,导致BSGS算法的错误 进入正题: 一   卡特拉数(C(2*n,n)/(n+1))用于处理01序列里任意位置0的个数>1的情况.. 但知道定义没用,重要的是打表找规律. 善于用next_permutation,搜索等工具找出前几项. 记住卡特兰数的前几项:1 2 5 14 42 132…
POJ - 1220 进制转换 import java.io.*; import java.util.*; import java.math.*; public class Main { public static int GetNum(char c) { if (Character.isDigit(c))return c-'0'; if (Character.isUpperCase(c))return c-'A'+10; if (Character.isLowerCase(c))return…
大致题意:现有两种方块(1X2,2X2),方块数量无限制.问用这两种方块填满2Xn的矩阵的填法有多少种. 分析:通俗点说,找规律.专业化一点,动态规划. 状态d[i],表示宽度为i的填法个数. 状态转移方程:d[0]=d[1]=1,i=0,1; d[i]=d[i-1]+d[i-2]*2; c或者c++写的话,先模拟下大数吧,java直接用大数类就行了. c++ #include <iostream> #include <cstdio> #include <algorithm&…
开始想用dp[i][j]来记录第i位j开头含有49的数的个数 但是init后并不知道如何进行cal 想了想可以用不要62的思想 当作不要49来做 然后减一下 就好 看网上的代码 不要62和这道题用的dp方法和cal都与我用的有很大不同 做完入门水题就去学习一下那种很正规的方法~ #include<stdio.h> #include<string.h> #include<algorithm> #include<map> #include<math.h&g…
7 3     8 8     1     0 2     7     4     4  4     5     2     6     5 给出一个数字三角形.从三角形的顶部到底部有很多条不同的路径.对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和.      注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的那个数或者右边的那个数输入 第一行是一个整数N (1 < N <= 100),给出三角形的行数. 下面的N行给出数字三角形.数字三角形上的数的范围都…
题集见大佬博客 不要62 入门题,检验刚才自己有没有看懂 注意一些细节. 的确挺套路的 #include<bits/stdc++.h> #define REP(i, a, b) for(register int i = (a); i < (b); i++) #define _for(i, a, b) for(register int i = (a); i <= (b); i++) using namespace std; ; int a[MAXN], dp[MAXN][MAXN][…
CSU 1772 漫漫上学路 Time Limit: 1000MS   Memory Limit: 131072KB   64bit IO Format: %lld & %llu Submit Status Description 对于csuxushu来说,能够在CSU(California State University)上学是他一生的荣幸.CSU校园内的道路设计的十分精巧,由n+1条水平道路和n+1条竖直道路等距交错而成,充分体现了校园深厚的文化底蕴.然而不幸的是CS市每到夏季,天降大雨,…
DP 水题 Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers. Write a program to find and print…
9道题.A了8道,A题看题解也没弄懂怎么维护m段子序列的,过一段时间再回来看看     dp试水 47:56:23 125:00:00   Overview Problem Status Rank (20) Discuss Current Time: 2016-04-05 21:01:23 Contest Type: Public Start Time: 2016-04-03 21:05:00 Contest Status: Running End Time: 2016-04-09 02:05:…
1.poj 3254  Corn Fields    状态压缩dp入门题 2.总结:二进制实在巧妙,以前从来没想过可以这样用. 题意:n行m列,1表示肥沃,0表示贫瘠,把牛放在肥沃处,要求所有牛不能相邻,求有多少种放法. #include<iostream> #include<cstring> #include<cmath> #include<queue> #include<algorithm> #include<cstdio> #d…
B吉利数字时限:1s [题目描述]算卦大湿biboyouyun最近得出一个神奇的结论,如果一个数字,它的各个数位相加能够被10整除,则称它为吉利数.现在叫你计算某个区间内有多少个吉利数字. [输入]第一行为样例个数N.接下来N行,每一行代表一个输入样例,每个输入样例有2个数,分别代表某个区间的起点a和终点b.注意所求区间为[a,b],1<=a<=b<=10^9 [输出]N行.对于第x个输入样例,在第x行输入该样例所对应的结果. [输入样例]21 101 20 [输出样例]01 [Hint…
A.Beru-taxi 水题:有一个人站在(sx,sy)的位置,有n辆出租车,正向这个人匀速赶来,每个出租车的位置是(xi, yi) 速度是 Vi;求人最少需要等的时间: 单间循环即可: #include<iostream> #include<algorithm> #include<string.h> #include<stdio.h> #include<math.h> #include<vector> using namespace…
题意:给定一个金字塔,第 i 行有 i 个数,从最上面走下来,只能相邻的层数,问你最大的和. 析:真是水题,学过DP的都会,就不说了. 代码如下: #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream> #include <cstring> #include <set> #include <…
A HDU_2048 数塔 dp入门题——数塔问题:求路径的最大和: 状态方程: dp[i][j] = max(dp[i+1][j], dp[i+1][j+1])+a[i][j];dp[n][j] = a[n][j]; 其中dp[i][j]: 深度为i的第j个结点的最大和; /* Problem: HDU-2048 Tips: Easy DP dp[i][j]: 深度为i的第j个结点的最大和: dp[i][j] = max(dp[i+1][j], dp[i+1][j+1])+a[i][j]; d…
有一个大学的庆典晚会,想邀请一些在大学任职的人来參加,每一个人有自己的搞笑值,可是如今遇到一个问题就是假设两个人之间有直接的上下级关系,那么他们中仅仅能有一个来參加,求请来一部分人之后,搞笑值的最大是多少. 树形DP入门题. DP部分: dp[i][0]表示职员i不来參加party,以i为根的子树的最大搞笑值, dp[i][1]表示职员i来參加party.以i为根的子树的最大搞笑值. 转移方程: dp[cur][1]+=dp[next][0]; dp[cur][0]+=Max(dp[next][…
除非特别忙,我接下来会尽可能翻译我做的每道CF题的题面! Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题 题面 胡小兔和司公子都认为对方是垃圾. 为了决出谁才是垃圾,大哥拿来了一袋老鼠,其中有w只白老鼠和b只黑老鼠.胡小兔先抓,先抓到白老鼠的人赢. 每次学姐抓完老鼠之后,总会有另外一只老鼠从袋子里自己跑出来(这只老鼠不算任何人抓的),而胡小兔抓老鼠时则不会发生这样的事. 每次袋子里的每只老鼠被抓到的概率相等,当有一只老鼠跑出来的时候,每只老鼠跑出来的几率也相…