题意:

问n个物品选出K个可以拼成的体积有哪些。

解法:

多项式裸题,注意到本题中 $A(x)^K$ 的系数会非常大,采用NTT优于FFT。

NTT 采用两个 $2^t+1$ 质数,求原根 $g_n$ 后用 $g_n^1 $~$ g_n^{P-1}$ 的循环代替复数向量的旋转。

注意逆的 $w_n$ 是 $g_n ^ {  - \frac{P-1}{len}  }$,并且要用两个质数保证正确即可,$O(nlogn)$。

#include <bits/stdc++.h>

#define PI acos(-1)
#define P1 998244353LL
#define P2 469762049LL
#define LL long long
#define gn 3 const int N = ; using namespace std; int R[N<<]; LL qpow(LL x,int n,LL P)
{
LL ans = ;
for(;n;n>>=,x = x*x % P) if(n&) ans = ans*x % P;
return ans;
} void DFT(LL a[],int n,int tp_k,LL P)
{
for(int i=;i<n;i++) if(i<R[i]) swap(a[i],a[R[i]]);
for(int d=;d<n;d<<=)
{
LL wn = qpow(gn, (P-)/(d<<),P);
if(tp_k == -) wn = qpow(wn, P-,P);
for(int i=;i<n;i += (d<<))
{
LL wt = ;
for(int k=;k<d;k++, wt = wt*wn % P)
{
LL A0 = a[i+k], A1 = wt * a[i+k+d] % P;
a[i+k] = A0+A1;
a[i+k+d] = A0+P-A1;
if(a[i+k] >= P) a[i+k] -= P;
if(a[i+k+d] >= P) a[i+k+d] -= P;
}
}
}
LL inv = qpow(n, P-,P);
if(tp_k==-)
for(int i=;i<n;i++) a[i] = a[i] * inv % P;
} LL A[N<<],B[N<<]; int main()
{
//freopen("test.txt","w",stdout);
int n,K;
cin>>n>>K;
int L = ,tot;
while((<<L)<*K) L++;
tot = (<<L);
for(int i=;i<tot;i++) R[i]=(R[i>>]>>)|((i&)<<(L-));
for(int i=,x;i<=n;i++) scanf("%d",&x), A[x] = , B[x] = ;
DFT(A,tot,,P1);
for(int i=;i<tot;i++) A[i] = qpow(A[i], K, P1);
DFT(A,tot,-,P1);
DFT(B,tot,,P2);
for(int i=;i<tot;i++) B[i] = qpow(B[i], K, P2);
DFT(B,tot,-,P2);
for(int i=;i<tot;i++) if(A[i] || B[i]) printf("%d ",i);
printf("\n");
return ;
}

最新文章

  1. Ubuntu Mysql 维护
  2. MyBaits学习
  3. HD1269迷宫城堡(有向图 &amp;&amp; 划分连通块)
  4. shopex最新版前台一处想不到的SQL注入漏洞
  5. 大道至简---软件工程实践者的思想------------java伪代码形式读后感第一章
  6. C# 读写excel 用于导入数据库 批量导入导出excel
  7. 关于《精通移动App测试实战:技术、工具和案例》图书勘误信息
  8. 基于Lumisoft.NET组件的POP3邮件接收和删除操作(转载)
  9. 第九周java学习总结
  10. 做 fzu oj 1106 题目学到的
  11. js 网上见到的动画函数 备份
  12. android webview重定向 返回按钮死循环问题修改
  13. 【BZOJ 2844】: albus就是要第一个出场
  14. Storm是什么
  15. Android UI(一)Layout 背景局部Shape圆角设计
  16. jar、war、ear
  17. Linux中编译或安装程序时提示No such file or directory
  18. numpy 与 pandas
  19. phpcms首页替换
  20. supervisor control in centos 6/7 python2.6.2.7 3.4

热门文章

  1. MOS简单应用
  2. 我的vim插件列表
  3. Tomcat服务器改主页 &amp; jeesite框架改首页
  4. jni集成第3方third party动态库libwebrtc_audio_preprocessing.so时android.mk的编写
  5. iOS8 PUSH解决方法
  6. 推荐一套免费跨平台的delphi 哈希及加密算法库
  7. 1069: [SCOI2007]最大土地面积
  8. 【BZOJ4811】[Ynoi2017]由乃的OJ 树链剖分+线段树
  9. 九度OJ 1113:二叉树 (完全二叉树)
  10. Colly provides a clean interface to write any kind of crawler/scraper/spider