博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1655[Usaco2006 Jan] Dollar Dayz 奶牛商店*
阅读量:7114 次
发布时间:2019-06-28

本文共 1350 字,大约阅读时间需要 4 分钟。

题意:

商场里有K种工具,价格分别为1,2,…,K美元。约翰手里有N美元,必须花完。求购买组合方案。n≤1000,k≤100。

题解:

完全背包,不过要高精度。

代码:

1 #include 
2 #include
3 #include
4 #include
5 #define inc(i,j,k) for(int i=j;i<=k;i++) 6 #define maxn 1010 7 #define ll long long 8 using namespace std; 9 10 inline int read(){11 char ch=getchar(); int f=1,x=0;12 while(ch<'0'||ch>'9'){
if(ch=='-')f=-1; ch=getchar();}13 while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();14 return f*x;15 }16 struct bigint{17 int len,num[100];18 void operator = (int a){len=0; memset(num,0,sizeof(num)); while(a)num[++len]=a%10,a/=10;}19 void operator = (bigint a){20 memset(num,0,sizeof(num)); inc(i,1,a.len)num[i]=a.num[i]; len=a.len;21 }22 void operator += (bigint a){23 len=max(len,a.len);24 inc(i,1,len){num[i]+=a.num[i]; if(num[i]>=10)num[i+1]+=num[i]/10,num[i]%=10;}25 if(num[len+1])len++;26 }27 void print(){
for(int i=len;i>=1;i--)printf("%d",num[i]);}28 };29 int n,k,x,y; bigint f[2][maxn];30 int main(){31 n=read(); k=read(); x=0; y=1; f[x][0]=1;32 inc(i,1,k){33 inc(j,0,n)f[y][j]=f[x][j]; inc(j,i,n)f[y][j]+=f[y][j-i]; swap(x,y);34 }35 f[x][n].print(); return 0;36 }

 

20160927

转载于:https://www.cnblogs.com/YuanZiming/p/5966611.html

你可能感兴趣的文章
Cordova快速开始(安卓篇)
查看>>
Android 源码分析之旅2 1 IPC以及Service的启动过程
查看>>
Mobx 源码解析 一(observable)
查看>>
ActiveMQ
查看>>
聚类算法(kmeans)详解和python实现
查看>>
时代在变,用户也在变,有温度的IP开发将成网络文学新趋势
查看>>
[ARKit]7-ARKit1.5的图片识别功能
查看>>
LeetCode 406 Queue Reconstruction by Height
查看>>
四种遍历方法你选哪个?
查看>>
LeetCode41.缺失的第一个正数 JavaScript
查看>>
Java设计模式五——单件模式
查看>>
奇怪的 Ruby
查看>>
79. Word Search
查看>>
【Android】RxJava的使用(四)线程控制 —— Scheduler
查看>>
极限编程 (Extreme Programming) - 迭代计划 (Iterative Planning)
查看>>
小程序外卖购物车 直接就能用~
查看>>
Python版设计模式之监听者模式
查看>>
[Spring Security 5.2.0 翻译] 8 Architecture and Implementation
查看>>
使用 Sphinx 撰写技术文档并生成 PDF 总结
查看>>
Fastjson的基本使用方法大全
查看>>