//线段树 延迟标签
//
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e4+5;
double x[maxn*4];
double y[maxn*4];
int degreen[maxn];
int d[maxn*4];//延迟标签
void rotate(int i,int num)
{
double ang=(1.0*num)/180*acos(-1);
double newx=x[i]*cos(ang)-y[i]*sin(ang);//向量逆时针转动后的x坐标;
double newy=x[i]*sin(ang)+y[i]*cos(ang);
x[i]=newx;
y[i]=newy;
}
void pushdown(int i)
{
d[i<<1]+=d[i];
d[i<<1|1]+=d[i];
rotate(i<<1,d[i]);
rotate(i<<1|1,d[i]);
d[i]=0;
}
void pushup(int i)
{
x[i]=x[i<<1]+x[i<<1|1];
y[i]=y[i<<1]+y[i<<1|1];
}
void build(int l,int r,int root)
{
d[root]=0;
if(l==r)
{
x[root]=0;
scanf("%lf",&y[root]);
return;
}
int mid=(l+r)>>1;
build(l,mid,root<<1);
build(mid+1,r,root<<1|1);
pushup(root);
}
void update(int index,int l,int r,int root,int ang)
{
if(l>=index)
{
rotate(root,ang);
d[root]+=ang;
return;
}
int mid=l+r>>1;
pushdown(root);
if(index<=mid)
update(index,l,mid,root<<1,ang);
update(index,mid+1,r,root<<1|1,ang);
pushup(root);
}
int main()
{
int n,c;
scanf("%d%d",&n,&c);
build(1,n,1);
for(int i = 1;i <= n;++i)
degreen[i]=180;
for(int i = 1;i <= c;++i)
{
int a,b;
scanf("%d%d",&a,&b);
update(a+1,1,n,1,b-degreen[a]);
degreen[a]=b;
printf("%.2lf %.2lf\n",x[1],y[1]);
}
return 0;
}

最新文章

  1. 介绍开源的.net通信框架NetworkComms框架 源码分析(五)ReservedPacketType
  2. iOS学习之Object-C语言内存管理高级
  3. 纯JS画点、画线、画圆的方法
  4. Java实现MySQL在线管理
  5. 关于Eclipse中的快捷键占用的解决.
  6. ORACLE Install (10g r2) FOR Red Hat Enterprise Linux Server release 5.5 (64 bit) (转)
  7. asp.net 后台任务作业框架收集
  8. Structured-Streaming之窗口操作
  9. haproxy + keepalived 实现网站高可靠
  10. Android开发之漫漫长途 X——Android序列化
  11. Django学习-12-模板继承
  12. 利用ATiny85制作BadUSB
  13. 使用原生php爬取图片并保存到本地
  14. 广州.NET微软技术俱乐部 微信群有用信息集锦
  15. hdu-1728(贪心&amp;&amp;bfs的灵活运用吧)
  16. hdu3516 Tree Construction (区间dp+四边形优化)
  17. JDK7+EclipseIDE+Tomcat7.0.55++mybatis3+Maven3.2.2 构建webapp 的java 的maven项目
  18. mini-css-extract-plugin简介
  19. PHP中的urlencode,rawurlencode和JS中的encodeURI,encodeURIComponent
  20. ReentrantReadWriteLock源码分析(一)

热门文章

  1. nil/Nil/NULL/NSNull
  2. 从javascript 调用angular的函数
  3. 解决安装fiddler后IE打开网页提示“代理服务器无响应”
  4. Anatomy of a Database System学习笔记 - 事务:并发控制与恢复
  5. python 列表生成式,生成器&amp;迭代器
  6. Spring MVC配置实例
  7. Delphi ClientDataSet 主从结构 BUG
  8. MongoDB(1)--MongoDB安装及简介
  9. Python第9天
  10. 接口--Comparable接口【哈夫曼树】