【题目链接】

http://www.lydsy.com/JudgeOnline/problem.php?id=2751

【题意】

m个位置,已知每个位置的可能取值,问所有可能情况的每个位置的乘积的和。

【思路】

答案即为∏ΣAij,Aij为第i个位置的第j种取值。

前K中情况减去不可能的取值单独算sigma,后面的取值统一算为(((n+1)n)/2)^(m-K)。

【代码】

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; typedef long long ll;
const int N =2e5+;
const int mod = 1e9+; ll read() {
char c=getchar();
ll f=,x=;
while(!isdigit(c)) {
if(c=='-') f=-; c=getchar();
}
while(isdigit(c))
x=x*+c-'',c=getchar();
return x*f;
} struct Node {
int pos,val;
bool operator < (const Node& rhs) const{
return pos<rhs.pos||(pos==rhs.pos&&val<rhs.val);
}
}a[N]; int n,m,K; ll pow(ll a,ll p,ll mod)
{
ll ans=;
while(p)
{
if(p&) ans=(ans*a)%mod;
a=(a*a)%mod; p>>=;
}
return ans;
} int main()
{
n=read(),m=read(),K=read();
for(int i=;i<=K;i++)
{
a[i].pos=read(),
a[i].val=read();
}
sort(a+,a+K+);
ll ans=,sum=(ll)n*(n+)/%mod,tmp=,cnt=;
for(int i=;i<=K+;i++)
{
if(i>&&a[i].pos!=a[i-].pos)
{
ans=ans*(sum-tmp+mod)%mod;
tmp=; cnt++;
}
if(a[i].pos==a[i-].pos&&a[i].val==a[i-].val) continue;
tmp=(tmp+a[i].val)%mod;
}
ans=(ll)ans*pow(sum,m-cnt,mod)%mod;
printf("%lld\n",ans);
return ;
}

bzoj 2751 [HAOI2012]容易题(easy)(数学)的更多相关文章

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

    2751: [HAOI2012]容易题(easy) 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2751 Description 为了使 ...

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

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

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

    2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1087  Solved: 477[Submit][ ...

  4. BZOJ2751: [HAOI2012]容易题(easy)

    2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 872  Solved: 377[Submit][S ...

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

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

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

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

  7. P2220 [HAOI2012]容易题[小学数学]

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

  8. 2018.11.07 bzoj2751: [HAOI2012]容易题(easy)(组合数学)

    传送门 组合数学一眼题. 感觉一直做这种题智商会降低. 利用组合数学的分步计数原理. 只用关心每个数不被限制的取值的总和然后乘起来就可以了. 对于大部分数都不会被限制,总和都是n(n+1)2\frac ...

  9. BZOJ 2751 容易题(easy) 快速幂+快速乘

    2751: [HAOI2012]容易题(easy) Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下:有一个数列A已知对于所有的A[i] ...

随机推荐

  1. Mysql数据库int(1)和tinyint(1)的区别&&扩展阅读

    转自:http://blog.csdn.net/phpwish/article/details/7845921 今天看项目的数据库结构设计,发现一个奇怪的地方. `xxx_detail`   `del ...

  2. ubuntu中一些软件的命令安装及设置

    ssh: sudo apt-get install openssh-server sudo apt-get install openssh-client

  3. Rebound-Android的弹簧动画库

    Rebound是facebook出品的一个弹簧动画库,与之对应的IOS版本有一个pop动画库,也是非常的强大给力.Facebook真是互联网企业中的楷模,开源了很多的实用开源库,大赞一个!!! 讲解R ...

  4. C# 时间函数

    DateTime dt = DateTime.Now; string str = dt.ToString("yyyy-MM-dd");//2013-09-07 str = dt.T ...

  5. Django admin site(三)InlineModelAdmin

    InlineModelAdmin class InlineModelAdminclass TabularInlineclass StackedInline 举例,有两个Model: from djan ...

  6. Win8-64位安装OpenSSL详细过程

    相关软件: 1.ActivePerl 5.22.1 : http://www.activestate.com/activeperl/downloads 2.Microsoft visual_studi ...

  7. 加密解密(11)HMAC-在sha1,md5基础上加密

    HMAC: Hash-based Message Authentication Code http://baike.sogou.com/v10977193.htm http://www.baike.c ...

  8. POJ 2409 Let it Bead(polay计数)

    题目链接:http://poj.org/problem?id=2409 题意:给出一个长度为m的项链,每个珠子可以用n种颜色涂色.翻转和旋转后相同的算作一种.有多少种不同的项链? 思路: (1) 对于 ...

  9. poj 3273 Monthly Expense(贪心+二分)

    题目:http://poj.org/problem?id=3273 题意:把n个数分成m份,使每份的和尽量小,输出最大的那一个的和. 思路:二分枚举最大的和,时间复杂度为O(nlog(sum-max) ...

  10. JAVA调用易信接口向指定好友推送消息(二)POST测试

    易信的API接口做的还算简单 http://open.yixin.im/document/oauth/api 根据指南上的步骤,利用易信提供的测试ID AppID(client_id): yxbbd0 ...