背包 要么 BFS

意大利是说给你几个基本的货币,组成 1~100 所有货币,使用基本上的货币量以最小的。

出口 用法概率。和最大使用量。

能够BFS 有可能 。

只是记得数组开大点。 可能会出现 100 = 99+99 -98 的情况。

背包是先做一个全然背包,求得最少可能由多少相加。

然后做一个 01背包,看是否能被 减。

背包:

#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<stack>
#include<iostream>
#include<list>
#include<set>
#include<cmath>
#define INF 0x7fffffff
#define eps 1e-6
#define LL long long
using namespace std;
int dp[10002]; int value[7]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int m=10001;
for(int i=0; i<6; i++)
scanf("%d",&value[i]);
for(int i=1; i<m; i++)
dp[i]=10001;
dp[0]=0;
for(int i=0; i<6; i++)
{
for(int j=value[i]; j+value[i]<m; j++)
{
dp[j]=min(dp[j-value[i]]+1,dp[j]);
// printf("%d :%d==\n",j,dp[j]);
} } for(int i=0; i<6; i++)
{
for(int j=m-value[i]; j>0; j--)
{
dp[j]=min(dp[j+value[i]]+1,dp[j]);
// printf("%d :%d==\n",j,dp[j]);
} } double ans=0;
int maxn=0;
for(int i=1; i<=100; i++)
{
// printf("%d : %d\n",i,dp[i]);
ans+=dp[i];
maxn=max(maxn,dp[i]);
}
printf("%.2f %d\n",ans/100.0,maxn);
}
}

BFS:

#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<stack>
#include<iostream>
#include<list>
#include<set>
#include<cmath>
#define INF 0x7fffffff
#define eps 1e-6
#define LL long long
using namespace std;
struct lx
{
int ans,lv;
};
int ans[2051];
int value[7];
void bfs()
{
queue<lx>q;
bool vis[2051];
memset(vis,0,sizeof(vis));
lx now,tmp;
tmp.ans=0,tmp.lv=0;
q.push(tmp);
vis[0]=1;
while(!q.empty())
{
tmp=q.front();q.pop();
ans[tmp.ans]=tmp.lv;
for(int i=0;i<6;i++)
{
int num1=tmp.ans+value[i];
int num2=tmp.ans-value[i];
now.lv=tmp.lv+1;
if(!vis[num1]&&num1>0&&num1<2000)
{
vis[num1]=1;
now.ans=num1;
q.push(now);
}
if(!vis[num2]&&num2>0&&num2<2000)
{
vis[num2]=1;
now.ans=num2;
q.push(now);
}
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
for(int i=0; i<6; i++)
scanf("%d",&value[i]); bfs();
double an=0;
int maxn=0;
for(int i=1;i<=100;i++)
{
an+=ans[i];
maxn=max(maxn,ans[i]);
// printf("%d : %d\n",i,ans[i]);
}
printf("%.2f %d\n",an/100,maxn);
}
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

POJ 1252 Euro Efficiency的更多相关文章

  1. POJ 1252 Euro Efficiency(完全背包, 找零问题, 二次DP)

    Description On January 1st 2002, The Netherlands, and several other European countries abandoned the ...

  2. POJ 1252 Euro Efficiency(最短路 完全背包)

    题意: 给定6个硬币的币值, 问组成1~100这些数最少要几个硬币, 比如给定1 2 5 10 20 50, 组成40 可以是 20 + 20, 也可以是 50 -10, 最少硬币是2个. 分析: 这 ...

  3. POJ 1252 Euro Efficiency ( 完全背包变形 && 物品重量为负 )

    题意 : 给出 6 枚硬币的面值,然后要求求出对于 1~100 要用所给硬币凑出这 100 个面值且要求所用的硬币数都是最少的,问你最后使用硬币的平均个数以及对于单个面值所用硬币的最大数. 分析 :  ...

  4. POJ Euro Efficiency 1252

    Euro Efficiency Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4109   Accepted: 1754 D ...

  5. Euro Efficiency(完全背包)

    Euro Efficiency Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) Tot ...

  6. POJ 1252 DP

    题意:给你6个数.让你求出1~100范围内的数 最优情况下由这六个数加减几步得到. 输出平均值和最大值. 思路: 我就随便写了写,,,感觉自己的思路完全不对. 但是交上去 AC了!!! 我先当减法 不 ...

  7. POJ 3260 The Fewest Coins(多重背包+全然背包)

    POJ 3260 The Fewest Coins(多重背包+全然背包) http://poj.org/problem?id=3260 题意: John要去买价值为m的商品. 如今的货币系统有n种货币 ...

  8. HOJ题目分类

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  9. (转)POJ题目分类

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

随机推荐

  1. Android开发ListView使用OnScrollListener实现分页加载数据

    上篇博文和大家分享了下拉刷新,这是一个用户体验很好的操作方式.新浪微薄就是使用这样的方式的典型. 还有个问题,当用户从网络上读取微薄的时候.假设一下子所有载入用户未读的微薄这将耗费比較长的时间,造成不 ...

  2. hihocoder第41周 骨牌覆盖(矩阵快速幂)

    由于棋盘只有两行,所以如果第i列的骨牌竖着放,那么就转移为第1列到第i-1列骨牌有多少种摆法 如果第一行第i列骨牌横着放,那么第二行第i列也要横着放,那么就转移为了第1列到第i-2列骨牌有多少种方法 ...

  3. BI事实上的和维表定义

    一个典型的例子是,逻辑业务相比立方体,产品尺寸.时间维度.位置尺寸,分别作为不同的轴.轴的交点是一个详细的事实.这一事实表是多维度的交叉点的一个表.维表是事实的分析的一种形式. 首先介绍下数据库结构中 ...

  4. 游戏碰撞OBB算法(java代码)

    业务需求      游戏2D型号有圆形和矩形,推断说白了就是碰撞检测 :      1.圆形跟圆形是否有相交      2.圆形跟矩形是否相交       3.矩形和矩形是否相交           ...

  5. centos7关闭防火墙(转)

    直接命令:service firewalld stop 1. Disable Firewalld Service. [root@rhel-centos7-tejas-barot-linux ~]# s ...

  6. VMware装ubuntu 进不去图形界面, 卡在Installing VMware Tools

    1.按Ctrl +C结束,进入命令行 2.ubuntu login:_ 依次输入: 1)你的用户名:输入自己的! 2)你的密码:输入自己的! 3)获取root权限:sudo su 输密码 4)/etc ...

  7. Directx11学习笔记【十七】纹理贴图

    本文由zhangbaochong原创,转载请注明出处http://www.cnblogs.com/zhangbaochong/p/5596180.html 在之前的例子中,我们实现了光照和材质使得场景 ...

  8. Codeforces 385B Bear and Strings

    题目链接:Codeforces 385B Bear and Strings 记录下每一个bear的起始位置和终止位置,然后扫一遍记录下来的结构体数组,过程中用一个变量记录上一个扫过的位置,用来去重. ...

  9. 原生javascript与jquery 的比较

    JavaScript的优点和缺点: 优点: 性能:由于JavaScript运行在客户端,节省了web服务器的请求时间和带宽 轻量级的脚本语言,比较容易学习 运行在用户机器上,运行结果和处理相对比较快. ...

  10. Java equals的一个坑

    public class StringEqualsObject { public static void main(String[] args) { String name="Tom&quo ...