USACO - 3.1.6 - Stamps
http://qingtangpaomian.iteye.com/blog/1635988
INPUT FORMAT:
OUTPUT FORMAT:
3. SAMPLE:
package session_3_1_6;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;public class stamps {public static void main(String[] args) throws Exception {
// Scanner in = new Scanner(System.in);
// PrintWriter pw = new PrintWriter(System.out);Scanner in = new Scanner(new BufferedReader(new FileReader("stamps.in")));PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("stamps.out")));int K = in.nextInt();int N = in.nextInt();int[] needs = new int[2000000]; //动态规划用数组 , needs[i]表示产生面值为i的邮资所用的最少的邮票数量。int[] stamps = new int[N]; //输入提供的各种邮票的面值Arrays.fill(needs, Integer.MAX_VALUE);for (int j=0;j<N;j++){stamps[j] = in.nextInt();}int i = 0;needs[0] = 0;for (;needs[i]<=K;){i++;for (int j=0;j<stamps.length;j++){if (stamps[j]<=i){needs[i] = min(needs[i] ,needs[i-stamps[j]]+1); //状态转移方程}}}pw.println(i-1);pw.close();}public static int min(int a , int b){return a<b?a:b;}}
下面是上面题的升级版
http://sfiction.blog.163.com/blog/static/1994040102012520113738298/
给定一个信封,最多只允许粘贴N张邮票,计算在给定K种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大max,使得1-max之间的每一个邮资值都能得到。
例如,N=3,K=2,如果面值分别为1分、4分,则在l分-6分之间的每一个邮资值都能得到(当然还有8分、9分和12分):如果面值分别为1分、3 分,则在1分-7分之间的每一个邮资值都能得到。可以验证当N=3,K=2时,7分就是可以得到连续的邮资最大值,所以max=7,面值分别为l分、3 分。
[数据范围]
100%的数据,N + K <= 14
这道题真是混蛋……开始是动态规划没写全WA了两次,修正以后无数2B错误连WA三次,唯一的欣慰就是最优解排在第七。
DFS+DP。DFS枚举所有可能的构造方式,用背包解决0..M的面值用当前邮票凑出的最小代价。
/*
ID: Sfiction
OJ: RQNOJ
PROB: 112
*/
#include <stdio.h>
#define M 500
int a[20],f[M],ans[20];
int N,K,MAX,g=1<<29;
void DFS(int k,int s)
{int i,j,t[M];if (k==K){if (s>=MAX)for (MAX=s,i=1;i<=K;i++) ans[i]=a[i];return;}for (i=0;i<M;i++) t[i]=f[i];for (i=a[k]+1;i<=s;i++){for (j=0;j<M-i;j++)if (f[j]+1<f[j+i]) f[j+i]=f[j]+1;for (j=s;f[j]<=N;j++);a[k+1]=i;DFS(k+1,j);for (j=0;j<M;j++) f[j]=t[j];}
}
int main()
{int i;scanf("%d%d",&N,&K);a[1]=1;for (i=1;i<=N;i++) f[i]=i;for (;i<M;i++) f[i]=g;DFS(1,N+1);for (i=1;i<=K;i++) printf("%d ",ans[i]);printf("\nMAX=%d",MAX-1);return 0;
}
USACO - 3.1.6 - Stamps相关推荐
- 学校作业-Usaco DP水题
好吧,因为USACO挂掉了,所以我写的所有代码都不保证正确性[好的,这么简单的题,再不写对,你就可以滚粗了! 第一题是USACO 2.2.2 ★Subset Sums 集合 对于从 1 到 N 的连 ...
- usaco ★Stamps 邮票
★Stamps 邮票 已知一个 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K -- 表示信封上能够贴 K 张邮 票.计算从 1 到 M 的最大连续可贴出的邮资. 例如,假设有 1 分和 ...
- USACO / Stamps(DP)
描述 已知一个 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K -- 表示信封上能够贴 K 张邮票.计算从 1 到 M 的最大连续可贴出的邮资. 例如,假设有 1 分和 3 分的邮票:你 ...
- 【USACO题库】 动态规划 汇总(普及-/普及)
数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...
- WOJ 1037 邮票 Stamps
WOJ 1037 邮票 Stamps 1 题目 1.1 输入 1.2 输出 1.3 样例 1.4 来源 2 分析 2.1 70分(TLE) 2.2 正解 3 注意 3.1 初始化 3.2 找答案 1 ...
- usaco Shaping Regions
这就是usaco 前面的windows area的变形. /* ID:jinbo wu TASK:rect1 LANG:C++ */ #include<iostream> #include ...
- usaco Postal Vans(dp)
是哈密顿回路,然后...就不知道怎么写了 ,以前写过类似的不过情况没这么多也没这么复 usaco training 6.1.1 Postal Vans 题解 标签: usaco training题解d ...
- usaco Beef McNuggets
这两天贼烦,ccf炸了,还有一个烦心事.哎我都不知道自己能不能坚持下去了.马上期末考了.这段时间还是抓紧时间复习吧同时刷usaco的节奏要跟以前一样了,毕竟课少了. 题解: 只要你知道以下的数论结论, ...
- usaco前两章小结
usaco 暑假老师有推荐做但是那个题目太长了,而且·大部分都是废话做起来特别慢,而且当时自己基本上什么都不懂,太难了所以看了题解做了两题就放弃了. 转眼就上学了,因为想学习acm所以就胡乱找题做但是 ...
最新文章
- 关于301跳转的多种办法
- BZOJ1008: [HNOI2008]越狱(组合数)
- Mapgis6.7 林相图自动注记 .
- Qt工作笔记-可拖动大小的QListWidget(自定义控件方式)
- Stack Usage on Transfers to Interrupt and Exception Handling Routines
- Mac怎么终端配置mysql_mysql mac怎么在终端安装
- Java中try与catch的使用
- 什么是LED屏/ThinkPadX200/X200S/X301/T400/T500等那些是LED屏?
- 老笔记本_Win7_U盘_ReadyBoost
- 关于多元正态分布向量表示的Notation问题
- 太赞了,英伟达又一突破,输入关键词就可以生成直逼摄影师的大片
- FOTOO-疫情下,企业如何线上组织活动,输出企业文化
- 高并发核心技术Redis系列(九)--------本地操作
- GIS小白教程:如何利用高程DEM数据构建三维地图模型(基于ArcScene)
- 数据库SQL实践25:获取员工其当前的薪水比其manager当前薪水还高的相关信息
- 从西刺代理爬取代理ip,并验证是否可用
- 锅炉给水用碳酸钠调PH值与氢氧化钠调PH值优劣势对比
- 高性能网络编程总结及《TCP/IP Sockets编程(C语言实现) (第2版)》 代码下载(链接以及文件打包)
- raid卡缓存对硬盘性能_我们怎么解决机械硬盘既慢又容易坏的问题
- vs 给qt程序添加图标
热门文章
- 英语在线听力翻译器_仁爱版初一英语免费听力训练电子教程
- listView分批和分页加载数据
- django model
- 博士申请 | 南洋理工大学骆思强老师招收大数据/机器学习方向博士生、博士后...
- 重磅发布!最新版《动手学深度学习》PDF 版今天终于可以下载
- 图像压缩哪家强?请看这份超详细对比
- java第五章抽象类与接口5.1-5.3 2020.3.27+31
- HDU 1069 Monkey and Banana 最长上升子序列进阶(动态规划)
- mac php 怎么启动命令,Mac 使用homebrew启动PHP环境命令
- ps ico插件_常用 PS 插件合集(1)