poj1170 状态压缩背包

POJ-1170.rar_poj POJ 1170 动态规划。欢迎各种交流讨论。 立即下载

看到题目就想到5维背包,不过想了想状态转移要5层循环,写起来相当痛苦。也没想到6进制,看了一下讨论说用六进制,想了一下似乎还真是这样,状态转换好写起来就简单,直接背包就可以。


ACcode:


#include<cstdio>
#include<cstring>

const int NS=6;
const int MAX=7776;
const int INF=1<<30;

struct offer
{
    int st,p;
    void inpt(int xa,int xb){
        st=xa,p=xb;
    }
}s[110];

int n,top,ans;
int x,y,z,m,num;
int p6[NS];
int h[1000];
int dp[MAX];
int bit[MAX][5];

void prepare()
{
    p6[0]=1;
    for (int i=1;i<NS;i++)
    p6[i]=p6[i-1]*6;
    for (int i=0;i<MAX;i++)
    for (int t=i,j=0;j<5;j++)
    bit[i][j]=t%6,t/=6;
}

int judge(int s1,int s2)
{
    for (int i=0;i<5;i++)
    if (bit[s2][i]>bit[s1][i]) return 0;
    return 1;
}

int Min(int xa,int xb)
{
    return xa<xb?xa:xb;
}

int main()
{
    prepare();
    while (~scanf("%d",&n))
    {
        top=ans=dp[0]=0;
        for (int i=0;i<n;i++)
        {
            scanf("%d%d%d",&x,&y,&z);
            ans+=y*p6[i],h[x]=i;
            s[top++].inpt(p6[i],z);
        }
        scanf("%d",&m);
        for (int i=0;i<m;i++)
        {
            scanf("%d",&num),z=0;
            for (int j=0;j<num;j++)
            scanf("%d%d",&x,&y),z+=p6[h[x]]*y;
            scanf("%d",&x); s[top++].inpt(z,x);
        }
        for (int i=1;i<=ans;i++)
        {
            dp[i]=INF;
            for (int j=0;j<top;j++)
            if (judge(i,s[j].st))
            dp[i]=Min(dp[i],dp[i-s[j].st]+s[j].p);
        }
        printf("%d\n",dp[ans]);
    }
    return 0;
}

17、扩展景深成像的瞳孔函数工程技术解析 本文详细解析了扩展景深成像的关键技术,包括基于焦距堆栈的数字处理方法、立方相位掩模的光学设计、对数非球面透镜的应用以及旋转点扩散函数的深度编码功能。通过实验验证和实际应用分析,展示了这些技术在显微镜成像、工业检测和医疗影像中的广泛用途及优势。同时探讨了未来发展方向,如智能算法优化、新型光学材料和多模态成像技术,为相关领域的技术创新提供了参考。 阅读详情

相关推荐

Python逆向实战:突破PDD长连接抓包的技术解析

本文详细解析了如何通过Python逆向技术突破PDD长连接抓包的难点,包括分析PDD的网络机制、绕过SSL证书验证以及完整抓包实战流程。文章重点介绍了使用Frida和VAXposed工具解决长连接和SSL Pinning问题,并提供了Python代码示例和数据分析方案,帮助开发者高效抓取PDD数据。

weixin_28678151的博客 1224

poj1170

poj1170 题意:给很多件商品,给出组合购买和单独购买的价格,要求求出购买指定种类指定数量的各类商品的最小花费。 思路:典型的背包问题,可以使用记忆化搜索的思路来写,比用for循环写简单得多。注意,方案不存在的话,返回 花费为无穷大。#include<cstdio> #include<iostream> #include<cstring> #include<map> #include<set

neuike的博客 682

R语言分布式滞后非线性模型DLNM实战:空气污染与健康数据的动态效应可视化与政策启示

本文详细介绍了R语言中分布式滞后非线性模型(DLNM)的应用,特别关注空气污染与健康数据的动态效应可视化。通过dlnm包实现PM2.5等污染物的滞后效应分析,提供从数据预处理、模型构建到结果可视化的完整流程,并探讨了其在公共卫生政策制定中的实际应用价值。

weixin_29079643的博客 514

poj 1170状压dp

题目链接:https://vjudge.net/problem/POJ-1170 题意:输入n,表示有那种物品,接下来n行,每行a,b,c三个变量,a表示物品种类,b是物品数量,c代表物品的单价。接下来一个数字m,表示有m个套餐,接下来m行,每行一个数字k,表示有k对数字,后面接k对数字,分别是物品种类和物品数量,最后一个value代表这个套餐的价格(套餐价格一定比单独买这些东西的价格低)。现在...

weixin_30834019的博客 237

SSTI模板注入及绕过姿势(基于Python-Jinja2)

http://xmctf.top:8962/?name={{%22%22[%22\x5f\x5fclass\x5f\x5f%22]["\x5F\x5Fbase\x5F\x5F"]["\x5F\x5Fsubclasses\x5F\x5F"]()[233]["\x5F\x5Finit\x5F\x5F"]["\x5F\x5Fglobals\x5F\x5F"]["\x5F\x5Fbuiltins\x5F\x5F"]['eval']("\x5F\x5Fimport\x5F\x5F('os'))")}}

Y4tacker的博客 1万+

xhs私信协议分析

之前分析过xhs的shield算法,今天再聊聊xhs的私信,文章仅供学习参考研究交流,如有侵权请联系删帖。经过抓包分析发现私信接口并不是走的http协议,而是socket协议。而要获取socket包则需要使用wireshark软件1、protobuf的包体中的序号7,多次验证后发现文字信息的需要需要固定成12、protobuf的包体中的序号12,多次验证后发现文字信息的需要需要固定成1后续有时间的话,再研究一下视频和图片格式的私信协议,这次就分析到这里吧。

佛系更新... 3486

poj1170 状态压缩

因为每种物品最多五个,总共五种物品,所以可以将状态存为6进制的整数。 先对每一种special offer进行dp, 转移方程为  dp[ i + offfer[k].stt ] = MIN( dp[ i + offer[k].stt , dp[ i ] + offer[k].prc ), 当然状态转移前,要进行判断是否可转移, 若当前状态下 的某种物品数量加上当前的special offer

1381

Tessent Atpg系列 第七章 Running ATPG Patterns -- 如何书写proc文件

本篇文章是记录Tessent scan ATPG系列 本文并非是对userguide的完全翻译,而是自己对userguide的理解,此外,有部分比较深入的内容可能需要后续实验验证。本系列并不对tessent scan做过多描述。 请勿随意转载: 优快云 博主: ciscomonkey一种是在使用tessent scan之后使用ATPG 另一种是使用第三方工具,如snps的DFTC之后使用tessent的ATPG。 这里我们仅仅介绍without tessent scan之后tessent ATPG:对于t

ciscomonkey的博客 7695

poj1170(状态压缩dp)

链接:点击打开链接 题意:给定一个含有n种商品的订单,给出订单内每个物品的初始价格和需要购买的数量,再给出m种套餐,这些组合会得到便宜的价格,最后怎样搭配使得总价格最少。 代码: #include #include #include #include #include using namespace std; const int INF=0x3f3f3f3f; int

stay_accept的专栏 1193

9.13华为OD机试真题 新系统 - 手机桌面整理 (Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【手机桌面整理】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【 手机桌面整理】多语言题解。

qq_45776114的博客 642

新能源汽车电池及充电原理详解

本文详细介绍了新能源汽车的电池包结构、铅酸电池充放电原理,以及交流和直流充电的工作原理和优缺点。内容涵盖电池串联并联原因、充电设备如车载充电机、交流充电桩和直流充电桩的介绍,以及不同充电模式的连接方式。通过对充电过程的深入探讨,有助于读者理解新能源汽车的充电技术。

让你爱上电路设计 4527

POJ 1170 Shopping Offers

题目链接:http://poj.org/problem?id=1170 题意:有k种物品,每种物品对应若干标号,给出了这k种物品的标号和它们对应的数量和单价。有s种价格优惠方式,每种方式告诉了一些标号和数量以及它们的优惠价格。求恰好购买k种物品及其对应的数量所需的最小费用。 分析:离散化+状态压缩dp+背包思想,因为只有5种物品,每种物品的数量也不超过5,所以想到了状态压缩dp,用六进制,有5...

zhlbjtu2016的博客 356

【二.图像处理核心技术】【5.形态学操作:腐蚀/膨胀/开闭运算】

想象一下,你拍了一张布满雪花点的老照片,或者扫描了字迹断裂的文档,这时候形态学操作就是你的像素整形师!它们能让模糊的边界变清晰,把断裂的笔画连起来,甚至从X光片里揪出癌细胞。今天我们要聊的,是计算机视觉界的"广场舞双雄"——腐蚀和膨胀。这俩操作就像给像素点们请了个健身教练,要么集体减肥(腐蚀),要么组团增肌(膨胀)。下次当你用美颜相机时,不妨会心一笑——这看似魔法的背后,正是形态学在默默耕耘。腐蚀的规则很简单:如果一个像素点周围的邻居不全白,它就"狗带"(变黑)。:先用砂纸打磨(腐蚀),再喷漆填补(膨胀)

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 426

【POJ 1170】 Shopping Offers [动态规划 状态压缩 背包][离散化]

POJ - 1170 Shopping Offers 放假打题 sufu 看完题我是懵比的 这.... emmmmm 瓜想了半个小时之后我选择狗带 然后点开链接 状压+dp!!!!哦!!!!!!巧妙!!!! 就先把目标状态还有各个优惠的状态处理好 然后就是一个完全背包处理用优惠 1 #include<bits/stdc++.h> 2 using namespa...

weixin_30781631的博客 159

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

POJ-1170 Shopping Offers 状态压缩加背包

POJ-1170 Shopping Offers 状态压缩加背包

NNDXNM的专栏 719

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

POJ 1170 Shopping Offers 状态压缩dp+完全背包

题意: 有n种物品需要你去购买,每种物品购买num【i】个。(1 ) 当然提供s种优惠:购买商家规定的组合商品的价格为 s【i】 2 7 3 2 8 2 5 2 1 7 3 5 2 7 1 8 2 10 如例子中有2种优惠方案  i)类型7的商品买3个只要5花费 ii)类型7的商品买1个同时类型8的商品买2个只要10花费 如何购买所需的物品且花费最小?///不能多买 分析:

MY Blog 791

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

2021.9.25总结

大致看完了背包九讲(附录没看,第九讲不同问法打算等遇到类似的题之后再看,这样印象会更深刻),近期做书上的练习题,发现自己以前做的现在又不会了Orz,可能是因为之前就没好好做,印象不深刻,而且对自己得过且过,以后刷题要按专题刷,这样记住的知识才会更牢固。 poj1015 这道题自己想的就是按照题目的意思来,用绝对值来比较,但怎么也凑不对数,代码也写了一大堆,一看就不想能过的代码,最后在网上看的方法,用辩控差作为体积,dp[m][k]表示m个人,辩控差为k能获得的最大的辩控和,也没有用绝对值,而是把...

weixin_52621204的博客 145

状态压缩DP 题目目录

POJ 1170IOI95的题目了,比较简单。题目大意是说要买一些商品,而商店提供了一些组合购买的打折方案,你不能多买东西,问怎样购买最省。怎样表示状态呢?其实很自然想到把当前你要买哪些东西,并且它们分别要买多少作为状态,那么方程就写成:F(S)=min[for each i in 合法购买方案](F(S’)+cost(i)]现在的问题就成了如何在实现的时候来表示S。由于只买5种不同商品,每种的数量最多为5件,于是考虑用6进制表示状态,其中权位及表示商品种类,系数就是商品数量,然后再把这个数压缩成一个10进

silence 720

Poj 1170 Shopping Offers (DP_状态压缩DP)

题目链接:http://poj.org/problem?id=1170 题目大意:给定一个订单n种商品,每种商品有个初始价格pri,初始数量numi,再给定m种组合,这些组合会得到便宜的价格。最后问怎么搭配使得总价格最少。 解题思路:搜状态压缩的题目时搜到关于这题的解题报告,名曰《经典状态压缩DPxxx》,然后我很认真地做了这题,还想好好吸收下,没想到是水题,囧。

1307

POJ 1170 Shopping Offers 状压DP+完全背包

Shopping Offers POJ - 1170 商店中每个商品都有相应的价值,当一些商品形成组合时,总价格会变低。给定要买的商品及数量,问怎么组合总价最低? 状压DP+完全背包 代码如下: #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #de...

wineandchord 252

POJ 1170 Shopping Offers非状态压缩做法

Shopping Offers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5659 Accepted: 2361 Description In a shop each kind of product has a price. For example, the price of a flower is 2 ICU...

日拱一卒,功不唐捐 2712

POJ1170-Shopping Offers(状态压缩)

In a shop each kind of product has a price. For example, the price of a flower is 2 ICU (Informatics Currency Units) and the price of a vase is 5 ICU. In order to attract more customers, the shop int...

weixin_43357583的博客 400

poj1170 Shopping Offers【状压+背包】

传送门:http://poj.org/problem?id=1170 Description In a shop each kind of product has a price. For example, the price of a flower is 2 ICU (Informatics Currency Units) and the price of a vase is 5 ICU. ...

blue_kid的博客 360

poj 1170 多重背包

还是看了这位大牛的 http://www.chenyajun.com/2010/05/30/4597 题目大意:其实就是个全背包问题~~动态规划 给出每种物品的单价,和个数,然后给出这些物品的组合的优惠策略,要你求出购买这些物品的最小消费。 《编程之美》里有个买书的问题,跟这题很像。 这题难就难在动态规划的维度过多,比如就有3个品种的物品,有种打折策略 dp[i][j][k]表示物品0

涛涛不解 844

POJ1170 Shopping Offers(五维背包or状压dp)

Description In a shop each kind of product has a price. For example, the price of a flower is 2 ICU (Informatics Currency Units) and the price of a vase is 5 ICU. In order to attract more customer...

邵光亮的博客 872

POJ1170-DP

Shopping Offers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5637 Accepted: 2351 Description In a shop each kind of product has a price. For example, the price of a flower is 2 ICU (In...

z1164754004z的博客 240
上一篇: hdu4332 状态压缩+矩阵快速幂
下一篇: poj1691 状态压缩~最优值
丿Smile灬晨星
博客等级 码龄14年 46粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值