题目
从官网得知
解法(暴力解法)
因为是暴力解法所以得分只有80 仅供参考
#include<iostream>
#include<vector>
#include<math.h>
#include<iomanip>
using namespace std;
vector<double>change_amount;
vector<int> change_type;
void change(int start,int end,double xi,double yi){
double k_sum=1;
double degree_sum=0;
for (int w = start-1; w < end; w++)
{
if(change_type[w]==1){
k_sum*=change_amount[w];
}
else{
degree_sum+=change_amount[w];
}
}
xi=xi*k_sum;
yi*=k_sum;
double temp_x=xi*cos(degree_sum)-yi*sin(degree_sum);
yi=xi*sin(degree_sum)+yi*cos(degree_sum);
cout<<fixed<<setprecision(3)<<temp_x<<" "<<yi<<endl;
}
int main(){
int n,m,type;
double amount;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>type>>amount;
change_type.push_back(type);
change_amount.push_back(amount);
}
int start,end;
double xi, yi;
for (int j = 0; j < m; j++)
{
cin>>start>>end>>xi>>yi;
change(start,end,xi,yi);
}
return 0;
}