题意:

给你 nnn (不超过2e6) 个数,和一个数 rrr,问你有多少种方案,使得你取出某个子集,能够让它们的乘积 mod 2017等于 rrr。

解:

由于2017有5这个原根,考虑 dp[i][j]dp[i][j]dp[i][j] 表示到第 iii 个点后取模结果为 jjj 的数的个数,每次转移就是 dp[i][j∗x]+=dp[i−1][j]dp[i][j∗x]+=dp[i−1][j]dp[i][j∗x]+=dp[i−1][j], 因为转化为加法后,能够快速求得值, 最后的结果要对 222 取模,因此用 bitset 做。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <map>
#include <sstream>
#include <cctype>
#include <ctime>
#include <bitset>
using namespace std;typedef long long ll;
const ll mod = 1e9+7;
const int N = 2e6+5;bitset <2016> bi;
int a[N], b[2020];int main()
{int tmp = 1;for(int i = 1; i < 2017; ++i){tmp = (tmp*5) % 2017;b[tmp] = i;}b[1] = 0;int n, r;while(scanf("%d%d", &n, &r) != EOF){bi.reset();bi.set(b[1]);for(int i = 1; i <= n; ++i){scanf("%d", &a[i]);bi ^= (bi << b[a[i]]) ^ (bi >> (2016-b[a[i]]));//乘a[i]有两种可能,超出2017和未超出2017}cout << bi[b[r]] << '\n';}return 0;
}

2019牛客国庆集训派对day5 K(2017四川省赛)相关推荐

  1. 2019牛客国庆集训派对day2 K 2018(容斥)

    链接:https://ac.nowcoder.com/acm/contest/1107/K 来源:2019牛客国庆集训派对day2 题目描述   Given a, b, c, d, find out ...

  2. 2019牛客国庆集训派对day2 K 2018

    我这里在原题目上面加了扩充 修改:将2018改为x(x不是很大 ,其他题面内容不变 方法:首先将x分解质因子,变为 x=p1e1∗p2e2∗...∗pnenx=p_{1}^{e1}*p_{2}^{e2 ...

  3. 2016湖南湘潭邀请赛 - 2019牛客国庆集训派对day6

    2016湖南湘潭邀请赛 - 2019牛客国庆集训派对day6 A - 2016 题意:求一个2阶矩阵的n次幂,对7取模的结果 思路:可以用上面介绍的10进制倍增的方法.也可以用 n 对2016取模,还 ...

  4. 牛客国庆集训派对Day5 数论之神

    链接:https://ac.nowcoder.com/acm/contest/205/L 来源:牛客网 题目描述 终于活成了自己讨厌的样子. 这是她们都还没长大的时候发生的故事.那个时候,栗子米也不需 ...

  5. 2019牛客国庆集训派对day7 A 2016(数学)

    题干: 链接:https://ac.nowcoder.com/acm/contest/1112/A 来源:牛客网 给出正整数 n 和 m,统计满足以下条件的正整数对 (a, b) 的数量: 1 < ...

  6. 牛客国庆集训派对Day5 B 电音之王(CCPC_CAMP) 黑科技-蒙哥马利快速乘

    电音之王 dls专卡 Θ ( 1 ) \Theta(1) Θ(1)快速乘,orzzzzz,我只想说,dls牛逼! 题解:蒙哥马利 代码 #include <bits/stdc++.h> u ...

  7. 牛客国庆集训派对Day1: K. Tengen Toppa Gurren Lagann(贪心)

    K. Tengen Toppa Gurren Lagann 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言2097152K 64bit IO Format: ...

  8. 2019牛客国庆集训派对day7题解

    还没补完,慢慢补,能写多少是多少··· 文章目录 2016 题目描述 思路 代码 有向无环图 题目描述 思路 代码 Parenthesis 题目描述 思路 代码 三角形和矩形 题目描述 思路 代码 2 ...

  9. 牛客国庆集训派对Day5 B 电音之王

    题目:点击打开链接 题意:略. 分析:首先用暴力快速乘O(n*logn)t了,取模一个long long范围内的数太耗时了,但是一直不知道怎么优化取模,后来才知道有蒙哥马利算法优化a*b%c,蒙哥马利 ...

  10. 2019牛客国庆集训派对day7 A 2016

    原题 题意: 给出正整数 n 和 m,统计满足以下条件的正整数对 (a, b) 的数量: 1≤a≤n,1≤b≤m; a×b是 2016 的倍数. 思路: a*b%mod–>(a%mod * b% ...

最新文章

  1. zuul两大作用_SpringCloud微服务(05):Zuul组件,实现路由网关控制
  2. lscpu命令查看CPU统计信息
  3. swift选择类或结构体
  4. Hyperledger Fabric 管道(1) 基本概念
  5. propertychange input change
  6. Android的sqlite使用外部,Android 使用外部已经建立好的sqlite数据库
  7. Windows桌面切换VC代码
  8. 个人总结的【LaTeX】超高频特殊符号表(仅33个符号)+复杂公式速写解决方案,请查收!
  9. Vue基础知识之vue-resource和axios(三)
  10. 关于Python脚本的前两行
  11. 编码风格之变量的命名规则
  12. docker 报错:x509: certificate has expired or is not yet valid
  13. 免费计算机网络基础ppt,计算机网络基础
  14. 中国石油大学《化工原理二》第一阶段在线作业
  15. 6.形容词性物主代词用法
  16. react报错Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.
  17. 计算机网络原理-应用层
  18. 华为路由交换RS 部分题库分享
  19. 基于Xilinx LUT6设计高效紧凑的2:1 Bus Mux
  20. 遍历$.each()和$().each()用法

热门文章

  1. 自然人独资企业要上缴哪些税
  2. Python房贷计算器GUI(等额本息,等额本金)
  3. JDBC bug : You must configure either the server or JDBC driver
  4. PDF文件密码怎么解除
  5. 传染病研究-非靶向下一代宏基因组测序(mNGS)分析
  6. 远程桌面连接如何重启计算机,如何使用“远程桌面连接”连接到另一台计算机...
  7. Parcelable encountered IOException
  8. 用树莓派做一个语音机器人
  9. 用python绘制家乡汕头的地标建筑
  10. 计算机黑屏启动超慢,电脑开机慢黑屏时间长怎么解决