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

思路:找到平行四边形以后,变换坐标:y->y-kx,k为斜率,这样变成了矩形,然后只要二维树状数组就行了、

注意可能因为取余的原因,把一个平行四边形拆成两半

  1. #include<algorithm>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<cstring>
  5. #include<iostream>
  6. int len2,len,len4,n;
  7. int tr[][][];
  8. int x[],y[];
  9. int lowbit(int X){
  10. return (X)&(-X);
  11. }
  12. int read(){
  13. int t=,f=;char ch=getchar();
  14. while (ch<''||ch>''){if (ch=='-') f=-;ch=getchar();}
  15. while (''<=ch&&ch<=''){t=t*+ch-'';ch=getchar();}
  16. return t*f;
  17. }
  18. void add(int k,int x,int y,int c){
  19. x++;y++;
  20. for (int i=x;i<=len2;i+=lowbit(i))
  21. for (int j=y;j<=len4;j+=lowbit(j))
  22. tr[k][i][j]+=c;
  23. }
  24. int sum(int k,int x,int y){
  25. if (x<||y<) return ;
  26. x++;y++;
  27. int ans=;
  28. if (x>len2) x=len2+;
  29. if (y>len4) y=len4+;
  30. for (int i=x;i;i-=lowbit(i))
  31. for (int j=y;j;j-=lowbit(j))
  32. ans+=tr[k][i][j];
  33. return ans;
  34. }
  35. int sum(int k,int x1,int y1,int x2,int y2){
  36. return sum(k,x2,y2)+sum(k,x1-,y1-)-sum(k,x2,y1-)-sum(k,x1-,y2);
  37. }
  38. int main(){
  39. n=read();len=read();len2=len<<;len4=len2<<;
  40. while (n--){
  41. int opt=read();
  42. if (opt==){
  43. int t=read(),c=read(),l=read(),r=read(),d=read();
  44. x[c]=(t-d*l+len2)%len2;
  45. y[c]=r-l;
  46. add(,x[c],y[c]+x[c],);
  47. add(,x[c],y[c]-x[c]+len2,);
  48. }else
  49. if (opt==)
  50. {
  51. int t=read(),l=read(),r=read();
  52. t%=len2;
  53. int k=(r==len);
  54. int ans=sum(,t,l+t,r+t,len4)+sum(,,l+t-len2,r+t-len2-k,len4)
  55. +sum(,t-r+len2+k,l-t,len2,len4)+sum(,t-r,l-t+len2,t-,len4);
  56. printf("%d\n",ans);
  57. }else{
  58. int t=read(),c=read();
  59. add(,x[c],y[c]+x[c],-);
  60. add(,x[c],y[c]-x[c]+len2,-);
  61. }
  62. }
  63.  
  64. }

BZOJ 1062 糖果雨的更多相关文章

  1. 【BZOJ 1062】 1062: [NOI2008]糖果雨 (二维树状数组)**

    1062: [NOI2008]糖果雨 Description 有一个美丽的童话:在天空的尽头有一个" 糖果国" ,这里大到摩天大厦,小到小花小草都是用糖果建造而成的.更加神奇的是, ...

  2. [NOI2008]糖果雨

    bzoj1062[Noi2008]糖果雨 首先给出的颜色没有用. 估计要用数据结构.而线段难以维护. 考虑把线段变成点 T是单增的. 所以询问的时候,存在的线段都可能贡献答案. 那些线段的位置如果可以 ...

  3. [bzoj1062] [NOI2008]糖果雨

    Description 有一个美丽的童话:在天空的尽头有一个" 糖果国" ,这里大到摩天大厦,小到小花小草都是用糖果建造而成的.更加神奇的是,天空中飘满了五颜六色的糖果云,很快糖果 ...

  4. 1062: [NOI2008]糖果雨 - BZOJ

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1062 神题一个,直接讲思路了(全都是看别人的) 首先我们把一个云用一个平面上的点( ...

  5. BZOJ 1062: [NOI2008]糖果雨(二维树状数组)

    首先嘛,这道题是非同一般的恶心= = 然后首先膜拜一下CDQ大神ORZ在考场上A了这道题ORZ 这道题看到的话,我是先想把云朵化成在0s时的位置,但很容易发现这样只能单点查询而不能查询整段 结果只能膜 ...

  6. BZOJ 2330 糖果

    Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的 ...

  7. [BZOJ]1045 糖果传递(HAOI2008)

    放一道数学题. Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正整数n<=1000000,表示 ...

  8. BZOJ 2330 糖果 差分约束求最小值

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2330 题目大意: 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果 ...

  9. BZOJ 1045 糖果传递(思维)

    设第i个人给了第i+1个人mi个糖果(可以为负),因为最后每个人的糖果都会变成sum/n. 可以得到方程组 mi-mi+1=a[i+1]-sum/n.(1<=i<=n). 把方程组化为mn ...

随机推荐

  1. Delphi中ShellExecute使用详解(详细解释10种显示状态)

    有三个API函数可以运行可执行文件WinExec.ShellExecute和CreateProcess.1.CreateProcess因为使用复杂,比较少用.2.WinExec主要运行EXE文件.如: ...

  2. Qt5+VS2013兼容XP方法

    用Qt5+VS2013编译程序默认配置会在XP运行时报"不是有效的Win32程序"工作需要必须要XP运行 pro文件中加一句: 复制代码 QMAKE_LFLAGS_WINDOWS ...

  3. 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(1)--后端

    原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(1)--后端 chsakell分享了前端使用AngularJS,后端使用ASP.NET Web API的购物车 ...

  4. 负载均衡 > 常见问题

    证书管理相关问题 常用证书申请流程 1.本地生成私钥:openssl genrsa -out privateKey.pem 2048 其中privateKey.pem为您的私钥文件,请妥善保管. 2. ...

  5. unix c 03

    C程序员的错误处理   errno/perror/strerror 都是系统设计好的   自定义函数中的错误处理    1 可以返回-1 代表错误    2 指针类型可以用 NULL 代表错误    ...

  6. VM虚拟机安装苹果雪豹操作系统

    1.win xp虚拟机安装Mac OSX 一.用VM8安装mac os x10.6 ,然后升级到的10.6.8,如何安装vm大家自己百度吧.这里指列出了如何安装雪豹操作系统. DMG是mac os x ...

  7. 【POJ2739】Sum of Consecutive Prime Numbers

    简单的素数打表,然后枚举.开始没注意n读到0结束,TLE了回..下次再认真点.A过后讨论里面有个暴力打表过的,给跪了! #include <iostream> #include <c ...

  8. safari浏览器cookie问题

        这个题目可能有点大了,这里主要讨论一种解决safari浏览器阻止第三方cookie问题.       场景       公司存在多个域名(a.com,b.com,co.com)这些域名应该统一 ...

  9. [置顶] Objective-C ,ios,iphone开发基础:在UITextField输入完以后,隐藏键盘,

    在x-code Version 4.3.2 (4E2002)下编译: 在 Controller. m 文件下添加如下实例方法即可: - (void)viewDidUnload { [super vie ...

  10. 提高xshell使用效率

    1.快速命令集. 2.鼠标复制粘贴设置. 3.配色方案. 4.esc切换到英文输入. 设置入口: