摘要: bzoj题面什么鬼啊…… 题目大意:有一个初始值均为0的数列,n次操作,每次将数列(ai,bi 1)这个区间中的数与ci取max,问n次后元素和 离散化,然后建立线段树,每次修改在区间上打max标记即可 cpp include include include include using namesp 阅读全文
posted @ 2018-05-07 16:23 lokiii 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 设f[u][0/1]为u这个点不选/选,转移的时候从儿子转移,f[u][1]=sum(f[son][0])+1,f[u][0]=sum(max(f[son][0],f[e[i].to][1])) cpp include include using namespace std; const int N 阅读全文
posted @ 2018-05-07 15:24 lokiii 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 每个ai在最后sum中的值是本身值乘上组合数,按这个dfs一下即可 cpp include include using namespace std; int n,s,ans[15],c[20][20]; bool u[15],f=0; int dfs(int a,int b) { if(b==n) 阅读全文
posted @ 2018-05-07 14:58 lokiii 阅读(109) 评论(0) 推荐(0) 编辑
摘要: DAG上的dp 因为本身升序就是拓扑序,所以建出图来直接从1到ndp即可,设f[i][j]为到i花费了j cpp include include using namespace std; const int N=1005,inf=1e9+7; int n,m,b,h[N],cnt,f[N][N],a 阅读全文
posted @ 2018-05-07 14:45 lokiii 阅读(108) 评论(0) 推荐(0) 编辑