- 博客(15)
- 收藏
- 关注
原创 hdu 2191 多重背包(毫无变化)
题目:点击打开链接#include #include #include #include #include using namespace std;const int maxn=4000005;int dp[maxn],w[1005],v[1005];int main(){ int t,n,m,p,h,cc; cin>>t; while(t--){
2018-01-31 16:13:03 113
原创 hdu 1059 Dividing (多重背包详解)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1059题意:质量为i的东西有a[i]个,分两拨问能不能质量相等,质量和为奇显然不能,偶数时只要达到sum/2的背包就行了,剩下的自然组成了另外sum/2的背包。多重背包:#include #include #include #include using namespace std;
2018-01-31 14:19:38 1520
原创 poj 2392 Space Elevator(多重背包)
题目:http://poj.org/problem?id=2392题意:高度,限制高度,数量。 求能垒出的最大高度,有每种石头的高度限制和数量限制。思路:多重背包:一种可以在01背包基础上加一个数量的for循环。另一种可以当做另一种限制条件放在if里,但只有高度和价值用同一值表示才能用。这里重量和价值都是高度,在数量和高度限制下越高越好。这里显然要对限制高度排下序的。
2018-01-30 12:45:14 217
原创 hdu 1963 investment(完全背包)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1963题意:给了初始资金和年数,接下来是买每种债券的前和年收益,求n年后最大收益。思路:背包问题就是套。花费是重量,利息是价值,能买无穷多个,不超过初始资金(容量)。用完全背包。val是初始资金,再加上每年的收益作为下一年的本金。#includeusing namespace
2018-01-29 23:58:31 249
原创 Ural 1005 数字分组问题(01背包)
题目:https://cn.vjudge.net/problem/URAL-1005题意:数字分两组,使得到的两组和差值最小。思路:dp把能得到的和的所有情况都求出来,算差值最小即可。这种dp就能求所有和的情况:01背包:倒着写,因为只有一个,前面都是没放这个物品的状态,倒着改过去,不会影响前面。完全背包:正着写,由前一状态加该物品价值得到不超过i千克的最大价值。
2018-01-29 22:13:54 452
原创 vijos 1133 装箱问题(简单01背包)
题目:https://vijos.org/p/1133#include #include #include #include #include using namespace std;int w[200],f[35][20005];int main() { int t,m; cin>>t>>m; for(int i=1;i<=m;i++)
2018-01-28 00:39:08 249
原创 Vijos 1104 采药 (整理:01背包详解)
题目:https://vijos.org/p/1104描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果
2018-01-28 00:00:56 179
原创 洛谷 P2782 友好城市(LIS)
题目:https://www.luogu.org/problemnew/solution/P2782思路:对一边排序另一边求LIS。即使简单也不能不动脑子啊,大于小于都写错,实在不在学习状态。#include #include #include #include #include using namespace std;const int maxn=200005;i
2018-01-27 22:44:02 1111
原创 vijos 1098 合唱队形(正反两个LIS)
题目:https://www.vijos.org/p/1098思路:先递增后递减,可以一个反向LIS接一个LIS,序列长度初始化为1啊!!!错了半天。#include #include #include #include #include using namespace std;int a[105],l[105],r[105];int main() { int
2018-01-27 20:11:34 204
原创 Vijos 1303 导弹拦截(LIS+Dilworth定理)
题目:https://www.vijos.org/p/1303思路:第一问最长不上升子序列,第二问运用定理:一个序列中,最长不上升子序列的最小覆盖度等于序列中最长上升自序列的长度。(由于求的额外的,所以再减一)注意:LIS用的时候注意n=1的情况,别瞎输出。还有dp数组初始化全了,别漏下。#include <cstdio>#include <cstring>#inclu...
2018-01-25 21:15:54 314
原创 poj 2533 (LIS)
题目:http://poj.org/problem?id=2533求最长上升子序列。N^2 dp:#include #include #include using namespace std;int a[1005],dp[1005];int main() { int n,ans; while(scanf("%d",&n)!=EOF){ a
2018-01-24 00:20:45 149
原创 poj 1664 放苹果(dfs/dp/母函数)
题目:http://poj.org/problem?id=1664Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。Output对输入的每组数...
2018-01-08 16:01:36 297
原创 hdu 1176 免费馅饼
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1176免费馅饼Problem Description为了使问题简化,假设在接下来的一段时间里,馅饼都掉落在0-10这11个位置。开始时gameboy站在5这个位置,因此在第一秒,他只能接到4,5,6这三个位置中其中一个位置上的馅饼。问gameboy最多可能接到多少个馅饼?(假
2018-01-07 18:02:44 226
原创 poj1315 变形N皇后
题目:http://poj.org/problem?id=1315题意:X是墙,可以挡着防止相互攻击/*step++,x=step/n,y=step%n一行一行的搜,搜到可行的位置,不用标记false,往上和往左找就行,再一行一行的搜,不行就回溯,直到第一行找完其实第一颗棋子试到了第二行就完事了,不过为了好写都找了吧*/#include#includeusing namesp
2018-01-05 21:38:09 267
原创 wannafly挑战赛5 A(完全平方数)
题目:https://www.nowcoder.com/acm/contest/36/A题目描述星神是来自宇宙的所以珂朵莉也是吧所以我就出了个题给你一个长为n的序列a,有n*(n+1)/2个子区间,问这些子区间里面和为完全平方数的子区间个数输入描述:第一行一个数n第二行n个数表示序列a输出描述:输出一个数表示答案示例
2018-01-03 10:29:34 286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人