BZOJ 2751 [HAOI2012]容易题 数学
来源:互联网 发布:淘宝怎么改宝贝类目 编辑:程序博客网 时间:2024/05/19 22:46
题意:链接
方法:数学+瞎搞(注意取模问题)
解析:这题其实也没啥好说的,随便写写就出来了,我就直接挂几个过程。a[i].n 表示第i位第n种取值。
a[1].1∗a[2].1∗...∗a[n].1+
a[1].1∗...∗a[n].2+...+
a[1].1∗...∗a[n].x
=
a[1].1∗a[2].1∗...∗∑xi=1a[n]
同理局部分析每一项
得到结果
∑xi=1a[1]∗∑xi=1a[2]∗...∗∑xi=1a[n]
所以只要处理每一项的和就可以了。
后记:考试的时候脑残加了个map,明明用sort就能处理重复了好么!这题还要加离散化,根据数据范围来看。考试的时候取模没取模明白结果70分,所以索性都开long long 能取模的地方就取。
代码:
#include <stdio.h>#include <string.h>#include <algorithm>#define mod 1000000007#define N 100100using namespace std ;typedef long long ll ;struct node{ ll x , y ;};node a[N] ;ll n , m , k ;ll num[N] ;ll tot ;int cmp(node a , node b){ if(a.x == b.x) return a.y < b.y ; return a.x < b.x ;}ll quick_my(ll a , ll b){ ll ret = 1 ; while(b) { if(b&1)ret=(ret*a)%mod; a=(a*a)%mod; b/=2; } return ret ;}int main(){ scanf("%lld%lld%lld" , &n , &m , &k) ; for(int i = 1 ; i <= k ; i++) { scanf("%lld%lld" , &a[i].x , &a[i].y) ; } sort(a+1 , a+k+1 , cmp) ; for(int i = 1 ; i <= k ; i++) { if(a[i].x==a[i-1].x&&a[i].y==a[i-1].y) continue ; if(a[i].x!=a[i-1].x) { tot ++ ; num[tot] = (num[tot]+a[i].y)%mod ; continue ; } if(a[i].x==a[i-1].x&&a[i].y!=a[i-1].y) { num[tot] = (num[tot]+a[i].y)%mod ; continue ; } } ll tmp = ((n*(n+1))/2)%mod ; ll ans = quick_my(tmp,m-tot); for(int i = 1 ; i <= tot ; i++) { ans = (ans*((((tmp-num[i])%mod)+mod)%mod))%mod ; } printf("%lld\n" , ans) ;}
0 0
- BZOJ 2751 [HAOI2012]容易题 数学
- 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】【容易题】【数学】
- bzoj2751 [HAOI2012]容易题 数学
- BZOJ P2751:[HAOI2012]容易题
- bzoj 2751: [HAOI2012]容易题(easy) (快速幂+数论)
- [BZOJ]2751: [HAOI2012]容易题(easy) 暴力+快速幂
- 2751: [HAOI2012]容易题(easy)
- [BZOJ2751][HAOI2012]容易题(easy)(数学相关+stl)
- bzoj2751 [HAOI2012]容易题(数学+快速幂)
- 【BZOJ】【P2751】【HAOI2012】【容易题(easy)】【题解】【快速幂】
- 2751: [HAOI2012]容易题(easy) 快速幂
- 系统分析师笔记-信息化与系统集成技术
- 插入排序
- Python 数据库试水 整理微博poiid及其对应的经纬度
- 开通小博客
- 深入了解C语言
- BZOJ 2751 [HAOI2012]容易题 数学
- Git
- HDU 4751 — Divide Groups
- java核心技术之顺序查找算法
- leetcode-205 Isomorphic Strings
- Android 多个APK数据共享
- hdu 1208(记忆化搜索)
- java核心技术之折半查找算法
- Android学习第一天--搭建开发环境