2016年1月8日

摘要: 分类讨论~~~~~二进制一定要分出1来。#include#include#include#includeusing namespace std;long long f[205005],n,v;long long w[505],p[505],num[505];void work1(long long ... 阅读全文

posted @ 2016-01-08 19:34 ziliuziliu 阅读(109) 评论(0) 推荐(0) 编辑

2016年1月7日

摘要: trie树模板题。题目主要是看前缀,因此只要碰到染色节点就false就行了。#include#include#include#define root 1using namespace std;int cnt=0,cntnode=1;int child[1005][15],flag[1005];cha... 阅读全文

posted @ 2016-01-07 23:32 ziliuziliu 阅读(180) 评论(0) 推荐(0) 编辑

摘要: 真是佩服出这题的人。1.首先基本思路:考虑对T与SUM-T分别进行背包,再min起来。为什么呢?难点在于SUM-T的是考虑有哪些数没有被选。2.然后数据范围???瞬间吓尿。幸好有出题人指点,考虑分治。3.然后??细节比较烦。对于abs的和T=0的特判需要注意。#include#include#inc... 阅读全文

posted @ 2016-01-07 22:38 ziliuziliu 阅读(237) 评论(0) 推荐(0) 编辑

2016年1月6日

摘要: 多重背包问题。注意物品数可以为1#include#includeusing namespace std;int n,m,p[105],w[105],num[105];int t[1005],q[1005],cnt=0,dp[1005];int main(){ scanf("%d%d",&m,&n);... 阅读全文

posted @ 2016-01-06 20:33 ziliuziliu 阅读(109) 评论(0) 推荐(0) 编辑

摘要: 基本树型dp。dp[i][j]中i表示某人,j表示该人来了没来。转移方程见程序。注意预处理:先初始化所有dp[i][1]为给定的权值。先将没有下属的人进队。#include#include#include#includeusing namespace std;int n,r[6005],fath[6... 阅读全文

posted @ 2016-01-06 19:04 ziliuziliu 阅读(241) 评论(0) 推荐(0) 编辑

摘要: 感谢提供背包九讲的大大orzorz。。。。。其实把一个牵连背包问题转化成分组背包套(此题不需要)01背包即可。理由,作出的每种策略都是互斥的。这题我的代码很丑。。。。#include#include#include#includeusing namespace std;int v,m,w[65],p... 阅读全文

posted @ 2016-01-06 16:47 ziliuziliu 阅读(140) 评论(0) 推荐(0) 编辑

摘要: 考虑一个01背包即可。#include#include#includeusing namespace std;int v,m,w[30],p[30];int dp[50005];int main(){ scanf("%d%d",&v,&m); for (int i=1;i=w[i];j--) d... 阅读全文

posted @ 2016-01-06 14:19 ziliuziliu 阅读(121) 评论(0) 推荐(0) 编辑

2016年1月4日

摘要: 其实将整个链对折就得到一棵树。同样使用倍增表,考虑维护四个值:max,min,premax,submax,可以求解。也可以用线段树:主体更新和倍增法相同,同样在每个区间内记录以上四个值。小技巧:在返回时直接返回一个struct。#include#include#include#include#def... 阅读全文

posted @ 2016-01-04 15:18 ziliuziliu 阅读(141) 评论(0) 推荐(0) 编辑

2016年1月3日

摘要: orz CYZ。。。。我们考虑模仿kruskal的建造过程:将边排序,考虑到这样一个性质:在一个建到一半的最小生成树中,两点直接连的边的距离一定严格大于它们在最小生成树上的路径边权最大值(反之就不能连最小生成树的那条边),因此我们只要用一个并查集体现kruskal的过程,再维护每个子树的size,然... 阅读全文

posted @ 2016-01-03 19:30 ziliuziliu 阅读(270) 评论(0) 推荐(0) 编辑

摘要: 考虑到数据范围不小。。。采用双端队列优化:如果当前距离小于队列头,则将当前结点push到队列头。再考虑判负环。。。其实入队次数貌似比较迷?反正多加几次可能问题不大。#include#include#include#include#define inf 12345678#define maxv 200... 阅读全文

posted @ 2016-01-03 16:03 ziliuziliu 阅读(208) 评论(1) 推荐(0) 编辑