P2409 Y的积木

    • 77通过
    • 491提交
  • 题目提供者zhouyonglong
  • 标签云端评测
  • 难度普及+/提高

提交  讨论  题解

最新讨论

  • 这组数据几乎可以卡掉所有程…
  • 第一个题解有点问题
  • 求教大神 90分代码
  • 就是算的分组背包时间不够,…
  • 求解为何编译超时?
  • 有BUG

题目背景

Y是个大建筑师,他总能用最简单的积木拼出最有创意的造型。

题目描述

Y手上有n盒积木,每个积木有个重量。现在他想从每盒积木中拿一块积木,放在一起,这一堆积木的重量为每块积木的重量和。现在他想知道重量和最小的k种取法的重量分别是多少。(只要任意更换一块积木,就视为一种不同的取法。如果多种取法重量总和一样,我们需要输出多次。)

输入输出格式

输入格式:

第一行输入两个整数,n,k,意义如题目所描述。

每组数据接下来的n行,第一个整数为mi,表示第i盒积木的数量,在同一行有mi个整数,分别表示每个积木的重量。

输出格式:

一行,重量最小的k种取法的重量,要求对于每个数据,从小到大输出

输入输出样例

输入样例#1:

3 10
4 1 3 4 5
3 1 7 9
4 1 2 3 5
输出样例#1:

3 4 5 5 6 6 7 7 7 7

说明

对于30%的数据:2<=mi<=10,1<=n<=10

对于50%的数据:2<=mi<=50,1<=n<=50

对于100%的数据:2<=mi<=100,1<=n<=100,1<=k<=10000,每个积木的重量为不超过100的正整数,所有mi的积大于等于k。本题不卡常。

分析:显然搜索对于本题的数据而言是不行的,然后想到了一道题目,给你两个序列,从每个中选一个数相加,求和最小的k个,显然可以利用优先队列(小根堆)维护,但是对于本题而言较难维护,考虑dp.

一开始想的是根据题目给的数据来定状态,设f[i][j]为前i盒积木中第j小的方案,但是不知道怎么继续转移,换一种表示状态的方法.一般而言,计算的结果是不能充当状态的,例如j(可能表示不好),那么我们可以设f[i][j]为前i盒积木中重量为j的方案数,这样就避免了算第j小,那么f[i][j] = Σf[i-1][j-w[i][k]],w[i][k]为第i盒积木中第k个积木的重量,如果直接枚举的话不能过,还需要优化一下枚举的范围.计算出n盒积木中的最大和和最小和再枚举即可.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; int n, k, w[][], f[][], sizee[], minnum,maxnum, sum; int main()
{
scanf("%d%d", &n, &k);
for (int i = ; i <= n; i++)
{
int m;
scanf("%d", &m);
int minn = ,maxx = ;
for (int j = ; j <= m; j++)
{
scanf("%d", &w[i][j]);
minn = min(w[i][j], minn);
maxx = max(w[i][j], maxx);
sum += w[i][j];
}
minnum += minn;
maxnum += maxx;
sizee[i] = m;
}
f[][] = ;
for (int i = ; i <= n; i++)
for (int j = ; j <= sizee[i]; j++)
for (int kk = w[i][j]; kk <= maxnum; kk++)
if (f[i][kk] <= k && f[i - ][kk - w[i][j]] <= k)
f[i][kk] += f[i - ][kk - w[i][j]];
else
f[i][kk] = k; int kk = ;
for (int i = minnum; i <= sum; i++)
if (f[n][i])
for (int j = ; j <= f[n][i]; j++)
{
kk++;
if (kk > k)
return ;
printf("%d ", i);
} return ;
}

洛谷P2409 Y的积木的更多相关文章

  1. 洛谷P5162 WD与积木 [DP,NTT]

    传送门 思路 真是非常套路的一道题-- 考虑\(DP\):设\(f_n\)为\(n\)个积木能搭出的方案数,\(g_n\)为所有方案的高度之和. 容易得到转移方程: \[ \begin{align*} ...

  2. 洛谷 P5162 WD与积木【多项式求逆】

    设f[i]为i个积木能堆出来的种类,g[i]为i个积木能堆出来的种类和 \[ f[n]=\sum_{i=1}^{n}C_{n}^{i}g[n-i] \] \[ g[n]=\sum_{i=1}^{n}C ...

  3. 洛谷 P5162 WD与积木 解题报告

    P5162 WD与积木 题目背景 WD整日沉浸在积木中,无法自拔-- 题目描述 WD想买\(n\)块积木,商场中每块积木的高度都是\(1\),俯视图为正方形(边长不一定相同).由于一些特殊原因,商家会 ...

  4. P2409 Y的积木

    luogu月赛 暴力dfs,估计过不了几个点,大概也就得30分左右? #include <bits/stdc++.h> using namespace std; const int max ...

  5. 洛谷10月月赛Round.3

    Rank11:260=60+100+100 P2409 Y的积木 题目背景 Y是个大建筑师,他总能用最简单的积木拼出最有创意的造型. 题目描述 Y手上有n盒积木,每个积木有个重量.现在他想从每盒积木中 ...

  6. 洛谷P2342-叠积木

    Problem 洛谷P2342-叠积木 Accept: 373   Submit: 1.1k Time Limit: 1000 mSec    Memory Limit : 128MB Problem ...

  7. 【洛谷4005】小Y和地铁(搜索)

    [洛谷4005]小Y和地铁(搜索) 题面 洛谷 有点长. 题解 首先对于需要被链接的两个点,样例中间基本上把所有的情况都给出来了. 但是还缺了一种从下面绕道左边在从整个上面跨过去在从右边绕到下面来的情 ...

  8. BZOJ 4385 洛谷3594 POI2015 WIL-Wilcze doły

    [题解] 手残写错调了好久QAQ...... 洛谷的数据似乎比较水.. n个正整数!!这很重要 这道题是个类似two pointer的思想,外加一个单调队列维护当前区间内长度为d的子序列中元素之和的最 ...

  9. 洛谷OJ P1196 银河英雄传说(带权并查集)

    题目描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦 创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山 ...

随机推荐

  1. HTTP Code

    所有 HTTP 状态代码及其定义. 代码  指示  2xx  成功  200  正常:请求已完成.  201  正常:紧接 POST 命令.  202  正常:已接受用于处理,但处理尚未完成.  20 ...

  2. 关于是用dotnet获取本机IP地址+计算机名的方法

    印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...

  3. Eclipse中web项目部署至Tomcat步骤

    Eclipse的web工程至Tomcat默认的部署目录是在工程空间下,本文旨在将部署目录改为Tomcat安装目录,并解决依赖包输出问题. 1.在Eclipse中添加Tomcat服务器. 2.将web工 ...

  4. python fork 用法

    import os import sys ips = ( "192.168.45.%s" % i for i in range(1,255)) for ip in ips: pid ...

  5. asp.net mvc4 学习笔记一(基本原理)

    做了8年的asp.net webform,用过MVVM但还没用过MVC , 虽然项目不用MVC,但是还是想了解一下,今天第二天学习,以下是学习心得. VS2012默认带有asp.net mvc3和as ...

  6. RabbitMQ3.6.3集群搭建+HAProxy1.6做负载均衡

    目录 [TOC] 1.基本概念 1.1.RabbitMQ集群概述   通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服 ...

  7. cxxnet在windows下配置遇到的问题

    I compiled the dmlc-core and rabbit. When I compile the new version of CXXNET, there are compile err ...

  8. mysql密码重置

    忘记了Mysql的root用户密码,尝试连接时提示: mysqladmin: connect to server at 'localhost' failed ERROR : Access denied ...

  9. Bootstrap,Font Awesome等组件中 .woff字体报404错的解决办法

    参考资料:http://www.zhidao91.com/glyphicons-halflings-regular-woff-404-not-found/ http://shiyousan.com/p ...

  10. js点击后将文字复制到剪贴板,将图片复制到剪贴板

    复制文字: <table width="99%" border="0" cellpadding="0" cellspacing=&qu ...