【DP】数字游戏(jzoj 2131)
数字游戏
jzoj 2131
题目大意:
有n个数,每个数有相应的aia_iai和bib_ibi,当选了一个数后结果加上aia_iai,其他数分别减去他们自己的aja_jaj,现在让你选m个数,结果最大是多少
输入样例
3
3
10 20 30
4 5 6
输出样例
47
数据范围
1⩽m⩽n⩽20001\leqslant m\leqslant n\leqslant 20001⩽m⩽n⩽2000
解题思路:
先按b从大到小排个序,然后就实现了尽量减少每个数字减去的数,然后直接DP即可
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,f[2500][2500];
struct rec
{int a,b;
}a[2500];
bool cmp(rec x,rec y){return x.b>y.b;}
int main()
{scanf("%d %d",&n,&m);for (int i=1;i<=n;++i)scanf("%d",&a[i].a);for (int i=1;i<=n;++i)scanf("%d",&a[i].b);sort(a+1,a+1+n,cmp);//排序memset(f,-127/3,sizeof(f));//预处理f[1][1]=a[1].a;for (int i=2;i<=n;++i)f[i][1]=max(f[i-1][1],a[i].a);for (int i=1;i<=n;++i)for (int j=2;j<=m;++j)f[i][j]=max(f[i-1][j],f[i-1][j-1]+a[i].a-a[i].b*(j-1));//要不不选,如果选了,就要减去已选的数字*bprintf("%d",f[n][m]);return 0;
}
【DP】数字游戏(jzoj 2131)相关推荐
- codevs 1085 数字游戏 dp或者暴搜
1085 数字游戏 2003年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁 ...
- codevs1085数字游戏(环形DP+划分DP )
1085 数字游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在 ...
- 数字游戏——数位dp问题
数字游戏 数位dp思路: 首先考虑第一个数字能填什么,预处理第一个数字能填的数(除去边界),然后去判断边界,即让循环往下走. 代码 #include <iostream> #include ...
- 数字游戏(区间dp)
丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分 ...
- #10166. 「一本通 5.3 练习 1」数字游戏【数位 DP】
题目描述 由于科协里最近真的很流行数字游戏,某人又命名了一种取模数,这种数字必须满足各位数字之和 mod N为 0.现在大家又要玩游戏了,指定一个整数闭区间 [a,b],问这个区间内有多少个取模数. ...
- JZOJ 2032. 数字游戏
题目 Description FJ和他的奶牛们喜欢玩一种数字游戏:他们按某种顺序在纸上写下1-N(1<=N<=10)之间的所有数,然后把相邻的数字相加,得到一个比原数列少一项的数列.对新数 ...
- Acwing 1084. 数字游戏 II
Acwing 1084. 数字游戏 II 题意: 指定一个整数闭区间 [a.b],问这个区间内有多少个取模数. 取模数:这种数字必须满足各位数字之和 mod N 为 0. 题解: 数位dp 这里不细讲 ...
- Acwing 1082. 数字游戏
Acwing 1082. 数字游戏 题意: 现在大家决定玩一个游戏,指定一个整数闭区间 [a,b],问这个区间内有多少个不降数. 题解: 利用数位dp的套路来做 我们还是利用前缀和来做 我们先求1~n ...
- 【LeetCode笔记 - 每日一题】375. 猜数字游戏 II (Java、DFS、动态规划)
文章目录 题目描述 思路 && 代码 DFS 动态规划 新系列-用于区分开高频题和每日一题- 题目描述 一眼二分,但是实际上并不是 这题让我想到社团的猜数字游戏-但是给钱是真过分了= ...
最新文章
- JavaScript弹出新窗口居中显示
- 小雷郑重承诺:在2017年之前,对大学毕业4年以来的所有努力和探索,做一个全面客观的总结,技术研究、工作创业、投资理财、朋友感情等...
- linux 图片
- linux 一行代码,一行代码终结你的Linux~
- 分别对时分秒加减的java_Java中关于获取时间(日期)的总结大全
- redis 3.0的集群部署
- 数据可视化(3)--Google Charts
- 相机标定(二)—— 投影变换相关基础概述
- Linux常用命令——tac、bc
- 网上十大经典黑客软件大曝光(转)
- 2021.4.18高一模拟赛
- 深度学习:YOLO算法与其优化
- 计算机的物理地址怎么写,电脑物理地址怎么查
- 网络间谍:你的共享文件夹网络监视器
- python executescript_Python(SQLite)executescript用法(
- 软件测试需求频繁变更,软件测试人员如何测试需求频繁变动的项目
- 2017亿欧创新者年会暨第三届创新奖颁奖盛典 | 互联网行业公会
- 有没有什么好的可以做读书笔记的APP推荐?
- DolphiScheduler平台上运行spark程序时,外部参数设置
- Android开发 之 LinearGradient与闪动文字效果
热门文章
- uibot在子程序执行js失败_使用 Node.js 将珍藏的 bash 脚本封装成命令行工具
- w10计算机无法打印,win10升级后惠普无法打印怎么解决_win10升级后惠普打印不了的处理办法...
- c++经典编程题_全国青少年软件编程等级考试C语言经典程序题10道十
- html中label的寬度無法修改,如何设置HTML span、label 的宽度
- linux如何实现网络高级编程,嵌入式Linux网络编程之:网络高级编程-嵌入式系统-与非网...
- 历史版本_新版本爆料第弹丨英雄练习新去处,荣耀历史秀出来!
- 7-26 Windows消息队列 (25 分)(详解+思路+超时解决)
- 计算机一级文档题,计算机一级模拟题
- [数据结构]邻接矩阵和邻接表存储的图DFS,BFS算法时间复杂度分析
- matlab如何使用cu文件,Matlab编译cuda的.cu文件