题目意思很简单,

一道类似于背包的问题,问恰好超过背包容量的最小取值。并且需要计算n次,每计算一次都要将所有的物品的价值w[i] /= t,最后输出背包n次的总使用容量。

如果无法实现输出”No Answer”。

就是背包的变形,或者用队友的话说,当做dp做就好了,管它是不是背包呢。

主要就是状态转移方程了,其它没什么难点。

……感觉自己好水。

 #include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
#define LL long long const LL L = 1e17;
const int W = ; int t_t;
int n, m, k, t;
LL a[W], b[W], dp[W];
LL ans;
bool flag; LL Min(LL x, LL y)
{
return (x == - || x > y) ? y : x;
} int main()
{
//freopen("test.in", "r", stdin);
scanf("%d", &t_t);
for(int tm = ; tm <= t_t; tm++)
{
scanf("%d%d%d%d", &n, &m, &k, &t);
for(int i = ; i < m; i++) cin >> a[i];
for(int i = ; i < m; i++) cin >> b[i]; ans = ;
for(int ii = ; ii <= n; ii++)
{
memset(dp, -, sizeof(dp));
dp[] = ;
flag = ;
for(int i = ; i < m; i++)
{
if(b[i] == ) continue;
for(int j = ; j <= k; j++)
{
int mid = j-b[i]> ? j-b[i] : ;
//;
dp[j] = Min(dp[j], dp[mid]+a[i]);
//cout << b[i] << "#############" << dp[j] << endl;
}
}
//cout << "............................" << dp[k] << endl;
if(dp[k] == -) {flag = ; break;}
ans += dp[k];
for(int i = ; i < m; i++) b[i] /= t;
}
if(flag) cout << "No Answer" << endl;
else cout << ans << endl; }
}

hiho1270 建造基地([Offer收割]编程练习赛1)的更多相关文章

  1. hihocoder [Offer收割]编程练习赛4

    描述 最近天气炎热,小Ho天天宅在家里叫外卖.他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元.并且如果消费总计满X元,还能享受优惠.小Ho是一个不薅羊毛不舒服斯基的人,他希望 ...

  2. hihocoder [Offer收割]编程练习赛61

    [Offer收割]编程练习赛61 A:最小排列 给定一个长度为m的序列b[1..m],再给定一个n,求一个字典序最小的1~n的排列A,使得b是A的子序列. 贪心即可,b是A的子序列,把不在b中的元素, ...

  3. [Offer收割]编程练习赛46

    [Offer收割]编程练习赛46赛后题解 A.AEIOU 分析

  4. ACM学习历程—Hihocoder [Offer收割]编程练习赛1

    比赛链接:http://hihocoder.com/contest/hihointerview3/problem/1 大概有一个月没怎么打算法了.这一场的前一场BC,也打的不是很好.本来Div1的A和 ...

  5. [Offer收割] 编程练习赛1

    A HihoCoder 1268 九宫 思路: 一般类似于数独的题目都是使用回溯解决,这里由于题目数据较小同样可以直接DFS得出结果.这里我用了一个偷懒的方法(next_permutation),直接 ...

  6. hihoCoder[Offer收割]编程练习赛1题目解析

    题目1 : 九宫 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 小Hi近期在教邻居家的小朋友小学奥数.而近期正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不反 ...

  7. HihoCoder1670 : 比赛日程安排([Offer收割]编程练习赛41)(模拟)

    描述 H国编程联赛中有N只队伍,编号1~N. 他们计划在2018年一共进行M场一(队)对一(队)的比赛. 为了让参赛队员能得到充分的休息,联赛组委会决定:每支队伍连续两场比赛之间至少间隔一天.也就是如 ...

  8. [Offer收割]编程练习赛48

    题目1 : 折线中点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定平面上N个点P1, P2, ... PN,将他们按顺序连起来,形成一条折线. 请你求出这条折线的 ...

  9. [Offer收割]编程练习赛3 - 题目3 : 智力竞赛

    智力竞赛 Problem's Link ---------------------------------------------------------------------------- Mea ...

随机推荐

  1. HDU 2509 基础Anti-SG NIM

    如果我们规定当局面中所有的单一游戏的SG值为0时,游戏结束,则先手必胜当且仅当:(1)游戏的SG!=0 && 存在单一游戏的SG>1:(2)游戏的SG==0  && ...

  2. lua元表详解

    元表的作用 元表是用来定义对table或userdata操作方式的表 举个例子 local t1 = {1} local t2 = {2} local t3 = t1 + t2 我们直接对两个tabl ...

  3. 网络基础知识(一)wireshark 三次握手实践

    wireshark 三次握手简介 192.168.18.120 IP地址为我的本机虚拟机IP地址 过滤设置:ip.addr == 192.168.18.120 (ip.addr == 192.168. ...

  4. 阿里云Linux服务器挂载数据盘

    步骤1.登录服务器2.检查磁盘信息 命令:fdisk -l3.磁盘分区 命令:fdisk /dev/xvdb 查看命令帮助 m n //新增一个分区 p //建立一个主分区 1 //设置盘符为1 回车 ...

  5. Linux 并发链接数

    并发数查看   查看 TCP 协议连接数 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' SYN_RECV # ...

  6. vsftp服务器部署

    环境:CentOS 6.6 目标:个人虚机部署vsftp服务器,供测试使用. 说明:步骤已改写为脚本,直接添加用户与对应的密码列表,调用函数名即可 ########################## ...

  7. VS 多工程代码编写

    VS工作目录,输出目录 C++项目,解决方案总文件夹下就只包含解决方案配置文件sln和一个项目总文件夹和一个Debug文件夹以及一个Release文件夹(共四个东东,其中Debug和Release文件 ...

  8. 分模块开发创建dao子模块——(七)

    1.选中父工程右键新建maven module

  9. artDialog4.1.7 摘自网络

    jquery.artDialog.source.js学习 1 关键的对象关系 art = jQuery = $ function artDialog() {...} artDialog.fn = ar ...

  10. elasticsearch RTF版本介绍

    说明:elastic search官方版本没有集成中文分词以及各种插件,需要手动配置,手动编译jar,对Windows用户很不友好.下载地址:https://github.com/medcl/elas ...