[BZOJ]2751: [HAOI2012]容易题(easy) 暴力+快速幂
来源:互联网 发布:网络优化大师.apk 编辑:程序博客网 时间:2024/05/29 14:27
Description
为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下:
有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取哪些值,我们定义一个数列的积为该数列所有元素的乘积,要求你求出所有可能的数列的积的和 mod 1000000007的值,是不是很简单呢?呵呵!
题解:
能mod就mod,有减法就转正。
代码:
#include<bits/stdc++.h>using namespace std;#define LL long longconst int Maxn=100010;const LL mod=1000000007;int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();} return x*f;}int n,m,k,h;struct A{int pos,x;}a[Maxn];bool cmp(A a,A b){return (a.pos!=b.pos)?a.pos<b.pos:a.x<b.x;}map<int,bool>mark;LL Pow(LL x,int y){ if(!y)return 1; if(y==1)return x%mod; LL t=Pow(x,y>>1),ans=t*t%mod; if(y&1)ans=ans*x%mod; return ans;}int main(){ n=read();h=m=read();k=read(); for(int i=1;i<=k;i++) { a[i].pos=read();a[i].x=read(); if(!mark[a[i].pos])mark[a[i].pos]=true,h--; } LL sum=((1LL+n)*n/2LL)%mod,now=1,ans=Pow(sum,h); sort(a+1,a+1+k,cmp); a[0].pos=a[k+1].pos=0; for(int i=1;i<=k+1;i++) { if(a[i].pos!=a[i-1].pos) { ans=ans*now%mod; now=(sum-(LL)(a[i].x)+mod)%mod; } else if(a[i].x!=a[i-1].x)now=(now-a[i].x+mod)%mod; } printf("%lld",ans);}
阅读全文
1 0
- [BZOJ]2751: [HAOI2012]容易题(easy) 暴力+快速幂
- bzoj 2751: [HAOI2012]容易题(easy) (快速幂+数论)
- 2751: [HAOI2012]容易题(easy) 快速幂
- 2751: [HAOI2012]容易题(easy)|快速幂
- 【BZOJ】【P2751】【HAOI2012】【容易题(easy)】【题解】【快速幂】
- 【bzoj 2751】[HAOI2012]容易题(easy)
- [BZOJ 2751] && [HAOI2012] 容易题(easy)
- bzoj 2751: [HAOI2012]容易题(easy)
- BZOJ 2751 [HAOI2012]容易题(easy)
- 【bzoj 2751】 [HAOI2012]容易题(easy)
- bzoj 2751: [HAOI2012]容易题(easy) 数学
- BZOJ 2751 [HAOI2012]容易题(easy) 数学
- 【BZOJ2751】【HAOI2012】容易题(easy) 快速幂快速乘
- 2751: [HAOI2012]容易题(easy)
- [bzoj2751]: [HAOI2012]容易题(easy)(快速幂)
- BZOJ 2751 [HAOI2012]容易题 数学
- bzoj2751 [HAOI2012]容易题(easy)
- bzoj2751 [HAOI2012]容易题(easy)
- android 百分比优先级的问题
- XML文档--DTD
- Linux 进程管理之四大名捕
- 防止重复提交
- C++类型范围和负数取模运算规则。
- [BZOJ]2751: [HAOI2012]容易题(easy) 暴力+快速幂
- 2017年扶贫日活动将在10月9日启动
- Search in Rotated Sorted Array
- 【C#】C#学习之方法
- 最大流 模板
- Mining Your Own Business 点双连通分量
- 案例一:集群推送消息
- vSAN架构细节-分布式RAID
- 解决Ubuntu16.04系统耳机无声音问题