dp
文章平均质量分 58
SAuppp
这个作者很懒,什么都没留下…
展开
-
Gym100299C【dp】【gcd】
分解因子就是logn了嘛#include <cstdio> #define LL long long LL a[100010]; int n,T; LL dp[100010][41],ans; int r[100010][41],cnt[100010]; LL read_int () { char c = getchar(); LL re = 0; for(;c >...原创 2016-01-24 21:18:50 · 364 阅读 · 0 评论 -
3269混合背包——codevs
没错 这就是基础题 我基础弱orz orz今天才知道的这道题做法 orz orz混合背包相比01和完全就是多了个分类讨论如果个数*体积超过空间就作完全背包处理否则二进制拆分作01处理 只是注意二进制拆分后还要扫尾一次01#include<cstdio> #define loop(i,j,k) for(int i=j;i<=k;i++) #define down_loop...原创 2015-02-08 10:27:36 · 495 阅读 · 0 评论 -
1071新年趣事之打牌——vijos
一个基础背包问题的变形有机结合01背包(类似) 装箱问题个人觉得函数名有点赞。。先跑一个装箱问题判断能否输出-1 或者 0 只是将原来装箱问题的bool型换成int 记录下到达当前状态的方案数量 然后再来一个01 背包 (要压空间 不然mle) 只用记录下第一种就可以printf exit 了#include<cstdio> #include<algorithm&g...原创 2015-02-08 10:30:19 · 440 阅读 · 0 评论 -
noip2000提高组——方格取数【费用流 or dp】
这道题用的network flow。。好高大上的网络流。其实是可以写双向dp的 只是我没反应过来 当时就只写了网络流网络流版#include<cstring> #include<cstdio> #include<queue> #define cle(a,b) memset(a,b,sizeof(a)) #define loop(i,j,k) for(in...原创 2015-02-08 10:31:33 · 472 阅读 · 0 评论 -
SCOI2009windy数【数位dp】
数位dp 对于一个 A B 可以用 0~B的windy数 减 0~(A-1) 的windy数对于一个有 i 位的数可以递归处理 1~10^i-1的数再递归 限制处理 i位上的数假如一个数是 1253可以递归处理 1~999 (i 为4 则处理前3位)再 递归出 1000~1199 1200~1249 ...原创 2015-02-08 10:40:20 · 421 阅读 · 0 评论 -
hdu4507【数位dp】
程序猿的悲哀。。数位dp#include <cmath> #include <cstdio> #include <cstring> #define LL long long #define MOD 1000000007LL using namespace std; LL dp1[20][10][7][7][2]; LL dp2[20][10][7][7][2]...原创 2016-01-27 08:38:09 · 343 阅读 · 0 评论 -
hdu3709【数位dp】
数位dp枚举平衡节点就好#include <cmath> #include <cstdio> #include <cstring> #define LL long long using namespace std; LL l,r,ans; LL a[30],b[30],la,lb; LL dp[30][2000]; LL vis[30][2000]; L...原创 2016-01-27 19:30:46 · 524 阅读 · 0 评论 -
bzoj2435: [Noi2011]道路修建 【树形dp】
记录sizedfs 乱搞有人说貌似是树形dp#include <cstring> #include <cstdio> #define LL long long #define lp(i,j,k) for(int i = j;i <= k;++i) LL abs (LL a) { if(a <= 0) return -a; return a; } int ...原创 2015-04-09 08:42:03 · 621 阅读 · 0 评论 -
hdu2196_Computer【树形dp】
树形dp?可以吧但我求树上最长链以链的一端为root建树每一个点到达的最长距离就是这个点到达最长链的距离(可以倍增预处理)加上到达的点向上向下的最大值(最长链预处理)#include <cstring> #include <cstdio> #include <queue> #define cle(a,b) memset(a,b,sizeof a) #define...原创 2015-04-09 08:50:05 · 354 阅读 · 0 评论 -
zoj3494——BCD_code【ac机】【数位dp】
ac机 套 数位dp写的时候错误不断 手残不断 orz读入拒绝高精度。。。大不了特判打死不写高精度。。。#include <queue> #include <cstdio> #define MOD 1000000009 using namespace std; int len,n,T,con; char s[25],c; int u,v; int num[805]...原创 2015-04-09 08:58:07 · 533 阅读 · 0 评论 -
bzoj2748
辣鸡题。。 #include int n,ST,ma; bool dp[60][1010]; int a[60]; int read_int () { char c = getchar(); int re = 0; for(;c > '9' || c < '0';c = getchar()); for(;c >= '0' && c <= '9';c = getchar(原创 2016-03-09 08:02:00 · 336 阅读 · 0 评论 -
2224Investment——zoj
债券可以无限购买 94一个完全背包但是计算出来 发现空间如果开成数组 绝对mle他说xi和n都是1000倍数就用 dp[i]表示 i*1000个空间所获得最大价值就好有一个小优化对于每一年重新购买的债券 可以定义一个start 和 end 表示当前年限的起始空间 和 最大空间start就是上一个endend就是end加上在上一个end下获得的价值就可以实现优化 #include<i...原创 2015-02-08 10:19:45 · 490 阅读 · 0 评论