题目描述

绿猪们的势力越来越强大了,小鸟们正在筹划如何对付这群强大的东西。

可是绿猪们派来一位绿猪巫师洗清了所有前线鸟儿的记忆。现在,他们只记得他们各自的领导,但是这是一个自由散漫的团队,必须要找到他们的鸟队长。(鸟队长是能管理所有的鸟儿作战,鼓舞士气,勇于拼搏在前线的英雄鸟)。

你是在后方暗地操作的司令,现有M(1 <= M <= 500)件装备,每只不同的鸟儿可以分配零件至M件装备,分配到不同的装备数量会有不同的战斗力。

绿猪们也不是吃素的,他们规划了一个方案,站成一字长蛇阵在草地上摆开阵势,静候着小鸟们。此时,你也只好得选出一条长链来应战绿猪。(温馨提示:小鸟的编号从1开始)

现在,你的任务有三:

  1. 输出鸟队长的编号
  2. 输出将M件装备分配后整个团队的战斗力的最大值
  3. 以鸟队长为首的最大战斗力的战斗长链的鸟儿的序列

分析

对于第一问,简单的记录即可;第二问,简单的资源分配Dp+记录路径即可;第三问,简单的搜索即可。最后注意范围即可。

代码

#include <cstdio>
#include <queue>
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
int f[105][505];
int a[105][505],g[105][105];
bool s[105][505][505];
int n,m,ans,cnt;
int val[105];
vector<int> anss;
void dfs(int x,vector<int> s,int sum) {//暴力Dfs if (sum>ans&&g[x][0]==0) {ans=sum;anss=s;}for (int i=1;i<=g[x][0];i++) {int y=g[x][i];s.push_back(y);dfs(y,s,sum+val[y]);s.pop_back();}
}
int main() {scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) {int fa;scanf("%d",&fa);if (fa==0) {cnt++;ans=i;} else g[fa][++g[fa][0]]=i;for (int j=1;j<=m;j++)scanf("%d",&a[i][j]);}for (int i=1;i<=n;i++)sort(g[i]+1,g[i]+g[i][0]+1);if (cnt!=1) {puts("not found");return 0;}printf("%d\n",ans);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++)for (int k=0;k<=j;k++) {if (f[i-1][j-k]+a[i][k]>f[i][j]) {f[i][j]=f[i-1][j-k]+a[i][k];s[i][j][k]=1;//路径记录 }}printf("%d\n",f[n][m]);int t1=n,t2=m;while (t1&&t2) {//寻找路径 for (int j=t2;j>=1;j--) {if (s[t1][t2][j]) {val[t1]=j;t2-=j;break;}}t1--;}for (int i=1;i<=n;i++)val[i]=a[i][val[i]];vector<int> s;s.push_back(ans);ans=0;dfs(s[0],s,0);printf("%d",anss[0]);for (int i=1;i<anss.size();i++) {printf("->%d",anss[i]);}return 0;
}

「BSOJ2900」 Angry Birds - 线性Dp+搜索相关推荐

  1. 牛客 - 「火」皇家烈焰(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串表示扫雷游戏,其中: 0:这个格子没有烈焰,且其左右两个格子均没有烈焰 1:这个格子没有烈焰,且其左右两个格子中只有一个烈焰 2:这个格子没有烈焰,且其左右 ...

  2. 「CEOI2019」魔法树(DP+差分启发式合并)

    「CEOI2019」魔法树 description solution 设dpi,j:idp_{i,j}:idpi,j​:i子树在jjj时刻的最大果汁量,显然dpi,jdp_{i,j}dpi,j​在jj ...

  3. LOJ 2546 「JSOI2018」潜入行动——树形DP

    题目:https://loj.ac/problem/2546 dp[ i ][ j ][ 0/1 ][ 0/1 ] 表示 i 子树,用 j 个点,是否用 i , i 是否被覆盖. 注意 s1<= ...

  4. Loj#6434「PKUSC2018」主斗地(搜索)

    题面 Loj 题解 细节比较多的搜索题. 首先现将牌型暴力枚举出来,大概是\(3^{16}\)吧. 然后再看能打什么,简化后无非就三种决策:单牌,\(3+x\)和\(4+x\). 枚举网友打了几张\( ...

  5. 算法一看就懂之「 堆栈 」

    戳蓝字"CSDN云计算"关注我们哦! 今天咱们再来继续看看「 堆栈 」吧,我写技术文章很少 show code,所以经常有人吐槽.好吧,这个算法系列的文章我打算每一篇的结尾处都找一 ...

  6. 加利福尼亚大学提出从「因果革命」的七大成就中为「机器学习」寻求良好的模型指导

    图:pixabay 原文来源:arxiv 作者:Judea Pearl 「雷克世界」编译:嗯~是阿童木呀 可以这样说,目前的机器学习系统几乎完全是以统计模式或无模型模式运行的,这对于其功率和性能来说存 ...

  7. 2017年「人工智能」大事记

    图:pixabay 不知不觉,2017年已然接近尾声,回首这一年,AI江湖风起云涌,每一个AI大事件就像石子掷入湖面,激荡起层层浪.如果让你选择一些关键词描述2017年的AI江湖,你会想到什么? •关 ...

  8. 日本东北大学最新机器人研究:面对物理损伤,机器人可「立即」适应

    原文来源:Royal Society Open Science 作者:Takeshi Kano, Eiki Sato, Tatsuya Ono, Hitoshi Aonuma, YoshiyaMats ...

  9. 对于这只已经上市的「狗」,王小川认为一切只是新的开始

    可以毫不夸张地说,搜狗,是王小川的搜狗,但王小川身上的标签却远不止搜狗这一个-- 学生时代,他是顶着光环成长的"天才少年",1990年,以成都第一名的成绩考入成都七中数学实验班:1 ...

最新文章

  1. datagrid底部显示水平滚动_DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强
  2. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
  3. [译] Kotlin 标准方法备忘
  4. 青茶什么时候拆_为什么铁观音这么香?到底有没有添加香精?看完你就知道了...
  5. LeetCode_数组_中等题
  6. 微信公众平台开发接口PHP SDK完整版
  7. Ubuntu 16.04 安装 VMware-Workstation-12
  8. 【Elastischearch】Elastischearch bulk 请求源码
  9. linux运维项目redis简历,redis简介
  10. 安卓开发 在oncreate显示对话框 hide 之后 点不动_微信小程序云开发教程微信小程序的API入门常用API...
  11. 已知圆上两点坐标和半径求圆心
  12. Matlab 线性同余法产生随机数
  13. 程序员转正答辩ppt
  14. 常用网线T568A或T568B类型详细讲解
  15. 【51单片机】按键控制多个舵机(可用于机械臂控制)
  16. 移动端怎么让图片不失真_图片怎样放大后不模糊 图片放大不失真的方法步骤...
  17. Linux 中断(IRQ/softirq)基础:原理及内核实现
  18. php csv文件转json,php csv如何转json
  19. 「SQL面试题库」 No_23 查询回答率最高的问题
  20. 求数组中间值的三种方法

热门文章

  1. phpcms功能列表
  2. 记录服务器被入侵病毒:ssh密码被更改登录失败、恶意程序跑满了cpu、jar包启动失败自动kill、一直弹出You have new mail in /var/spool/mail/root
  3. 关于2020.04.02苹果部分手机使用某个App加载特别慢的问题
  4. windows电脑如何开启系统自带的屏幕录制
  5. HBuilder X 回车之后,代码不能自动补全
  6. 「newbee-mall新蜂商城开源啦」GitHub 上最热门的 Spring Boot 项目,我也要做一次靓仔!...
  7. 你必须知道的bower私库
  8. gulp 命令用php执行了但是没有生成文件,javascript,gulp_gulp rev 生成的json文件有问题,javascript,gulp - phpStudy...
  9. php二次开发知识,Discuz!二次开发基本知识
  10. html鼠标移动时图片放大缩小,JS与CSS3实现图片响应鼠标移动放大效果示例