题目

这个\(dp\)出在普及都算水题吧

直接背包,\(O(nms)\)跑不满,非常稳

#include<cstdio>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
#define re register
#define LL long long
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
inline int read() {char c=getchar();int x=0;while(c<'0'||x>'9') c=getchar();while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+c-48,c=getchar();return x;
}
int n,m,s;
std::vector<int> v[105];
int dp[2][20005];
int main() {s=read(),n=read(),m=read();for(re int i=1;i<=s;i++) for(re int j=1;j<=n;j++)v[j].push_back(read()*2);for(re int i=1;i<=n;i++)std::sort(v[i].begin(),v[i].end());memset(dp,-20,sizeof(dp));dp[0][0]=0;int o=0;for(re int i=1;i<=n;i++,o^=1) {for(re int j=0;j<=m;j++) dp[o^1][j]=dp[o][j];for(re int k=0;k<v[i].size();k++) {int t=v[i][k]+1;for(re int j=m;j-t>=0;j--)dp[o^1][j]=max(dp[o^1][j],dp[o][j-t]+(k+1)*i);}for(re int j=1;j<=m;j++)dp[o^1][j]=max(dp[o^1][j],dp[o^1][j-1]);}int ans=0;for(re int i=1;i<=m;i++) ans=max(ans,dp[o][i]);printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/asuldb/p/10751229.html

[BJOI2019] 排兵布阵相关推荐

  1. [BJOI2019] 排兵布阵(分组背包)

    [BJOI2019] 排兵布阵 题目描述 小 C 正在玩一款排兵布阵的游戏.在游戏中有 nnn 座城堡,每局对战由两名玩家来争夺这些城堡.每名玩家有 mmm 名士兵,可以向第 iii 座城堡派遣 ai ...

  2. 洛谷 P5322 [BJOI2019]排兵布阵

    P5322 [BJOI2019]排兵布阵 题目大意:玩游戏~~,对于 n 个城堡,有 m 个士兵可以分别派遣到这些城堡. 同时我们有 s 个对手,在每个城堡都会与每个玩家单独比拼,在第 i 个城堡与每 ...

  3. 【背包DP练习】洛谷 P5020货币系统 P1757通天之分组背包 P1064[NOIP2006 提高组]金明的预算方案 P5322 [BJOI2019]排兵布阵

    洛谷 P5020货币系统 https://www.luogu.com.cn/problem/P5020 思路是把货币从小到大排序,然后按顺序依次完全背包dp,每次dp检查i-1种面值的货币能不能凑出第 ...

  4. P5322 [BJOI2019] 排兵布阵

    P5322 [BJOI2019] 排兵布阵 Summary: Description 小 C 正在排兵布阵.有 n n n 座城堡,每局对战由两名玩家来争夺这些城堡.每名玩家有 m m m 名士兵,可 ...

  5. 洛谷P5322 [BJOI2019] 排兵布阵 题解

    洛谷P5322 [BJOI2019] 排兵布阵 题解 题意:小 C 正在玩一款排兵布阵的游戏.在游戏中有 n n n 座城堡,每局对战由两名玩家来争夺这些城堡.每名玩家有 m m m 名士兵,可以向第 ...

  6. P5322 BJOI2019 排兵布阵

    P5322 BJOI2019 排兵布阵 本题主要考察对模型的转化能力. 首先要察觉两条性质: 对于一个城堡,想打败一个玩家的同时用最少的士兵,肯定是正好派出这个玩家在这个城堡派出的士兵数量的二倍加一名 ...

  7. [BJOI2019]排兵布阵

    排兵布阵 题解 今天比赛上这道题好像是人均题呀. 好吧,就一个简单的,连优化都不需要的背包dp. 我们每次只需要处理在比第i个城堡的第j大的玩家大的情况,不必把所有的兵的情况都处理完. 然后就可以过了 ...

  8. 洛谷P5322 [BJOI2019]排兵布阵【分组背包】

    题目描述 小 C 正在玩一款排兵布阵的游戏.在游戏中有 n 座城堡,每局对战由两名玩家来争夺这些城堡.每名玩家有 m 名士兵,可以向第 i 座城堡派遣 a_i名士兵去争夺这个城堡,使得总士兵数不超过 ...

  9. Java 解洛谷PP5322 [BJOI2019] 排兵布阵,包含完整的分组背包状态转移方法说明,通俗易懂

    01.题目及链接 题目链接:https://www.luogu.com.cn/problem/P5322 02.分组背包说明 分组背包:有k组物品,N个物品,一个容量是C的背包.每组物品有若干个,同一 ...

最新文章

  1. 桌面图标有阴影怎么去掉
  2. NYOJ6——喷水装置(一)
  3. python 12306 车次数据获取
  4. VS2015 定时服务及控制端
  5. C/C++ putchar函数 - C语言零基础入门教程
  6. 服务器需要哪些芯片,云计算的服务器需要芯片
  7. 电脑当路由使用(目前只在win7上用过)
  8. 【JavaScript】查漏补缺 —对象转换成字符串JSON.stringify()
  9. Python 利用*args和**kwargs解决函数遇到不确定数量参数问题
  10. 吴恩达都在做的AI农业到底有什么魔力?
  11. gatling系列教程(翻译)-第三节(快速开始)
  12. mysqldump 工具的使用
  13. ajax里的data的用法,Jquery中ajax方法data参数的用法
  14. 2012-11-25 3:00 发喜讯,终于把S5pv210 VGA 分辨率提升到1440 x 900/1920 x 1080了!
  15. 两位诺奖得主给“太上老君托梦”的天价白酒当首席科学家
  16. Vue Markdown编辑器
  17. 缓解精神内耗的“马原疗法”
  18. 基于RT-Thread的光照强度传感器BH1750FVI 软件包
  19. python基础程序_Python基础初识
  20. 电脑位置,Windows10系统查找电脑设备位置的方法介绍

热门文章

  1. ecshop手机号码归属地
  2. 互动让综艺再进化,「黑科技」如何让这届年轻人身临其境做戏精?
  3. Arduino基础2
  4. 币图告诉你如何解决双花问题
  5. 数据分析工具与参照【持续更新中......】
  6. 软件工程复习笔记 类图
  7. 销量预测模型案例实战
  8. 计算机电源的功能,电源屏主要功能及工作原理
  9. 知识付费的本质是什么?现在入行知识付费行业晚吗?
  10. 安卓手机短信误删能恢复吗?