题目:
10 5
2 0.59
2 4.956
1 0.997
1 1.364
1 1.242
1 0.82
2 2.824
1 0.716
2 0.178
2 4.094
1 6 -953188 -946637
1 9 969538 848081
4 7 -114758 522223
1 9 -535079 601597
8 8 159430 -511187
解题代码:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;//分别表示操作和查询个数
cin>>n>>m;
int a[n]={0};
double b[n]={0};
for(int i=0;i<n;i++){
cin>>a[i]>>b[i];
}
int I[m],J[m];
double x[m],y[m];
for(int i=0;i<m;i++){
cin>>I[i]>>J[i]>>x[i]>>y[i];
}
for(int i=0;i<m;i++){
for(int j=I[i]-1;j<J[i];j++){
if(a[j]==1){
x[i]=x[i]*b[j];
y[i]=y[i]*b[j];
}
if(a[j]==2){
double t=x[i];
double p=y[i];
x[i]=t*cos(b[j])-p*sin(b[j]);
y[i]=t*sin(b[j])+p*cos(b[j]);
}
}
cout<<fixed<<setprecision(3)<<x[i]<<" "<<fixed<<setprecision(3)<<y[i]<<endl;
}
}