bzoj 2751: [HAOI2012]容易题(easy)
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
Sample Output
真 · 容易题
答案就是每一位所有可以选择的数字的和的积(积的和=和的积)
这样对于有限制的位暴力算,没有限制的位直接一个快速幂搞定
#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)相关推荐
- 2751: [HAOI2012]容易题(easy)
题目链接 题目大意:一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取哪些值,我们定义一个数列的积为该数列所有元素的乘积,求出所有可能的数列的积的和 题解:用小数据手玩 ...
- 【bzoj2751】[HAOI2012]容易题(easy) 数论-快速幂
[bzoj2751][HAOI2012]容易题(easy) 先考虑k=0的情况 那么第一个元素可能为[1,n] 如果序列长度为m-1时的答案是ans[m-1] 那么合并得 然后同理答案就是 k很小 而 ...
- bzoj2751[HAOI2012]容易题(easy)
bzoj2751[HAOI2012]容易题(easy) 题意: 已知一个数列A对于所有的A[i]都是1~n的自然数,一些A[i]不能取一些值,求出所有可能的数列的积的和 mod 1000000007的 ...
- 【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题
Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取 ...
- bzoj2751 [HAOI2012]容易题(easy)
Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取 ...
- 小M的简单题(easy)
小M的简单题(easy) 时间限制:3s 内存限制:128MB [题目描述] 小M是某知名高中的学生,有一天,他请他的n个同学吃苹果,同学们排成一行,且手中已经有一些苹果.为了表示他的大方,有时他会给 ...
- HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)
HYSBZ(BZOJ) 4300 绝世好题(位运算,递推) Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<= ...
- BZOJ第一页刷题计划
BZOJ第一页刷题计划 已完成:67 / 90 [BZOJ1000]A+B Problem:A+B: [BZOJ1001][BeiJing2006]狼抓兔子:最小割: [BZOJ1002][FJOI2 ...
- BZOJ 2751 容易题
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2751 题意:有一个数列A已知对于所有的A[i]都是1到n的自然数,并且知道对于一些A[i ...
最新文章
- php获取网页标题接口,PHP获取网页标题的3种实现方法代码实例
- 为智能手机VR体验而生,ARM公布最新处理器架构
- project-huffmancode
- android Formatter 的使用
- MYSQL8.0 排序查询报错 this is incompatible with sql_mode=only_full_group_by
- 常喝酒的人,为什么会出现手抖的现象?
- java多态上转下_java的多态(向上转型、向下转型)
- Flume的可扩展性
- 简单了解几种常见的网络通信协议
- LIBS+=到底如何用!
- python moving average_Python实现滑动平均(Moving Average)的例子
- 轻松了解,顶级域名,二级域名,三级域名
- 云端服务器的稳定方法,云端服务器的问题怎么解决
- 入职阿里一周年,我能谈点什么 | 可惜主语不是我~
- 《心流:最优体验心理学》读书笔记
- Java毕业设计项目_企业级实战全栈项目中信CRM
- 职场名媛症候群,你中招了吗?
- 迷你计算机工作站,这到底是什么 迄今最mini的工作站即将发售
- 小学计算机课程目录五年级,小学五年级信息技术课件
- 微信撤回消息服务器还有存底么,微信更新又来了,撤回消息大变化!还增加“查岗”功能......