2751: [HAOI2012]容易题(easy)

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 2561  Solved: 1076
[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

真 · 容易题

答案就是每一位所有可以选择的数字的和的积(积的和=和的积)

这样对于有限制的位暴力算,没有限制的位直接一个快速幂搞定

#include<stdio.h>
#include<algorithm>
using namespace std;
#define LL long long
#define mod 1000000007
typedef struct Res
{int x, y;bool operator < (const Res &b) const{if(x<b.x || x==b.x && y<b.y)return 1;return 0;}
}Res;
Res s[100005];
LL Pow(LL x, int y)
{LL ans = 1;while(y){if(y%2)ans = ans*x%mod;x = x*x%mod;y /= 2;}return ans;
}
int main(void)
{LL sum, ans, now;int n, m, k, i, flag;scanf("%d%d%d", &n, &m, &k);ans = 1, sum = ((LL)(1+n)*n/2)%mod;for(i=1;i<=k;i++)scanf("%d%d", &s[i].x, &s[i].y);sort(s+1, s+k+1);now = 1, flag = 0;for(i=1;i<=k;i++){if(s[i].x==s[i-1].x && s[i].y==s[i-1].y)continue;if(s[i].x!=s[i-1].x){flag++;ans = ans*now%mod;now = sum;}now = (now-s[i].y+mod)%mod;}ans = ans*now%mod;ans = ans*Pow(sum, m-flag)%mod;printf("%lld\n", ans);return 0;
}

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

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

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

  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. HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)

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

  8. BZOJ第一页刷题计划

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

  9. BZOJ 2751 容易题

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

最新文章

  1. php获取网页标题接口,PHP获取网页标题的3种实现方法代码实例
  2. 为智能手机VR体验而生,ARM公布最新处理器架构
  3. project-huffmancode
  4. android Formatter 的使用
  5. MYSQL8.0 排序查询报错 this is incompatible with sql_mode=only_full_group_by
  6. 常喝酒的人,为什么会出现手抖的现象?
  7. java多态上转下_java的多态(向上转型、向下转型)
  8. Flume的可扩展性
  9. 简单了解几种常见的网络通信协议
  10. LIBS+=到底如何用!
  11. python moving average_Python实现滑动平均(Moving Average)的例子
  12. 轻松了解,顶级域名,二级域名,三级域名
  13. 云端服务器的稳定方法,云端服务器的问题怎么解决
  14. 入职阿里一周年,我能谈点什么 | 可惜主语不是我~
  15. 《心流:最优体验心理学》读书笔记
  16. Java毕业设计项目_企业级实战全栈项目中信CRM
  17. 职场名媛症候群,你中招了吗?
  18. 迷你计算机工作站,这到底是什么 迄今最mini的工作站即将发售
  19. 小学计算机课程目录五年级,小学五年级信息技术课件
  20. 微信撤回消息服务器还有存底么,微信更新又来了,撤回消息大变化!还增加“查岗”功能......

热门文章

  1. 如何自学python-零基础如何自学成为Python高手?
  2. python3.8.5-Python 3.8.5 正式发布
  3. python模式识别
  4. 科大讯飞语音识别demo
  5. 简析语音识别技术的工作原理
  6. jQuery-dom和jQuery,入口函数(基本知识)
  7. 不相交集java_不相交集类
  8. 【linux笔记】secureCRT使用
  9. 【java笔记】线程(5):线程安全问题
  10. 手机能上wifi电脑不行_电脑如何当Wifi供手机使用