有限制的最多就K个, 所以我们处理一下这K个就行了. 其他可以任选, 贡献都是∑i (1≤i≤N), 用快速幂。

-------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
const int maxn = 100009;
const int MOD = 1000000007;
int N, M, K, sum, ans = 1;
pii x[maxn];
void Init() {
scanf("%d%d%d", &N, &M, &K);
sum = ll(N) * (1 + N) / 2 % MOD;
for(int i = 0; i < K; i++)
scanf("%d%d", &x[i].first, &x[i].second);
sort(x, x + K);
K = unique(x, x + K) - x;
}
int Power(int x, int t) {
int ret = 1;
for(; t; t >>= 1, x = ll(x) * x % MOD)
if(t & 1) ret = ll(x) * ret % MOD;
return ret;
}
void upd(int &x, int t) {
if((x -= t) < 0)
x += MOD;
}
void Solve() {
int p = -1, cnt = 1, c = 0;
for(int i = 0; i < K; i++) if(x[i].first == p)
upd(cnt, x[i].second);
else {
if(~p)
ans = ll(ans) * cnt % MOD;
c++;
p = x[i].first;
upd(cnt = sum, x[i].second);
}
ans = ll(ans) * cnt % MOD * Power(sum, M - c) % MOD;
printf("%d\n", ans);
}
int main() {
Init();
Solve();
return 0;
}

-------------------------------------------------------------------

2751: [HAOI2012]容易题(easy)

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 1416  Solved: 607
[Submit][Status][Discuss]

Description

为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下:
有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取哪些值,我们定义一个数列的积为该数列所有元素的乘积,要求你求出所有可能的数列的积的和 mod 1000000007的值,是不是很简单呢?呵呵!

Input

第一行三个整数n,m,k分别表示数列元素的取值范围,数列元素个数,以及已知的限制条数。
接下来k行,每行两个正整数x,y表示A[x]的值不能是y。

Output

一行一个整数表示所有可能的数列的积的和对1000000007取模后的结果。如果一个合法的数列都没有,答案输出0。

Sample Input

3 4 5
1 1
1 1
2 2
2 3
4 3

Sample Output

90
样例解释
A[1]不能取1
A[2]不能去2、3
A[4]不能取3
所以可能的数列有以下12种
数列 积
2 1 1 1 2
2 1 1 2 4
2 1 2 1 4
2 1 2 2 8
2 1 3 1 6
2 1 3 2 12
3 1 1 1 3
3 1 1 2 6
3 1 2 1 6
3 1 2 2 12
3 1 3 1 9
3 1 3 2 18

HINT

数据范围

30%的数据n<=4,m<=10,k<=10

另有20%的数据k=0

70%的数据n<=1000,m<=1000,k<=1000

100%的数据 n<=109,m<=109,k<=105,1<=y<=n,1<=x<=m

Source

转载于:https://www.cnblogs.com/JSZX11556/p/4992647.html

BZOJ 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. 2751: [HAOI2012]容易题(easy)

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

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

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

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

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

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

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

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

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

  7. 小M的简单题(easy)

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

  8. HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)

    HYSBZ(BZOJ) 4300 绝世好题(位运算,递推) Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<= ...

  9. BZOJ第一页刷题计划

    BZOJ第一页刷题计划 已完成:67 / 90 [BZOJ1000]A+B Problem:A+B: [BZOJ1001][BeiJing2006]狼抓兔子:最小割: [BZOJ1002][FJOI2 ...

  10. BZOJ 2751 容易题

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2751 题意:有一个数列A已知对于所有的A[i]都是1到n的自然数,并且知道对于一些A[i ...

最新文章

  1. tab 触发ajax请求,防止重复发送ajax请求的思索
  2. python定时重新初始化类_如何重新初始化类对象
  3. 【Android】怎样烧写qcn文件
  4. FastDFS文件上传
  5. 解决esp8266无法连接手机和电脑热点的问题
  6. 如何进行 360 评估
  7. 美食杰项目 -- 菜品信息(五)
  8. 软件测试前景怎么样?大概要学什么?
  9. mac每次执行mvn -v命令要先执行source ~/.bash_profile才生效
  10. 软件工程资料 - UCSD 怎么教软件工程
  11. 基于LabVIEW的电阻合格率检测装置仿真设计
  12. JavaScript实现模态对话框
  13. 2022最新坤坤鸡乐盒微信小程序源码+云开发的
  14. linux shell编程 ppt,Linux常用命令与Shell基本编程.ppt
  15. 2021到2022跨年还有多少天?可用手机便签设置跨年倒数
  16. 数字信号处理5——CFAR算法及matlab实现
  17. 蓝色微立体图表合集4PPT模板
  18. 哥带你去深圳横岗眼镜城配镜去喽!
  19. 学计算机 毕业可以做什么,学习计算机毕业后可以做什么工作?比起担忧你更需要的是脚踏实地...
  20. 【演示文稿制作动画】Focusky教程 | 添加Flash动画

热门文章

  1. 私域流量和公域流量的区别
  2. GUI(图形用户界面)
  3. Android 9 静默安装apk
  4. 【爬虫工具】哔哩哔哩插件姬(bilibili-plugin)
  5. 使用 TICS Pro 配置时钟芯片
  6. android手机双开微信方法,安卓黑科技:一机同时双开多个QQ/微信
  7. 对象存储oss挂载工具ossfs的使用
  8. 理论篇-Linux---RAID磁盘阵列与阵列卡
  9. 伦敦银实时行情中的引爆点
  10. ps3自制linux,下BT聊QQ !PS3安装Linux ubuntu 7.10详细图文教程