hdu-4533-威威猫系列故事――晒被子----
2014-02-16 21:54
134 查看
/article/8350602.html
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<algorithm> #include<iostream> using namespace std; #define ll __int64 #define N 200005 ll a ,b ,c ; ll d,e,f,g; void add(ll s,ll t,ll A,ll B,ll C) { a[s]+=A; a[t+1]-=A; b[s]+=B; b[t+1]-=B; c[s]+=C; c[t+1]-=C; } void insert(ll x1,ll y1,ll x2,ll y2) { ll t1=max(x1,y1); ll t2=min(x2,y2); ll t3=max(x2,y2); if(t2>t1) add(t1+1,t2,1,-(x1+y1),x1*y1); else t2=t1; if(y2>x2) add(t2+1,t3,0,x2-x1,-y1*(x2-x1)); else if(x2>y2) add(t2+1,t3,0,y2-y1,-x1*(y2-y1)); add(t3+1,200000,0,0,(x2-x1)*(y2-y1)); } int main() { int t; cin>>t; while(t--) { int n; cin>>n; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); while(n--){ scanf("%I64d%I64d%I64d%I64d",&d,&e,&f,&g); insert(d,e,f,g); } int i; for(i=1;i<=200001;i++) { a[i]+=a[i-1]; b[i]+=b[i-1]; c[i]+=c[i-1]; } int k; cin>>k; while(k--) { ll h; scanf("%I64d",&h); printf("%I64d\n",h*h*a[h]+h*b[h]+c[h]); } } }
相关文章推荐
- HDU 4533 威威猫系列故事——晒被子
- HDU-4533 威威猫系列故事——晒被子 数学分析
- HDU 4533 威威猫系列故事――晒被子(线段树区间更新+分情况推公式)
- hdu 4533 威威猫系列故事——晒被子
- hdu 4533 威威猫系列故事——晒被子(两种方法)
- hdu 4533 威威猫系列故事——晒被子(线段树 成端更新)
- HDU 4533 威威猫系列故事——晒被子
- hdu 4533 威威猫系列故事——晒被子
- hdu 4533 威威猫系列故事——晒被子(成段更新)
- HDU 4533 威威猫系列故事——晒被子
- HDU-4533:威威猫系列故事——晒被子(线段树延迟更新+推公式)
- HDU-4533 威威猫系列故事——晒被子(区间更新)
- Hdu 4533 威威猫系列故事——晒被子
- hdu 4533 威威猫系列故事――晒被子(二重等差数列+差分前缀和)
- HDU 4533 威威猫系列故事――晒被子 (线段树)
- HDOJ 4533 威威猫系列故事——晒被子
- Hdu 4525 威威猫系列故事——吃鸡腿
- 【腾讯第二届校园编程马拉松】HDU-4525,威威猫系列故事——吃鸡腿
- HDU - 4540 威威猫系列故事——打地鼠(dp之路)
- HDU 威威猫系列故事——篮球梦