首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
[NOI2001]炮兵阵地
7条解析
开通博客写题解
瑜画
发表于 2020-08-16 11:30:46
先看同一行哪一些方案可以放置,以减小时间复杂度(老套路)查看的方法是看左边第一、二,右边第一、二 不能跟自己这个位置同时有1 然后统计这个方法包含的炮兵数,统计方法是线性dp,通过lowbit(树状数组的东西),转移计数。(每个方案的炮兵数量是这个方案的二进制串去除最低位的1的炮兵数量+1)最后一行
展开全文
在刷题的单身狗很开心
发表于 2023-10-24 16:58:45
本题算是[SCOI2005]互不侵犯KING (nowcoder.com)这道题的升级版,在互不侵犯这道题里面除了同一行的限制,上下行的限制仅仅包含一行。而在这道题里面则是包含了两行。 那么我们可以像互不侵犯那样将状态转移数组设成dp[i][j],i表示某一层,j表示当前层的二进制数吗?当然不
展开全文
louhc
发表于 2019-08-26 13:04:28
思路 ,这么小的数据范围当然要想到状态压缩.我们把放置炮兵的位置变成,不放炮兵为.这题比较猥琐的一点就是会影响到能否放炮兵的有前两行.这样至少需要三维,记录当前到哪行以及前两行的状态.这样不能承受.由于这特殊的"十字",每行两个炮兵之间至少要两个格子.打个表可以发现满足条件的状态大概只有六十几个,这
展开全文
bai_qi
发表于 2020-08-20 21:35:04
题目描述司令部的将军们打算在NM的网格地图上部署他们的炮兵部队。一个NM的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑***域所示:
展开全文
这么多年。
发表于 2023-08-20 19:23:40
#include<cstdio> #include<vector> #include<algorithm> #include<cstring> #include<iostream> using namespace std
展开全文
usx21145328
发表于 2022-02-11 20:04:37
思路: 题目要求求出最多的炮兵数,对于一个位置可以选择放也可以不放,而之后可以根据这次的选择更新下一步的选择。考虑状态压缩dp。一行一行的放炮兵,因为题目中给出的炮兵攻击范围是一个十字,所以在判断这个炮兵能不能放的时候需要知道上一行炮兵和上上行放在哪了,也要知道此时放的炮兵所在的这一行里左边的放炮兵
展开全文
回归梦想
发表于 2021-01-31 18:14:42
题目: n*m个网格,有平原,有山地,平原可以放部队,部队攻击范围如图(不受地形影响)(H为山地,P为平原) 题解: 确定状态:因为每个炮可以打到两行,所以每一行放置方式与他放置的情况有关dp[i][j][k]表示第i行为状态j,第i-1行为状态k时所用的最大炮兵数也就是同时记录两行状态,根据已知的
展开全文
查看本题
查看本题讨论
相关比赛
209-NOI历年真题练习
进入比赛
347-NOI2001比赛真题
进入比赛
1046-0x56 动态规划-状态压缩DP
进入比赛
25022-2021秋季算法入门班第八章习题:动态规划2
进入比赛
27024-寒假冲刺2
进入比赛
等你来战
查看全部
第二十二届宁波大学程序设计竞赛(同步赛)
报名截止时间:2025-06-08 17:00
衡阳师范学院第二十五届程序设计竞赛(同步赛)
报名截止时间:2025-06-08 18:00
牛客周赛 Round 95
报名截止时间:2025-06-08 21:00
牛客小白月赛118
报名截止时间:2025-06-13 21:00
第五届上海理工大学程序设计全国挑战赛
报名截止时间:2025-06-22 17:00
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题