感觉很套路?

  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define setIO(s) freopen(s".in","r",stdin)
  4. using namespace std;
  5. const int mod=998244353,G=3,SI=2000005;
  6. inline int qpow(int x,int y)
  7. {
  8. ll tmp=1;
  9. for(;y;y>>=1,x=1ll*x*x%mod) if(y&1) tmp=1ll*tmp*x%mod;
  10. return tmp;
  11. }
  12. inline int INV(int x) { return qpow(x,mod-2); }
  13. void NTT(int *a,int len,int flag)
  14. {
  15. int i,j,k,mid;
  16. for(i=k=0;i<len;++i)
  17. {
  18. if(i>k) swap(a[i],a[k]);
  19. for(j=len>>1;(k^=j)<j;j>>=1);
  20. }
  21. for(mid=1;mid<len;mid<<=1)
  22. {
  23. int wn=qpow(G,(mod-1)/(mid<<1));
  24. if(flag==-1) wn=INV(wn);
  25. for(i=0;i<len;i+=mid<<1)
  26. {
  27. int w=1;
  28. for(j=0;j<mid;++j)
  29. {
  30. int x=a[i+j],y=1ll*w*a[i+j+mid]%mod;
  31. a[i+j]=1ll*(x+y)%mod, a[i+j+mid]=1ll*(x-y+mod)%mod;
  32. w=1ll*w*wn%mod;
  33. }
  34. }
  35. }
  36. if(flag==-1)
  37. {
  38. int rev=INV(len);
  39. for(i=0;i<len;++i) a[i]=1ll*a[i]*rev%mod;
  40. }
  41. }
  42. int K,A[SI];
  43. char str[SI];
  44. int main()
  45. {
  46. // setIO("input");
  47. int i,j,now=0,len;
  48. scanf(" %s%d",str+1,&K) ,len=strlen(str+1);
  49. for(i=1;i<=len;++i) now=(1ll*10*now%(mod-1)+str[i]-'0')%(mod-1);
  50. int wn=qpow(G,(mod-1)/K),w=1;
  51. for(i=0;i<K;++i) A[i]=qpow(1+w,now),w=1ll*w*wn%mod;
  52. NTT(A,K,-1);
  53. ll tot=0ll;
  54. for(i=0;i<K;++i) tot^=A[i];
  55. printf("%lld\n",tot);
  56. return 0;
  57. }

nowcoder73E 白兔的刁难 单位根反演+NTT的更多相关文章

  1. UOJ#450. 【集训队作业2018】复读机 排列组合 生成函数 单位根反演

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ450.html 题解 首先有一个东西叫做“单位根反演”,它在 FFT 的时候用到过: $$\frac 1 ...

  2. 数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群)

    数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群) 因为不会做目录所以请善用ctrl+F 本来想的是笔记之类的,写着写着就变成了资源整理 一些有的 ...

  3. loj#6485. LJJ 学二项式定理(单位根反演)

    题面 传送门 题解 首先你要知道一个叫做单位根反演的东西 \[{1\over k}\sum_{i=0}^{k-1}\omega^{in}_k=[k|n]\] 直接用等比数列求和就可以证明了 而且在模\ ...

  4. Loj#6247-九个太阳【单位根反演】

    正题 题目链接:https://loj.ac/p/6247 题目大意 给出\(n,k\)求 \[\sum_{0\leq i\leq n,i|k}\binom{n}{i} \] 对\(998244353 ...

  5. BZOJ3328 PYXFIB 单位根反演

    题意:求 \[ \sum_{i=0}^n[k|i]\binom{n}{i}Fib(i) \] 斐波那契数列有简单的矩阵上的通项公式\(Fib(n)=A^n_{1,1}\).代入得 \[ =\sum_{ ...

  6. POJChallengeRound2 Guideposts 【单位根反演】【快速幂】

    题目分析: 这题的目标是求$$ \sum_{i \in [0,n),k \mid i} \binom{n}{i}G^i $$ 这个形式很像单位根反演. 单位根反演一般用于求:$ \sum_{i \in ...

  7. 【做题】UOJ450 - 复读机——单位根反演

    原文链接 https://www.cnblogs.com/cly-none/p/UOJ450.html 题意:请自行阅读. 考虑用生成函数来表示答案.因为秒之间是有序的,所以这应当是个指数生成函数.故 ...

  8. 【UOJ#450】【集训队作业2018】复读机(生成函数,单位根反演)

    [UOJ#450][集训队作业2018]复读机(生成函数,单位根反演) 题面 UOJ 题解 似乎是\(\mbox{Anson}\)爷的题. \(d=1\)的时候,随便怎么都行,答案就是\(k^n\). ...

  9. bzoj 3328 PYXFIB——单位根反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3328 单位根反演主要就是有 \( [k|n] = \frac{1}{k}\sum\limit ...

随机推荐

  1. Django模型层之ORM

    Django模型层之ORM操作 一 ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软 ...

  2. TypeScript之函数

    1.函数声明 与javascript一样,ts的函数声明也分为两种:函数声明,函数表达式 1)函数声明: function fn(age:number):string{ return `age is ...

  3. MAC 添加Jmeter环境变量

    vim ./bash_profile JMETER_HOME=/Users/finup/apache-jmeter-5.1.1 CLASSPATH=$JAVA_HOME/lib/tools.jar:$ ...

  4. javascript 同源策略和 JSONP 的工作原理

    同源策略 同源策略是一个约定,该约定阻止当前脚本获取或操作另一域的内容.同源是指:域名.协议.端口号都相同. 简单地说,A 服务器下的 a 端口执行 ajax 程序,不能获取 B 服务器或者 A 服务 ...

  5. 全栈项目|小书架|服务器开发-Koa2中间件机制洋葱模型了解一下

    KOA2 是什么? Koa是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小.更富有表现力.更健壮的基石. 通过利用 asyn ...

  6. 在 centos 上安装 virutalbox

    目录 简介 centos 6.x 安装 virtual box Step 1 – Add Required Yum Repositories Step 2 – Install Required Pac ...

  7. 【layui】layer.photos 相册层动态生成Img 中出现的问题的解决方案

    layui版本:2.5.5 参照文档:https://www.jianshu.com/p/c594811fa882 他的3.8的解决方案有一些调整因为发现他的解决方式有些繁琐而最新的2.5.5版本中有 ...

  8. CSS知识整理

    1. 权重问题(CSS优先级): 继承或 * :0,0,0,0 标签:0,0,0,1 每个类,伪类:0,0,1,0 每个ID:0,1,0,0 每个行内式:1,0,0,0 !important:无穷大 ...

  9. ActiveMQ Topic持久化订阅的几点收获

    非持久化模式下,Topic不会落地任何消息,消息入队即出队, 消费者如果想要保留离线后的消息需要告诉MQ实例,即注册过程, 代码上大概是这样的: connectionFactory = new Act ...

  10. [C#]DataTable转string[]

    来源:https://zhidao.baidu.com/question/1754089856824824548.html string[] ary = Array.ConvertAll<Dat ...