Chino的成绩

题目描述

Chino非常注重自己的成绩

Chino有m种方式给自己增加rp以增加成绩,她的每种增加rp的方式都有n个阶段,第i种的第j个阶段增加的rp表示为Aij​,表示连续进行了j天第i种增加rp的方式

Chino连续进行同一种方式,效果可能更好也可能更差,她想要知道在n天里能获得的最大rp,你能帮帮可爱的Chino吗?

输入输出格式

输入格式:

第一行,两个正整数n,m

接下来m行,第i+1行为n个整数A[i][1]~A[i][n]​

输出格式:

一行一个数,最大的rp

输入输出样例

输入样例#1:

3 3
3 2 1
3 1 1
3 3 1
输出样例#1:

9
输入样例#2:

3 3
3 2 1
3 5 2
4 1 1
输出样例#2:

12

说明

本题分为3个Subtask

第一个Subtask,2组数据 ,保证n \leq 50n≤50, m \leq 5000m≤5000, a_i \leq 1e9ai​≤1e9

对于第二个Subtask,4组数据,保证n \leq 70n≤70, m \leq 10000m≤10000, a_i \leq 1e9ai​≤1e9

对于第三个Subtask,4组数据,保证n \leq 100n≤100, m \leq 5000m≤5000, a_i \leq 1e9ai​≤1e9

其中每组数据4分,对于每个Subtask及其中的每个数据点,取分数和。

样例解释1

第 1 天进行第 1 项活动,获得 A11​=3 点rp。

第 2 天进行第 2 项活动,获得 A21​=3 点rp。

第 3 天进行第 1 项活动,获得 A11​=3 点rp。

样例解释2

第 1 天进行第 2 项活动,获得 A21​=3 点rp。

第 2 天进行第 2 项活动,获得 A22​=5 点rp(因为已经连续进行了 2 次第 2 项活动,因而是 A22​ 而不是 A21​。

第 3 天进行第 3 项活动,获得 A31​=4 点rp。

这个坑留了好久吧,终于回来填坑了

sol:

首先如果a = {3, 2, 1}, 如果取三天只能是6, 9是不合法的,这个要搞清楚

所以当前这个方案取了几天一定要有

f(i, j)表示到第i天,以第j中方案结尾的最大rp

g(i, j)记录当前这个方案取了几天

1、继续采用当前的方案
f(i,j)=f(i−1,j)+a[j][g(i−1,j)+1])
g(i,j)=g(i−1,j)+1
2、更换方案
f(i,j)=max(f(i−1,k)+a[j][1])(k!=j)
g(i,j)=1

然后这个k可以用前缀和处理掉,(滚存一下)

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n, m, a[][];
int f[][], g[][];
int pre[], suf[];
int main()
{
scanf("%d%d", &n, &m);
for(int i = ; i <= m; i++)
for(int j = ; j <= n; j++)
scanf("%d", &a[i][j]);
memset(f, , sizeof f);
memset(g, , sizeof g);
for(int i = ; i <= n; i++)
{
for(int j = ; j <= m; j++)
{
if (f[i - ][j] + a[j][g[i - ][j] + ] > max(pre[j - ], suf[j + ]) + a[j][])
{
f[i][j] = f[i - ][j] + a[j][g[i - ][j] + ];
g[i][j] = g[i - ][j] + ;
}
else
{
f[i][j] = max(pre[j - ], suf[j + ]) + a[j][];
g[i][j] = ;
}
}
memset(pre, , sizeof pre);
memset(suf, , sizeof suf);
for(int j = ; j <= m; j++)
pre[j] = max(pre[j - ], f[i][j]);
for(int j = m; j >= ; j--)
suf[j] = max(suf[j + ], f[i][j]);
}
int ans = ;
for(int i = ; i <= m; i++)
ans = max(ans, f[n][i]);
printf("%d\n", ans);
}

luogu T40984Chino的成绩的更多相关文章

  1. 「Luogu 2367」语文成绩

    更好的阅读体验 Portal Portal1: Luogu Description 语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行.她总是要一遍遍地给某些同学增加分数,又要注意最低分是多少 ...

  2. CJOJ 1331 【HNOI2011】数学作业 / Luogu 3216 【HNOI2011】数学作业 / HYSBZ 2326 数学作业(递推,矩阵)

    CJOJ 1331 [HNOI2011]数学作业 / Luogu 3216 [HNOI2011]数学作业 / HYSBZ 2326 数学作业(递推,矩阵) Description 小 C 数学成绩优异 ...

  3. Luogu 1068 - 分数线划定 - [快速排序]

    题目链接:https://www.luogu.org/problemnew/show/P1068 题目描述世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对所有报名的选手 ...

  4. Luogu 1093 - 奖学金 - [排序水题]

    题目链接:https://www.luogu.org/problemnew/show/P1093 题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生 ...

  5. [JLOI 2016]成绩比较

    Description 题库链接( \(\text{bzoj}\) 不知道为什么过不了啊... \(\text{luogu loj}\) 都能过...就给 \(\text{luogu}\) 的链接了. ...

  6. [luogu P3216] [HNOI2011]数学作业

    [luogu P3216] [HNOI2011]数学作业 题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M,要求计算 Concatenate (1 ...

  7. hyfhaha大事记——luogu

    成就墙 AK CSP-J 初赛 AK CSP-J 复赛 CSP- J 一等奖 CSP-S 一等奖 大事记 2017-09-20 13:54 注册洛谷账号 之后洛谷一直处于沉沦状态 2018 2018- ...

  8. sql面试题(学生表_课程表_成绩表_教师表)

    原帖链接:http://bbs.csdn.net/topics/280002741 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程 ...

  9. 2016福州大学软件工程Beta阶段团队作业成绩汇总

    1.评分规则 本次Beta阶段团队作业评分方法如下: 团队得分=[[7次scrum过程评分+(小组互评得分+教师评分)/2]/2],其中过程.小组.教师各30分 说明:由于没有规定提交团队贡献比,因此 ...

随机推荐

  1. FineUIMvc随笔(2)怎样在控件中嵌套 HTML

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 有网友在<FineUI总群1>问这么一个问题:怎么把 HTML 嵌套在控件中? 这是很多刚学习 FineU ...

  2. PayPal、支付宝诞生的故事 | 概述起源篇

    你知道第三方支付是如何由来的吗? 第三方支付概述 说起第三方支付,好像大家都知道,天天不是用支付宝和微信吗?支付宝和微信支付确实是行业内非常具有代表的第三方支付公司,但现在他们已经不完全是一家第三方支 ...

  3. .Net高级进阶,教你如何构建企业模型数据拦截层,动态控制字段验证

    现在,你有一个MVC架构的web项目,你要完成一个注册功能. 前台传了3个值到你的控制器,分别是账号.密码.邮箱. 如图:现在你要在控制器里面判断,账号名称.密码.邮箱不能为空,并且名称和密码不超过1 ...

  4. 一起学习造轮子(二):从零开始写一个Redux

    本文是一起学习造轮子系列的第二篇,本篇我们将从零开始写一个小巧完整的Redux,本系列文章将会选取一些前端比较经典的轮子进行源码分析,并且从零开始逐步实现,本系列将会学习Promises/A+,Red ...

  5. Item 26: 避免对universal引用进行重载

    本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果你需要写一个以名字作为参数,并记录下当前日期和 ...

  6. flask 单元测试

    程序开发过程中,代码是为了完成需求,当代码编译通过后,能不能保证功能的正常实现,需要我们编写测试代码,模拟程序运行过程,检验功能是否符合预期. 单元测试主要面向一些功能单一的模块进行. 单元测试,实际 ...

  7. Log4.Net 在Winform、MVC、ashx程序里的使用,ashx程序里使用异步

    最近做一个双11活动的,是一套相关的H5页面.本来以为难度不大,但是做下来几天还是遇到些问题.就总结一下吧,还是有收获的. 1.在H5页面中,有一个遮罩层,还是挺有意思的.直接用div+css控制遮罩 ...

  8. openstack-KVM安装与使用

    一.KVM安装 1.安装条件 VT-x BIOS Intel9R) Virtualization Tech [Enabled] cat /proc/cpuinfo | grep -e vmx -e n ...

  9. Linux下查看文件系统磁盘使用

    [root@localhost ~]# df -h 可以查看所有文件系统的磁盘使用情况 du --max-depth=1 -h 可以查看当前目录下各子目录的磁盘使用情况 参考:http://www.2 ...

  10. pdf中内嵌字体问题

    在提交论文pdf到IEEE时总要检查字体是否为内嵌的,查看pdf中所有字体及是否内嵌可查看:http://sinme.blog.sohu.com/120043575.html. 具体做法是: 在pdf ...