题目链接

题目大意:一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取哪些值,我们定义一个数列的积为该数列所有元素的乘积,求出所有可能的数列的积的和

题解:用小数据手玩一下公式,设m=2,第一项可行的取值为 a1,a2 a_1,a_2,第二项可行的取值为 b1,b2 b_1,b_2,有

ans=a1b1+a1b2+a2b1+a2b2=(a1+a2)∗(b1+b2) ans=a_1b_1+a_1b_2+a_2b_1+a_2b_2=(a_1+a_2)*(b_1+b_2)

然后拓展一下,发现答案等于各项可取的数之和的积

由于k很小,有限制的项占少数,暴力算有限制的即可
再把答案乘上 (n∗(n+1)2)num ({n*(n+1)\over 2})^{num},num为无限制的项数

还要去一下重

我的收获:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;#define M 100005
#define P 1000000007
#define pii pair<int,int>
typedef long long ll;int n,m,k,x,y,cnt;
long long tmp,ans=1,a[M];
pii u[M];ll fpow(ll a,int b){ll c=1;a%=P;for(;b;b>>=1,a=(a*a)%P)if(b&1) c=(c*a)%P;return c%P;
}void work()
{ll ret=0;for(int i=1;i<=k;i++){ret+=u[i].second;ret%=P;if(i==k||u[i].first!=u[i+1].first){ans=ans*((tmp-ret+P)%P)%P;ret=0;cnt++;}}ans=ans*fpow(tmp,m-cnt)%P;cout<<ans<<endl;
}void init()
{cin>>n>>m>>k;for(int i=1;i<=k;i++){scanf("%d%d",&x,&y);u[i]=make_pair(x,y);}sort(u+1,u+1+k);k=unique(u+1,u+1+k)-(u+1);tmp=(ll)n*(n+1)/2%P;
}int main()
{init();work();return 0;
}

2751: [HAOI2012]容易题(easy)相关推荐

  1. bzoj 2751: [HAOI2012]容易题(easy)

    2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 2561  Solved: 1076 [Submi ...

  2. 【bzoj2751】[HAOI2012]容易题(easy) 数论-快速幂

    [bzoj2751][HAOI2012]容易题(easy) 先考虑k=0的情况 那么第一个元素可能为[1,n] 如果序列长度为m-1时的答案是ans[m-1] 那么合并得 然后同理答案就是 k很小 而 ...

  3. bzoj2751[HAOI2012]容易题(easy)

    bzoj2751[HAOI2012]容易题(easy) 题意: 已知一个数列A对于所有的A[i]都是1~n的自然数,一些A[i]不能取一些值,求出所有可能的数列的积的和 mod 1000000007的 ...

  4. 【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题

    Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取 ...

  5. bzoj2751 [HAOI2012]容易题(easy)

    Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取 ...

  6. 小M的简单题(easy)

    小M的简单题(easy) 时间限制:3s 内存限制:128MB [题目描述] 小M是某知名高中的学生,有一天,他请他的n个同学吃苹果,同学们排成一行,且手中已经有一些苹果.为了表示他的大方,有时他会给 ...

  7. 洛谷2220 [HAOI2012]容易题

    标签:快速幂 题目 题目传送门 题目描述 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于 ...

  8. 洛谷 2220 [HAOI2012]容易题 题解(组合数学,离散化)

    原链接: 洛谷:点我QωQ bzoj:点我QωQ 题意简述 一个长度为mmm的数列aaa,每个数都在[1,n][1,n][1,n]之间,有kkk个限制.第iii个限制包含两个正整数x,yx,yx,y, ...

  9. 2020年牛客多校第五场C题-easy(纯组合计数不要生成函数的做法)

    文章目录 description solution code description 有TTT组测试数据 对于两个长度为KKK的数列{a}\{a\}{a}和{b}\{b\}{b},满足∑i=1Kai= ...

最新文章

  1. 兄弟!kafka的重试机制,你可能用错了~
  2. 最全 Neo4j 可视化图形数据库的工具!
  3. rhel5.1 vncserver
  4. jira图片_JIRA使用不求人-从菜鸟到高手
  5. MySQL的explain简书_MySQL Explain
  6. 前端信息查询与显示_中国商标网查询显示的信息都是正确的吗
  7. ROS2学习(九).ROS概念 - ROS 2参数(ROS 2 parameters)
  8. dell跳过开机硬件检测,关闭dell开机硬件自检 戴尔笔记本电脑每次开机自动硬件检查怎么取消?...
  9. 用一年的时间,依靠SEO创造一个成功的网站
  10. 使用android-junit-report.jar导出单元测试报告
  11. php sqlite教程,在thinkPHP中使用sqlite的教程
  12. JavaScript小练习2
  13. matlab 支撑集,基于OMP算法的快速压缩感知图像重构
  14. 在GitHub上学黑客 --- 黑客成长技术清单
  15. 【马尔科夫链-蒙特卡罗】马尔科夫链-蒙特卡罗方法对先验分布进行抽样
  16. 【考研数学一】微分方程专讲(初步)
  17. saas系统和php mysql的区别_saas系统和传统erp的区别是什么?
  18. Rust 学习3, 枚举,集合
  19. 问题解决:idea 中无法连接 sql server 数据库,报错 [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
  20. 莘城苑:面包种类选择

热门文章

  1. 南开19计算机应用基础,南开19秋学期(1709、1803、1809、1903、1909)《计算机应用基础》在线答案1...
  2. 通过证明对 Windows 10 及更高版本的驱动程序进行签名
  3. mysql 之general_log日志
  4. UOJ #22 外星人
  5. 别太把技术当回事 也别不把技术当回事
  6. ansible:with_list、with_flattened、with_together、with_cartesian、with_nested、with_cartesian
  7. Centos系统使用代理上网设置
  8. 速写的外线怎样才能画好?这些速写要点要记牢~
  9. 【产品售前】PPT设计之道
  10. PostgreSql简介