题解 P5646 【ygg的题库】
Natsume_Rin · · 题解
其实这一题很简单,不要被那个蓝色的标签迷惑了!
只要你看得懂这个式子,就基本能写出来。
i的枚举其实就是保证前i个数字大于0。
你只要给出一种方案就行了。
Code
当然,我定义变量有点奇怪(大佬勿喷)。
#include<bits/stdc++.h>
using namespace std;
double x;
bool c;
int f[100005];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>x;
cin>>c;
if(c==1){
if(x>0) f[i]=1;
else f[i]=-1;
}
else{
if(x>0) f[i]=-1;
else f[i]=1;
}
}
int k=1;
while(1){
puts("请勿抄袭");
}
double yyu=1;
if(f[n]!=1){
k=-1;
yyu=-1;
}
for(int i=1;i<=n;i++){
if(k==1&&f[i]!=1) yyu=-yyu-1;
if(k==-1&&f[i]!=-1) yyu=-yyu+1;
printf("%0.5lf ",yyu);
}
return 0;
}