uva 10306 简单DP
题意:
给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相关推荐
- UVA 10118 简单DP
题意 四堆糖果,有一个容量为5的篮子,每次可以从糖果堆顶端取一个糖果,若篮子中恰好有相同颜色的糖果,则将该糖果装入口袋中.问最多可以取多少个糖果. 题解 设dp[i][j][k][m]为四堆分别取了i ...
- UVA 10306 e-Coins(全然背包: 二维限制条件)
UVA 10306 e-Coins(全然背包: 二维限制条件) http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Item ...
- Codeforces 41D Pawn 简单dp
题目链接:点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵,每一个位置由 0-9的一个整数表示 问: 从最后一行開始向上走到第一行使得路径上的和 % (k+1) == 0 每一个格子仅仅 ...
- hdu2067 简单dp或者记忆化搜索
题意: 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- POJ1088:滑雪(简单dp)
题目链接: http://poj.org/problem?id=1088 题目要求: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.求可以滑落的最长长度. 题目解析: 首先要先排一 ...
- 第三讲 数学与简单DP【完结】
目录 1205. 买不到的数目 [数学结论题] 1211. 蚂蚁感冒 [模拟 / 推理] 1216. 饮料换购 [简单 / 模拟] 2. 01背包问题 [板子题] 1015. 摘花生 [简单DP] 8 ...
- hdu 2881(简单dp)
题意:n*n的矩阵,里面有m个格子是有任务要去完成的,t,x,y表示要在第t秒到达(x,y)的格子完成任务,问你最多可以完成多少 解题思路:简单dp,将时间排个序后就是LIS #include< ...
- P1005 矩阵取数游戏(__int128模板/简单dp)
转跳P1005 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 a_{i,j}a i,j 均为非负整数.游戏规则如下: 每次取数时 ...
- 最少拦截系统,简单dp,(学长说这是贪心?!。。。。。。也是醉了)
description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天, ...
最新文章
- 与现代传感器的接口:轮询ADC驱动程序
- MPLS学习一些问题(一)
- 关于机器学习的领悟与反思
- Cortex - M3 位带别名首地址的计算方法
- asp.net core监控—引入Prometheus(一)
- 半路出家学php可以吗,PHP半路出家(1)_PHP教程
- Python处理文本文件案例一则
- Python 类的特殊成员方法
- 项目启动时,出现了Consider defining a bean of type ‘xxx’ in your configuration 问题。
- 系统架构设计师考试题库笔记重点3:嵌入式系统设计
- 1、 域名系统的主要功能是什么?互联网的域名结构是怎样的?域名系统中的本地域名服务器、根域名服务器、顶级域名服务器以及权限域名服务器有何区别?2、 假定要从已知的URL获得一个万维网文档。若该万维网服
- FR-报表应用-分组报表-动态显示N个分组
- 引用提高 提高 啦啦啦啦啦啦啦啦啦啦了
- 数字信号处理之数字混频
- python一只青蛙一次可以_Python面试题系列之11 变态青蛙跳
- 两台电脑之间如何使用共享文件夹来实现共享文件
- Facebook推出附近好友功能 可用手机查附近好友
- python解椭圆方程的例题_如何用python从3个点求椭圆方程
- Maplab系列15:Inverted File
- DBeaver:开源、跨平台、强大的数据库管理工具