hdu 6092 Rikka with Subset(逆向01背包+思维)

DP 动态规划 Problem V 1022 反向考虑的背包 Problem V  ID:1022 简单题意:某人准备抢银行,可以承受的最大被抓的概率为p(总共),共有n个银行可抢,分别给出各个银行所拥有的money:mi,抢各个银行被抓的概率pi。求可以抢到的最大金额。 解题思路形成过程:因为概率值的范围为0~1,即有小数,所以必须反向来考虑。             可以承受的最大被抓的概率为p,即:如果逃跑的概 阅读详情

参考:http://www.cnblogs.com/stepping/p/7324970.html

Rikka with Subset

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1122 Accepted Submission(s): 541
Problem Description
As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them:

Yuta has n positive A1−An and their sum is m. Then for each subset S of A, Yuta calculates the sum of S.

Now, Yuta has got 2n numbers between [0,m]. For each i∈[0,m], he counts the number of is he got as Bi.

Yuta shows Rikka the array Bi and he wants Rikka to restore A1−An.

It is too difficult for Rikka. Can you help her?

Input
The first line contains a number t(1≤t≤70), the number of the testcases.

For each testcase, the first line contains two numbers n,m(1≤n≤50,1≤m≤104).

The second line contains m+1 numbers B0−Bm(0≤Bi≤2n).

Output
For each testcase, print a single line with n numbers A1−An.

It is guaranteed that there exists at least one solution. And if there are different solutions, print the lexicographic minimum one.

Sample Input
2
2 3
1 1 1 1
3 3
1 3 3 1

Sample Output
1 2
1 1 1

Hint
In the first sample, A is [1,2]. A has four subsets [],[1],[2],[1,2] and the sums of each subset are 0,1,2,3 . So B=[1,1,1,1]
Source
2017 Multi-University Training Contest - Team 5
Recommend
liuyiding | We have carefully selected several similar problems for you: 6095 6094 6093 6092 6091

题目大意:
有一个数列 a[] ,长度(n<=50)。b[i] 表示元素和为 i 的集合个数。给你一个数列 b[] ,长度(m<=10000),让你求 a[],并按照其字典序最小输出。
题解:
网上有说是01背包,然而我也不知道自己写了点什么,大概是01背包吧
正常的背包:告诉你这个重量的物品个数,让你装包
逆向背包:这题告诉你,得到的这个重量有多少种,求各个重量的物品个数

官方题解:
1008 Rikka with Subset
签到题,大致的思想就是反过来的背包。

如果 B​i​​ 是 B 数组中除了 B​0​​ 以外第一个值不为 0 的位置,那么显然 i 就是 A 中的最小数。

现在需要求出删掉 i 后的 B 数组,过程大概是反向的背包,即从小到大让 Bj-=B​(j−i)​​。

时间复杂度 O(nm)。

#include <iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cmath>
#include<string>
#include<map>
#include<vector>
using namespace std;
int t,k;
int  n,m;
int bb[10005],b[10005],a[10005];
int main()
{
    scanf("%d",&t);

    while(t--)
    {
       scanf("%d%d",&n,&m);
       memset(a,0,sizeof(a));//a[i]表示第i个数字的个数
       memset(bb,0,sizeof(bb));//bb[k]表示当1~k-1中数字个数确定后,凑到和为k的种数,不够就表示,需要单独k这个数字来凑

       for(int i=0;i<=m;i++)
           scanf("%d",&b[i]);

       k=1; bb[0]=1;
       while(k<=m)
       {
           a[k]=b[k]-bb[k]; //这就是因为1~k-1个数确定后,能凑到和为k的种数,不够的说明a序列中有b[k]-bb[k]个数的k

            for(int j=1;j<=a[k];j++)
            {
                for(int i=m;i>=k;i--) //反着来,避免已经加到结果里的数字再加一遍,这里有01背包的感觉
                   bb[i]+=bb[i-k];
            }
           k++;
       }

       int tot=0;  //输出
       for(int i=1;i<=m;i++)
          for(int j=1;j<=a[i];j++)
           {
               if (tot++) printf(" ");
               printf("%d",i);
           }
       printf("\n");
    }
    return 0;
}
Cost-effective Attention Reuse across Multi-turn Conversations in Large Language Model Serving 通过多回合对话与人类互动是大型语言模型(LLM)的一个基本特征。然而,由于需要重复计算历史token的密钥值(KV)缓存,用于执行多回合会话的现有LLM服务引擎效率低下,从而导致高服务成本。为了解决这个问题,本文提出了AttentionStore,这是一种新的注意力机制,可以在多回合对话中重用KV缓存(即注意力重用),显著降低重复计算开销。AttentionStore维护一个分层的KV缓存系统,该系统利用经济高效的内存/存储介质为所有请求保存KV缓存。 阅读详情

相关推荐

MWORKS 2025a电气模型库实战:手把手教你搭建全桥LLC电路(附避坑指南)

本文详细介绍了如何使用MWORKS 2025a电气模型库搭建全桥LLC电路,包括环境准备、电路拓扑构建、参数优化及故障诊断。通过实战案例和避坑指南,帮助电源工程师高效设计谐振转换器,提升转换效率至98%以上。文章特别强调了Modelica模型库在电气系统建模中的关键作用。

s8t9u0v1w的博客 603

逆向背包问题 洛谷P1802

逆向背包问题 洛谷P1802 看到这道题的时候我觉得大家一定会觉得这是一个很基础的背包模板题,但上手了之后感觉不太对劲,再读题就发现这个题的解题思路有点“逆"。 作为动态规划的新手,逆的背包也让我想了很久 下面先放出本题AC代码: #include<bits/stdc++.h> using namespace std; int win[1005],lose[1005],use[1005]; long long v[1005][10000]; int main() { int n,x; ci

weixin_50547586的博客 1002

ABtest描述统计功效

我们在面试数据分析时,常常会问到如何确定样本量的问题,会有一个指标:统计功效(power),或者是1-β 统计功效会影响实验的可信度,甚至会影响实验所需的样本量,要了解统计功效,首先要理解两类统计错误 假如我们做了一个AB实验,且两组用户的数据均值为μ1和μ2,我们会有两个初始假设: H0:两个实验组的数据没有差别(μ1=μ2),这个假设也叫“零假设”,也叫原假设 H1:两个实验组之间的数据存在差别(μ1≠μ2),这个假设也叫“非零假设”,也叫备择假设 定义两类错误: 实验本身没有效应,但我们觉

qq_38134556的博客 897

12. 背包问题求具体方案 逆向01背包 后推出字典序最小 动态规划

题目 题解思路 在 机器分配 我们已经求过具体方案了,但是这回是要求字典序最小。 机器分配的思路就是先跑一次01背包 然后从结果往前推出答案 。 这样的思路在这题是行不通的,从后往前就很难保证是字典序最小了。 闫总之间反向跑01背包,让最大值结果在F[ 1 ][ m ] 中,然后从1开始往后面推,这样肯定可以保证字典序最小。 闫总这波逆向思维属实nb AC代码 #include <iostream> #include <cstdio> #include <cs

从你的全世界路过 516

Altera Cyclone4 EP4CE15F17C8核心板硬件设计避坑指南(附AD09工程文件)

本文深入解析Altera Cyclone4 EP4CE15F17C8核心板硬件设计中的关键问题与解决方案,涵盖电源架构优化、信号完整性处理、热设计及生产调试要点。特别提供经过验证的AD09工程文件,帮助开发者规避常见设计陷阱,提升FPGA项目的成功率与可靠性。

weixin_29159441的博客 296

在 dell precision 7920 tower CentOS 8 Stream 上安裝nvidia驱动程序、Anaconda

简单记录一下如何在实验室dell precision 7920 tower CentOS 8 Stream上安装nvidia显卡驱动。

chen9046的博客 994

【 FZU - 2214 】Knapsack problem(逆向0-1背包)

题干: Given a set of n items, each with a weight w[i] and a value v[i], determine a way to choose the items into a knapsack so that the total weight is less than or equal to a given limit B and the tot...

xuanweiace的博客 532

航空大数据——项目资源汇总及开源(四)

ADS-B项目开源大礼包

cyc头发还挺多的博客 4978

hdu 6092 Rikka with Subset 逆向背包

题 目 传 送 门 题意:题中给出一个序列的两个性质 1.序列中数的个数为n 2.序列中所有数之和为m 然后给出和为0~m的子序列的个数,最后让我们确定这个序列 思路:比赛的时候写的是正向背包,一直re,后来发现从前往后加的话就有好多就覆盖了 但是如果写反向背包的话就不会出现这种情况 ac代码: #include using namespace std; const

扬帆起航 440

第三方系统(异构系统)基于token身份认证方式访问Ecology9的Restful接口Ecology9服务器配置部分

通过Token的认证方式调用Ecology9系统Restful业务接口服务器配置部分

svsou的专栏 2174

基于YOLOv8与UI界面的校园垃圾分类督导系统

YOLO(You Only Look Once)是目前最为广泛使用的目标检测算法之一。它通过一次前向传递即完成目标检测,具有极高的速度与效率。YOLOv8是YOLO系列的最新版本,相比于之前的YOLO版本,YOLOv8在速度、精度、检测能力等方面都有了显著的提升。本项目通过结合YOLOv8模型与UI界面,成功实现了校园垃圾分类督导系统。该系统能够自动识别不同类型的垃圾,并通过UI界面实时展示垃圾分类的结果。

YOLO 337

hdu6092 Rikka with Subset(01背包)

题意 给你一个b[]数组,每次取a数组的子集之和为i的方案数有bi个 输出字典序最小的a数组 思路来源 https://www.bilibili.com/video/av29915579/?spm_id_from=333.788.videocard.0 题解 心得 01背包逆序和完全背包正序是方程决定的 dp[j][k]=dp[j-1][k]+dp[j-1][k-a[j...

小衣同学的博客 284

SerDes学习笔记:均衡技术详解 01

本文系统阐述了高速SerDes链路中均衡技术的应用原理与实现方法。重点介绍了发射端预加重/FIR均衡和接收端CTLE/DFE/FFE等主流均衡方案,详细探讨了各类均衡器的频域特性、时域效果及硬件实现架构。

一只豌豆象的博客 1295

HDU6092 Rikka with Subset(01背包+思路)

Rikka with Subset Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 856    Accepted Submission(s): 422 Problem Description As we know

gyr 336

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hdu 6092 Rikka with Subset(01背包)

题目链接:hdu 6092 Rikka with Subset 题意: 给你n和m,让你找一个字典序最小的含有n个数的A序列,使得A序列的和为m, 然后给你m+1个数,是A序列所有的集合的和的个数,然后让你找出这个A序列。 题解: 和题解一样的思想。 1 #include<bits/stdc++.h> 2 #define mst(a,b) memset(a...

weixin_30413739的博客 105

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

hdu 6092 Rikka with Subset 背包dp

题意:有一个数列 a[] ,长度(n 我们熟悉的一个问题是,给你若干数字,选取其中一些,每个数字只能取一次,求它们的和的不同方案数,那现在这个问题反过来了,同样可以用背包做。 因为可能a数组中有0的出现,所以先算出0的个数,也就是log2(b[0]),将这些0放入最后要输出的答案序列中,然后其他位都除以b[0],貌似数据很弱,并没有b[0]不是1的情况出现,之后第一个b[i]不是0的就代表有b

熟睡的哲学家的博客 265

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Rikka with Subset HDU - 6092 (傻瓜01背包)

As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them: Yuta has nn positive A1−AnA1−An and their sum is mm. Then

黑码 490

[HDU 6092] Rikka with Subset

Rikka with Subset Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 139    Accepted Submission(s): 49 Problem Description As we know,

pingyufeng的博客 376

HDU6092-Rikka with Subset(背包)

Rikka with SubsetTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1540 Accepted Submission(s): 779Problem Description As we know, Rikka is p

DrWells的博客 334

HDU-6092 Rikka with Subset(dp)

传送门:HDU-6092 这道题就是个01背包的逆过程,B[i]+=B[i-Aj] #include using namespace std; typedef long long LL; const int MX = 1e4 + 5; const int inf = 0x3f3f3f3f; int dp[MX]; int main() { int T,n,m; //freop

十分残念的博客 432

hdu 6092 Rikka with Subset(多重背包)

题目链接:这里写链接内容Rikka with SubsetTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1647 Accepted Submission(s): 822Problem Description As we know

nhl19961226的博客 286

hdu 6092 Rikka with Subset

题意:给你一个B数组,m+1个数,分别代表区间【0,m】的对应下标位置的数量,一共有2^n个数,B数组是A数组的所有集合的和的映射,求A数组。#include <bits/stdc++.h> const int MAXN = 100005; using namespace std; typedef long long LL; inline int read() { int f=1, x=0;

DK 401

hdu 多校联赛 6092 Rikka with Subset

Rikka with Subset Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situ

江北绝尘 258

HDU6092 Rikka with Subset(01背包,2017 HDU多校联赛 第5场)

题目: Rikka with Subset Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 972    Accepted Submission(s): 476 Problem Description A

riba2534的博客 546

HDU6092 Rikka with Subset-01背包dp-2017多校联盟5 第8题

HDU6092 Rikka with Subset-01背包dp-2017多校联盟5 第8题As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them:Yuta has npositive A1−Anand their sum is m. Then for each subset Sof

ly59782的博客 400

nyoj 890 又见01背包【0-1背包+逆向思维】

又见01背包 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述     有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W  的物品,求所有挑选方案中物品价值总和的最大值。   1   1   1   1 输入多组测试数据。 每组测试数据第一行输入,n 和 W ,接下来有n行,每行输

dxx_111的博客 954
上一篇: Baby's Blocks Gym - 101518D 组合排列
下一篇: Codeforces Round #447 (Div. 2) D 预处理+归并+ 二分
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值