思路:这题就是学习一下算法优化,选择最优方案,O(nm)

可以学习一下《浅谈数据的合理组织》这篇论文

详见代码

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
#include<stack>
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define clc(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
const int maxn=;
//countt数组记录每个节点以下所有子节点的数目,s每个节点下代节点数目
inline int r()
{
int x=,f=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-') f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int a[maxn][maxn],listt[maxn],countt[maxn],s[maxn],v[maxn];
int f[maxn][maxn];
int q;
int tree_traversal(int k)//先序遍历记录根节点
{
listt[++q]=k;
if(s[k]==){return ++countt[k];}
for(int i=;i<=s[k];i++)countt[k]+=tree_traversal(a[k][i]);
return ++countt[k];
}
int main(){
int n,m;
clc(s,);
clc(listt,);
clc(a,);
clc(countt,);
n=r();
m=r();
int t;
for(int i=;i<=n;i++){
v[i]=r(),t=r();
while(t--){
a[i][++s[i]]=r();
}
}
tree_traversal();
for(int i=;i<=n;i++){
f[i][]=;
f[i][]=v[listt[i]];
}
for(int i=n-;i>=;i--){//动态转移方程
for(int j=;j<=m;j++){
f[i][j]=max(f[i+][j-]+v[listt[i]],f[i+countt[listt[i]]][j]);
}
}
int ans=-inf;
for(int i=;i<=m;i++){
ans=max(ans,f[][i]);
}
printf("%d\n",ans);
return ;
}

【vijos1642】班长的任务的更多相关文章

  1. SaltStack 入门(赵班长)

    SaltStack 入门之赵班长 赵班长博客: https://www.unixhot.com/article/11   1~5章 saltstack官网文档: https://www.unixhot ...

  2. C# 5 break continue 球员成绩 彩票 选班长

        二.新课: 1.break与continue. 这两个关键字一般放在循环的花括号里面使用. break--结束整个循环. continue--结束本次循环,进入下次循环. break的案例: ...

  3. C++第11周(春)项目1 - 存储班长信息的学生类

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目1 - 存储班长信息的学生类] clas ...

  4. [vijos 1642]班长的任务 [树形dp]

    背景 十八居士的毕业典礼(1) 描述 福州时代中学2009届十班同学毕业了,于是班长PRT开始筹办毕业晚会,但是由于条件有限,可能每个同学不能都去,但每个人都有一个权值,PRT希望来的同学们的权值总和 ...

  5. [vijos]P1642 班长的任务

    背景 十八居士的毕业典礼(1) 描述 福州时代中学2009届十班同学毕业了,于是班长PRT开始筹办毕业晚会,但是由于条件有限,可能每个同学不能都去,但每个人都有一个权值,PRT希望来的同学们的权值总和 ...

  6. Vijos 1921 严厉的班长 【状态压缩动态规划】

    严厉的班长 描述 木姑娘在班级里面是班长.虽然是副班长,却有着比正班长更高的威信,并深受小朋友们的爱戴. 每天眼保健操时间,木姑娘都要监督所有小朋友认真做眼保健操.整个过程被描述为n个时间段,第i个时 ...

  7. [转] 运维知识体系 -v3.1 作者:赵舜东(赵班长)转载请注明来自于-新运维社区:https://www.unixhot.com

    [From]https://www.unixhot.com/page/ops [运维知识体系]-v3.1 作者:赵舜东(赵班长) (转载请注明来自于-新运维社区:https://www.unixhot ...

  8. C++走向远洋——(项目二、存储班长信息的学生类、派生)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  9. luogu P3409 值日班长值周班长 exgcd

    LINK:值日班长值周班长 题目描述非常垃圾. 题意:一周5天 每周有一个值周班长 每天有一个值日班长 值日班长日换 值周班长周换. 共n个值日班长 m个值周班长 A是第p个值日班长 B是第q个值日班 ...

随机推荐

  1. redis 安装注意事项

    redis安装 1.redis 安装 官网地址:http://redis.io/download $ wget http://download.redis.io/releases/redis-3.0. ...

  2. Django数据操作

    1.一个模型类代表数据库中的一个表,一个模型类的实例代表这个数据库表中的一条特定的记录. 2.管理器和查询集. 查询集QuerySet表示从数据库中取出来的对象的集合.它可以含有零个.一个或者多个过滤 ...

  3. Authentication for the REST APIs

    HTTP基本认证原理 在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份认证的方法,当一个客户端向HTTP服务器进行数据请求时,如果客户端未被 ...

  4. codeforces 633D - Fibonacci-ish 离散化 + 二分查询

    Fibonacci-ish Yash has recently learnt about the Fibonacci sequence and is very excited about it. He ...

  5. ssh中使用set的地方及ref

    22:30 2014/5/2 1.层与层间的set:  xml方式:在action中曾有service的set方法,service层要有dao的service的set方法,dao曾要有hibernat ...

  6. C#如何控制方法的执行时间,超时则强制退出方法执行

    转自:http://outofmemory.cn/code-snippet/1762/C-how-control-method-zhixingshijian-chaoshi-ze-force-quit ...

  7. NPOI常用功能工具类

    public class NPOIHelper { /// <summary> /// DataTable导出到Excel文件 /// </summary> /// <p ...

  8. unity 引用 移动mm 支付sdk

    原地址:http://blog.csdn.net/u012085988/article/details/17531005 资源下载:http://download.csdn.net/detail/u0 ...

  9. res\menu\main.xml:6: error: No resource identifier found for attribute 'showAsAction' in package 'com.xxx.xxxx'

    res\menu\main.xml:6: error: No resource identifier found for attribute 'showAsAction' in package 'co ...

  10. YII CJson类

    CJson文档: http://www.yiiframework.com/doc/api/1.1/CJSON CJson::encode可以编码任何类型的数据:源码如下: public static ...