博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杭电ACM——1171,Big Event in HDU(母函数)
阅读量:4049 次
发布时间:2019-05-25

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

这道题虽然不是计数问题,但同样可以用母函数解决,好在这道题的时间要求较宽。

代码如下:

#include
#include
#include
#include
typedef long long ll;using namespace std;ll c1[250005],c2[250005];struct fac{ ll v; ll n;}facs[55];bool cmp(fac x,fac y){ return x.v
>N)&&(N>0)) { ma=0; for(i=1;i<=N;i++) { cin>>facs[i].v>>facs[i].n; ma+=facs[i].v*facs[i].n; //ma记录所有facilities的总值 } sort(facs+1,facs+N+1,cmp); //从小到大排序,按v for(i=0;i<=ma;i++) c1[i]=c2[i]=0; for(i=0;i<=facs[1].n;i++) //母函数第一个多项式系数初始化为1 c1[i*facs[1].v]=1; for(i=2;i<=N;i++) { for(j=0;j<=ma;j++) for(k=0;(k+j<=ma)&&(k<=facs[i].v*facs[i].n);k+=facs[i].v) c2[j+k]=c2[j+k]+c1[j]; for(j=0;j<=ma;j++) { c1[j]=c2[j]; c2[j]=0; } } /*for(i=1;i<=N;i++) { for(j=1;j<=facs[i].n;j++) cout<
<<" "<
<
=B) //因为i是从小到大,所以如果发现A>=B,就可以输出A,B,直接结束循环了 { cout<
<<' '<<

转载地址:http://hbdci.baihongyu.com/

你可能感兴趣的文章
mysql:sql alter database修改数据库字符集
查看>>
mysql:sql truncate (清除表数据)
查看>>
yuv to rgb 转换失败呀。天呀。谁来帮帮我呀。
查看>>
yuv420 format
查看>>
yuv420 还原为RGB图像
查看>>
LED恒流驱动芯片
查看>>
驱动TFT要SDRAM做为显示缓存
查看>>
使用file查看可执行文件的平台性,x86 or arm ?
查看>>
qt5 everywhere 编译summary
查看>>
qt 创建异形窗体
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
输入设备节点自动生成
查看>>
GNU hello代码分析
查看>>
Qt继电器控制板代码
查看>>
wpa_supplicant控制脚本
查看>>
gstreamer相关工具集合
查看>>
RS232 四入四出模块控制代码
查看>>
linux 驱动开发 头文件
查看>>
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>