bzoj1227[SDOI2009]虔诚的墓主人
来源:互联网 发布:全球购淘宝店直播条件 编辑:程序博客网 时间:2024/04/30 21:46
神TM啊,祝卡bzoj的人全家原地爆炸螺旋升天。
。。
分析:用树状数组维护一下上下的组合数,离散坐标,然后直接算就好了。。
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define T 101#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;const int N=1e5+5;const int inf=2147483647;struct node{ int x,y,u,d,id;}a[N];int n,m,w,k;int s[N],id[N],cnt;int c[N][15];int num[N];inline int lowbit(int x){ return x&(-x);}bool cmpx(node a,node b){ if (a.x==b.x)return a.y<b.y; else return a.x<b.x;}bool cmpy(node a,node b){ if (a.y==b.y)return a.x<b.x; else return a.y<b.y;}inline int sum(int x){ int ans=0; while (x>=1)ans+=s[x],x-=lowbit(x); return ans;}inline void add(int x,int y){ while (x<=cnt) { s[x]+=y; x+=lowbit(x); }}int main(){ scanf("%d%d%d",&n,&m,&w); fo(i,1,w)scanf("%d%d",&a[i].x,&a[i].y); a[0].x=a[0].y=a[w+1].x=a[w+1].y=-1; scanf("%d",&k); c[0][0]=1; fo(i,1,w) { c[i][0]=1; fo(j,1,k) c[i][j]=c[i-1][j]+c[i-1][j-1]; } sort(a+1,a+w+1,cmpx); fo(i,1,w) if (a[i].x==a[i-1].x) { a[i].d=a[i-1].d+1; a[i].id=cnt; } else a[i].id=++cnt; fd(i,w,1) if (a[i].x==a[i+1].x) { a[i].u=a[i+1].u+1; } else a[i].u=1; int tmp=0; sort(a+1,a+1+w,cmpy); fo(i,1,w) { tmp++; if (a[i].y!=a[i+1].y)num[i]=tmp,tmp=0; } fd(i,w,1) if (a[i].y==a[i+1].y)num[i]=num[i+1]; tmp=0; int ans=0; fo(i,1,w) { tmp++; if (a[i].y!=a[i+1].y)tmp=0; else ans+=(c[tmp][k]*c[num[i]-tmp][k])*(sum(a[i+1].id-1)-sum(a[i].id)); add(a[i].id,-c[a[i].u][k]*c[a[i].d][k]+c[a[i].u-1][k]*c[a[i].d+1][k]); } printf("%d\n",ans&inf); return 0;}
0 0
- BZOJ1227: [SDOI2009]虔诚的墓主人
- 【SDOI2009】【BZOJ1227】虔诚的墓主人
- [BZOJ1227][SDOI2009]虔诚的墓主人
- 【SDOI2009】bzoj1227 虔诚的墓主人
- bzoj1227[SDOI2009]虔诚的墓主人
- bzoj1227: [SDOI2009]虔诚的墓主人
- bzoj1227 [SDOI2009]虔诚的墓主人
- BZOJ1227: [SDOI2009]虔诚的墓主人
- [BZOJ1227][SDOI2009]虔诚的墓主人
- 【BZOJ1227】【SDOI2009】虔诚的墓主人
- 【bzoj1227】【SDOI2009】【虔诚的墓主人】【组合数学+树状数组】
- [杂题 离散 扫描线] BZOJ1227: [SDOI2009]虔诚的墓主人
- [SDOI2009]虔诚的墓主人
- bzoj1227 虔诚的墓主人 树状数组
- bzoj1227 [SDOI2009]虔诚的墓主人(组合公式+离散化+线段树)
- 【BZOJ 1227】 [SDOI2009]虔诚的墓主人
- bzoj 1227: [SDOI2009]虔诚的墓主人
- bzoj 1227: [SDOI2009]虔诚的墓主人
- 高效编程之首字符大小写转换!
- C++ 标识符的作用域
- Android Studio中进行单元测试和UI测试
- 修改eclipse类、方法注释模板
- Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析]
- bzoj1227[SDOI2009]虔诚的墓主人
- Centos下防止ssh暴力破解密码的方法,有两个,我用了第一种,效果很好。
- [Elasticsearch] 向已存在的索引中添加自定义filter/analyzer
- 浅谈C++多态性
- Spring cloud
- 头结点有序递增
- Mysql InnoDB 比 MyISAM 更节省空间 ?
- java中使用队列
- 算法效果AB测试中的PV-UV不对称性