P1426兴奋剂检查

 
 

背景

北京奥运会开幕了,这是中国人的骄傲和自豪,中国健儿在运动场上已经创造了一个又一个辉煌,super pig也不例外………………

描述

虽然兴奋剂是奥运会及其他重要比赛的禁药,是禁止服用的。但是运动员为了提高成绩难免要服用一些,super pig也不例外。为了不被尿检检查出来,这些药品就只能选一些不容易被发现的来服用。但是奥委会关于兴奋剂检查有很多个指标,只有尿检中各项数值均不高于规定指标才算成阴性(“你没服兴奋剂”),所以如何服用适量的药品使自己的水平达到最高是每个运动员困扰的问题。

现在有n个药品,每个药品如服用就必须全部用掉(否则会有副作用)。尿检检查共有m个项目,服用每个药品对于每个检查项目都会得到一定的效果值,这些效果值是累加的;服用每个药品当然还会给super pig一些水平提高值,这些效果也是累加的。现在super pig想把问题交给你来解决,因为吃药归吃药,训练才重要。

格式

输入格式

第一行有两个整数n (0<n<=200)和m (1<=m<=5),分别表示药品数和需要检查的项目;
第二行m个整数 v1---vm,表示检查各项目的指标(即最高不能超过的值);
第三行到第n+2行,分别是这n个药品的资料,每行m+1个数。每行第一个数表示服用该药品所得到的水平提高值,第二到第m+1个数分别表示服用这个药品每一项的效果值(分别对应第二行的指标类型)。

0<= k=1∏m Vk <=5000000

输出格式

一个整数,即super pig通过服这些药在不被检查出来的条件下所能得到的最高水平提高值

样例1

样例输入1[复制]

 
5 1
6
7 3
8 5
3 1
6 2
4 3

样例输出1[复制]

 
16

限制

各个测试点1s

题解:

一开始读错题了,以为是个裸的01背包
读完题目,跑m组01背包,结果还是22分
于是看了看题解,我惊呆了,6重循环的dp,得亏m比较小要不然早爆了

AC代码i,j这个地方边界处理的很巧妙。

具体看代码吧

22分代码:

#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
const int N=;
const int M=5e6+;
int n,m;
int res,c[],v[N][],w[N],f[M];
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++) scanf("%d",&c[i]);
for(int i=;i<=n;i++){
scanf("%d",&w[i]);
for(int j=;j<=m;j++){
scanf("%d",&v[i][j]);
}
}
for(int k=;k<=m;k++){
for(int i=;i<=n;i++){
for(int j=c[k];j>=v[i][k];j--){
f[j]=max(f[j],f[j-v[i][k]]+w[i]);
}
}
res=max(res,f[c[k]]);
}
printf("%d\n",res);
return ;
}

AC代码:

#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
const int N=;
const int M=5e6+;
int n,m,ans,c[],v[N][],f[M];
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++) scanf("%d",&c[i]);
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
scanf("%d",&v[i][j]);
}
}
for(int i=,j,k;i<=n;i++){
for(int a1=c[];a1>=v[i][];a1--){
for(int a2=c[];a2>=v[i][];a2--){
for(int a3=c[];a3>=v[i][];a3--){
for(int a4=c[];a4>=v[i][];a4--){
for(int a5=c[];a5>=v[i][];a5--){
j=(((a1*(c[]+)+a2)*(c[]+)+a3)*(c[]+)+a4)*(c[]+)+a5;
k=((((a1-v[i][])*(c[]+)+(a2-v[i][]))*(c[]+)+(a3-v[i][]))*(c[]+)+(a4-v[i][]))*(c[]+)+a5-v[i][];
ans=max(ans,f[j]=max(f[j],f[k]+v[i][]));
}
}
}
}
}
}
printf("%d\n",ans);
return ;
}

vijos 1426的更多相关文章

  1. vijos 1426 背包+hash

    背景 北京奥运会开幕了,这是中国人的骄傲和自豪,中国健儿在运动场上已经创造了一个又一个辉煌,super pig也不例外……………… 描述 虽然兴奋剂是奥运会及其他重要比赛的禁药,是禁止服用的.但是运动 ...

  2. 兴奋剂检查(vijos 1426)

    背景 北京奥运会开幕了,这是中国人的骄傲和自豪,中国健儿在运动场上已经创造了一个又一个辉煌,super pig也不例外……………… 描述 虽然兴奋剂是奥运会及其他重要比赛的禁药,是禁止服用的.但是运动 ...

  3. vijos P1426兴奋剂检查 多维费用背包问题的hash

    https://vijos.org/p/1426 这是个好题,容易想到用dp[i][v1][v2][v3][v4][v5]表示在前i个物品中,各种东西的容量是那个的时候,能产生的最大价值. 时间不会T ...

  4. 【BZOJ 1061】【Vijos 1825】【NOI 2008】志愿者招募

    http://www.lydsy.com/JudgeOnline/problem.php?id=1061 https://vijos.org/p/1825 直接上姜爷论文... #include< ...

  5. [ACM训练] 算法初级 之 搜索算法 之 广度优先算法BFS (POJ 3278+1426+3126+3087+3414)

    BFS算法与树的层次遍历很像,具有明显的层次性,一般都是使用队列来实现的!!! 常用步骤: 1.设置访问标记int visited[N],要覆盖所有的可能访问数据个数,这里设置成int而不是bool, ...

  6. vijos P1915 解方程 加强版

    背景 B酱为NOIP 2014出了一道有趣的题目, 可是在NOIP现场, B酱发现数据规模给错了, 他很伤心, 哭得很可怜..... 为了安慰可怜的B酱, vijos刻意挂出来了真实的题目! 描述 已 ...

  7. vijos P1780 【NOIP2012】 开车旅行

    描述 小\(A\)和小\(B\)决定利用假期外出旅行,他们将想去的城市从\(1\)到\(N\)编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市\(i\)的海拔高度为 ...

  8. 【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险

    http://www.lydsy.com/JudgeOnline/problem.php?id=2541 https://vijos.org/p/1366 loli秘制大爆搜_(:з」∠)_坑了好久啊 ...

  9. 【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流

    http://www.lydsy.com/JudgeOnline/problem.php?id=1065 https://vijos.org/p/1826 好难的题啊TWT ∈我这辈子也想不出来系列~ ...

随机推荐

  1. JDBC Connection

    [ http://shift-alt-ctrl.iteye.com/blog/1967020]   关于JDBC中关于Connection的两个疑问:   1.Connection实例是线程安全的吗? ...

  2. Flex应用程序如何启动

    Flex应用程序启动 编写一个简单的Flex应用程序并不复杂,就算你从来没接触过Flex程序设计,照着帮助的实例步骤,不需花多长时间也能做出一个漂亮简捷的小程序出来.不过,随着对Flex程序编写的深入 ...

  3. 从UnitedStack OS 1.0 Preview试用申请问卷调查学习OpenStack

    http://www.diaochapai.com/survey/ 您的角色最可能是? * (必填, 多选) OpenStack私有云用户,希望能将OpenStack/UOS用于公司内部私有云 云计算 ...

  4. CloudStack4.2 更新全局参数API

    测试更新全局参数API http://192.168.153.34:8080/client/api?command=updateConfiguration&response=json& ...

  5. sc7731 Android 5.1 LCD驱动简明笔记之二

    此篇笔记基于sc7731 - android 5.1,对lcd的framebuffer做一个简明笔记. 一共分为两大部分:第一部分,关于LCD的硬件方面的:第二部分,关于lcd核心处理(framebu ...

  6. Microchip 125 kHz RFID System Design Guide

    Passive RFID Basics - AN680 INTRODUCTION Radio Frequency Identification (RFID) systems use radio fre ...

  7. 729 - The Hamming Distance Problem

      // 题意: // 输入两个整数N, H,按照字典序输出所有长度为N,恰好包含H个1的01串 // 规模:1<=H<=N<=16 // 算法A:2^N枚举,输出1的个数为H的.采 ...

  8. Linux基础教程之/dev/null和/dev/zero的区别及其用法

    在Linux操作系统中/dev/null和/dev/zero是两个相似却又很特殊的文件,特别是在shell脚本开发和系统运维过程中会经常用这两个文件,因此作为Linux系统工程师,必须了解这两个文件的 ...

  9. Codeforces Round #306 (Div. 2) C. Divisibility by Eight 暴力

    C. Divisibility by Eight Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/ ...

  10. scu 4436: Easy Math 水题

    4436: Easy Math Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.scu.edu.cn/soj/problem.actio ...