题目链接

题目大意:一个数列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. iOS 组件化 —— 路由设计思路分析
  2. 第5章 定时器Timer
  3. memcache/memcached/memcachedb 配置、安装(转)
  4. IntelliJ IDEA编码设置
  5. Java集合框架-概述
  6. vue 编辑弹框,编辑页面,列表数据也会跟着变
  7. 逆幂律模型_【微微出品】加速模型一起聊聊Peck、Lawson、MILHDBK217
  8. java会跳出problem_docs/java/concurrent/ConcurrencyProblem.md · wt1814/wt-note - Gitee.com
  9. python高级-异常(13)
  10. AcWing 869. 试除法求约数(枚举)
  11. 【2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) D】Count The Bits【数位DP】
  12. python职场应用英语作文_春考关于职场应用的英语作文
  13. Cuba 设置debug模式
  14. 【大数据----Spark】Spark入门教程[3]
  15. vue基于element组件的国籍选择框
  16. SAP ADM100 学习笔记
  17. 43款设计师必备英文设计字体【书法类字体】
  18. 物流单号查询,在哪里查询快递
  19. Win10 Windows Defender 保护历史记录清空方法
  20. mac批量修改文件名、后缀名

热门文章

  1. ptp虚拟服务器配置,Trimble高精度网络授时服务器 PTP GM200
  2. Source Insight大括号位置对齐正下方设置
  3. ipconfig /flushdns
  4. 编辑线上NG,使用ipconfig /flushdns 清除系统DNS缓存
  5. FileProvider解决FileUriExposedException
  6. 推荐一款超实用的免费照片编辑软件给大家!
  7. 百科知识 .e,.ec文件如何打开
  8. 一切从Android的Handler讲起(一):Handler工作机制
  9. jQuery fadeTo() 方法
  10. js滚动div滚动条到底部