题意:

给n种硬币和一个面值s。

每种硬币有两种价值,并且有无限个,求能满足第一种价值i * i + j * j = s * s的最少硬币数。

解析:

先dp出每种情况下i,j用的最少银币,然后暴力搞一下找出和规则的就好,和给俩棒子找最小差距那题有点像。

详见代码。

代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <stack>
#include <vector>
#include <queue>
#include <map>#define LL long longusing namespace std;
const int maxn = 300 + 10;
const int inf = 0x3f3f3f3f;
const double eps = 1e-8;
const double pi = 4 * atan(1.0);
const double ee = exp(1.0);int w1[maxn], w2[maxn];
int dp[maxn][maxn];int main()
{
#ifdef LOCALfreopen("in.txt", "r", stdin);
#endif // LOCALint ncase;scanf("%d", &ncase);while (ncase--){int n, s;scanf("%d%d", &n, &s);for (int i = 0; i <= s; i++){for (int j = 0; j <= s; j++){dp[i][j] = inf;}}for (int i = 0; i < n; i++){scanf("%d%d", &w1[i], &w2[i]);dp[w1[i]][w2[i]] = 1;}for (int i = 0; i < n; i++){for (int j = w1[i]; j <= s; j++){for (int k = w2[i]; k <= s; k++){dp[j][k] = min(dp[j][k], dp[j - w1[i]][k - w2[i]] + 1);}}}int ans = inf;for (int i = 0; i <= s; i++){for (int j = 0; j <= s; j++){if (i * i + j * j == s * s){ans = min(dp[i][j], ans);}}}if (ans == inf)printf("not possible\n");elseprintf("%d\n", ans);}return 0;
}

uva 10306 简单DP相关推荐

  1. UVA 10118 简单DP

    题意 四堆糖果,有一个容量为5的篮子,每次可以从糖果堆顶端取一个糖果,若篮子中恰好有相同颜色的糖果,则将该糖果装入口袋中.问最多可以取多少个糖果. 题解 设dp[i][j][k][m]为四堆分别取了i ...

  2. UVA 10306 e-Coins(全然背包: 二维限制条件)

    UVA 10306 e-Coins(全然背包: 二维限制条件) http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Item ...

  3. Codeforces 41D Pawn 简单dp

    题目链接:点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵,每一个位置由 0-9的一个整数表示 问: 从最后一行開始向上走到第一行使得路径上的和 % (k+1) == 0 每一个格子仅仅 ...

  4. hdu2067 简单dp或者记忆化搜索

    题意: 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. POJ1088:滑雪(简单dp)

    题目链接:  http://poj.org/problem?id=1088 题目要求: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.求可以滑落的最长长度. 题目解析: 首先要先排一 ...

  6. 第三讲 数学与简单DP【完结】

    目录 1205. 买不到的数目 [数学结论题] 1211. 蚂蚁感冒 [模拟 / 推理] 1216. 饮料换购 [简单 / 模拟] 2. 01背包问题 [板子题] 1015. 摘花生 [简单DP] 8 ...

  7. hdu 2881(简单dp)

     题意:n*n的矩阵,里面有m个格子是有任务要去完成的,t,x,y表示要在第t秒到达(x,y)的格子完成任务,问你最多可以完成多少 解题思路:简单dp,将时间排个序后就是LIS #include< ...

  8. P1005 矩阵取数游戏(__int128模板/简单dp)

    转跳P1005 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 a_{i,j}a i,j ​ 均为非负整数.游戏规则如下: 每次取数时 ...

  9. 最少拦截系统,简单dp,(学长说这是贪心?!。。。。。。也是醉了)

     description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天, ...

最新文章

  1. 与现代传感器的接口:轮询ADC驱动程序
  2. MPLS学习一些问题(一)
  3. 关于机器学习的领悟与反思
  4. Cortex - M3 位带别名首地址的计算方法
  5. asp.net core监控—引入Prometheus(一)
  6. 半路出家学php可以吗,PHP半路出家(1)_PHP教程
  7. Python处理文本文件案例一则
  8. Python 类的特殊成员方法
  9. 项目启动时,出现了Consider defining a bean of type ‘xxx’ in your configuration 问题。
  10. 系统架构设计师考试题库笔记重点3:嵌入式系统设计
  11. 1、 域名系统的主要功能是什么?互联网的域名结构是怎样的?域名系统中的本地域名服务器、根域名服务器、顶级域名服务器以及权限域名服务器有何区别?2、 假定要从已知的URL获得一个万维网文档。若该万维网服
  12. FR-报表应用-分组报表-动态显示N个分组
  13. 引用提高 提高 啦啦啦啦啦啦啦啦啦啦了
  14. 数字信号处理之数字混频
  15. python一只青蛙一次可以_Python面试题系列之11 变态青蛙跳
  16. 两台电脑之间如何使用共享文件夹来实现共享文件
  17. Facebook推出附近好友功能 可用手机查附近好友
  18. python解椭圆方程的例题_如何用python从3个点求椭圆方程
  19. Maplab系列15:Inverted File
  20. DBeaver:开源、跨平台、强大的数据库管理工具

热门文章

  1. 想要下载的编程软件太难找?部分软件官网介绍
  2. cf 1677A - Tokitsukaze and Strange Inequality
  3. HP-EVA4400故障导致的oracle数据库丢失的恢复过程
  4. RL串联等效转换为RL并联的方法及其仿真
  5. Electron 去掉标题栏并设定可拖动
  6. css style 命名,CSS_CSS样式命名规范,命名一直是个让我头痛的问题 - phpStudy
  7. 设置div的内容及子标签向右对齐
  8. 为什么要学习软件质量保证与测试这门课?
  9. Spring batch批量处理框架最佳实践
  10. 无光照渲染shader-二次元