社区讨论
一个玄学问题求助,悬关
学术版参与者 3已保存回复 18
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 18 条
- 当前快照
- 1 份
- 快照标识符
- @mhj3lg33
- 此快照首次捕获于
- 2025/11/03 20:10 4 个月前
- 此快照最后确认于
- 2025/11/03 20:44 4 个月前
下面代码在不同的电脑(都是NOIlinux)上,同一个输入有不同的输出,请问是为什么?
CPP#include<bits/stdc++.h>
#define file(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout);
#define io ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
#define double long double
#define lop(i,a,b) for(int i=a;i<=b;i++)
#define pol(i,a,b) for(int i=a;i>=b;i--)
#define fi first
#define se second
#define pb push_back
#define mset(a,v) memset(a,v,sizeof a)
using namespace std;
const int NN=1e5+5;
int n,k,L;
int d[NN],b[NN];
bool dir[NN];
double t[NN];
int add[NN],tmp[NN];
signed main(){
file("glow");
cin>>n>>k>>L;
lop(i,1,n){
cin>>d[i]>>b[i];
char ch;cin>>ch;
if(ch=='D')dir[i]=1;
if(dir[i]==1){
t[b[i]]+=2*(L-d[i]);
}
}
int all=0;
lop(i,1,n){
add[0]+=d[i]-d[i-1];
if(dir[i]==1){
all=(all+b[i])%k;
lop(j,0,k-1)tmp[j]=add[j],add[j]=0;
lop(j,0,k-1)add[(j+b[i])%k]=tmp[j];
}else{
lop(j,0,k-1)t[(j+b[i])%k]+=add[j];
t[(b[i]+all)%k]+=d[i];
}
}
lop(i,0,k-1)printf("%.1Lf\n",t[i]/2.0);
return 0;
}/*
读懂题了,不只是看最后的颜色
*/
回复
共 18 条回复,欢迎继续交流。
正在加载回复...