题意:
有n种物品,每种物品有两种价值x和y,并且每种物品的个数不限,求(x1 + x2 + …)^2 + (y1 + y2 + …) ^2 == S ^ 2

思路:
因为每种物品任意个,所以是二维完全背包。dp[i][j]中i表示在x之和,j表示y之和的最少物品数量。如果存在x1 + x2 + …)^2 + (y1 + y2 + …) ^2 == S ^ 2,输出dp[i][j].
初始化:dp[0][0] = 0

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#define inf 0x3f3f3f3fusing namespace std;
int dp[305][305],x[45],y[45];int main()
{ios::sync_with_stdio(false);int T,m,s;scanf("%d",&T);for(int k=1;k<=T;k++){memset(dp,0x3f,sizeof(dp));scanf("%d%d",&m,&s);for(int i=1;i<=m;i++){scanf("%d%d",&x[i],&y[i]);}dp[0][0]=0;for(int l=1;l<=m;l++){for(int i=x[l];i<=s;i++){for(int j=y[l];j<=s;j++){dp[i][j]=min(dp[i][j],dp[i-x[l]][j-y[l]]+1);}}}int res=inf;for(int i=0;i<=s;i++){for(int j=0;j<=s;j++){if(i*i+j*j==s*s){res=min(res,dp[i][j]);}}}if(res==inf)printf("not possible\n");elseprintf("%d\n",res);}return 0;
}

UVA 10306 e-Coins(二维完全背包)相关推荐

  1. UVA 10306 e-Coins(二维完全背包)

    题意:e-coin有两个价值x,y,现在给你一个价值n,给你几种e-coin,问你能否用最小的e-coin数得到所求的价值n*n=(x1+x2+...xn)^2+(y1+y2+...yn)^2. 思路 ...

  2. 背包模型dp2之二维费用背包

    二维费用背包 状态表示:f[i][j][k]所有只从前i个物体中选,并且总体积不超过j,总重量不超过k的选法状态表示:f[i][j][k]所有只从前i个物体中选,并且总体积不超过j,总重量不超过k的选 ...

  3. HDU 2159 FATE【二维完全背包】

    题目链接:https://vjudge.net/problem/HDU-2159 FATE                                                       ...

  4. 【洛谷 - P1507 】NASA的食物计划(二维费用背包,dp)

    题干: 题目背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安全技术问题一直大伤脑筋,因此在各方压力下终止了航天飞机的历史,但是此类事情会不会在以后发生,谁也无法保证,在遇到这类航天问题时, ...

  5. UVA10306 - e-Coins(二维完全背包)

    题意:有n个物品,每个物品有两种价值x, y,每个物品的个数不限,求出(x1 + x2 + ...)^2 + (y1 + y2 + ...) ^2 == S ^ 2 思路:二维完全背包,因为物品个数不 ...

  6. 一本通 1271:【例9.15】潜水员(二维费用背包)

    [题目描述] 潜水员为了潜水要使用特殊的装备.他有一个带2种气体的气缸:一个为氧气,一个为氮气.让潜水员下潜的深度需要各种的数量的氧和氮.潜水员有一定数量的气缸.每个气缸都有重量和气体容量.潜水员为了 ...

  7. 【python】一篇讲透背包问题(01背包 完全背包 多重背包 二维费用背包)

    面对背包问题,有一个很重要的方程式:状态转移方程式 所以每一种背包问题我都会给出状态转移方程式 #01背包 什么是01背包型问题? 先给大家感受一下01背包型问题: 给定n种物品和一背包.物品i的重量 ...

  8. AcWing 1020. 潜水员(二维费用背包)

    一.问题 二.思路 这道题其实很容易看出是一个二维费用背包的变形,如果我们将氧气看作体积,将氮气看作价值的话,这道题就变成了从 i i i个物品里面选,体积至少为 m m m,价值至少为 n n n的 ...

  9. 一和零(二维01背包)

    给你一个二进制字符串数组 strs 和两个整数 m 和 n . 请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 . 如果 x 的所有元素也是 y 的元素,集 ...

最新文章

  1. EASYPHP安装完Apache工作正常后,配置MYSQL的问题
  2. 2016.01.19 UITextField
  3. 周四话分析:数据驱动,如何塑造下一个“教育领头羊”?
  4. ✅书单推荐の自我管理篇✅
  5. 在python3中print作为函数存在_Python3中的print函数
  6. C++ Sets MultiSets
  7. Java使用IntelliJ IDEA创建控制台程序并通过JDBC连接到数据库
  8. 学者CIO邓遵红:让人文梦想照进职业现实
  9. Shiro自定义Token
  10. html-QQ登陆界面
  11. 远程登录不上服务器,服务器远程登录不上怎么办
  12. 人工智能基础知识入门
  13. 芯动科技简答题(数字后端)
  14. linux用户态内核态通信,内核态与用户态通信 之 sockopt
  15. 安卓模拟器安装教程_无限多开仙境传说RO!第一安卓模拟器BlueStacks蓝叠安卓模拟器多开教程...
  16. 移动端天气系统--【下雨】效果之【雨滴】的实现和分析
  17. 在钉钉如何愉快地给老师点很多赞
  18. python判断用户名密码是否正确_python实现用户名密码校验
  19. 小狐狸VF的一些命令及技巧
  20. DAU和MAU的分析

热门文章

  1. 气传导和骨传导耳机哪个好?简单科普这两种蓝牙耳机
  2. echarts 柱状图,分别给每个柱子设置不同的颜色
  3. Excel冻结多行多列
  4. Gstore官网学习六:安装和部署workbench(自带填坑)
  5. html扩展调用qq邮箱
  6. 微信小程序如何实现(点击发送弹幕)
  7. 阿里二面:Redis有几种集群方案?我答了4种
  8. Apache原理详解
  9. 【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
  10. 【Android SDM660源码分析】- 02 - UEFI XBL QcomChargerApp充电流程代码分析