求助一道题
  • 板块学术版
  • 楼主rabbitdit
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/4/24 09:39
  • 上次更新2023/11/5 00:11:36
查看原帖
求助一道题
413801
rabbitdit楼主2021/4/24 09:39

http://acm.hdu.edu.cn/showproblem.php?pid=4576 同样的时间复杂度为什么同学AC我TLE AWA 我的程序:

#include<bits/stdc++.h>
using namespace std;
float a[201],b[201],c[1000001];
int n,m,l,r,w;
int i,j,k;
int num=1;
float ans=0;
int main() {
	while(1) {
		memset(b,0,n+1);
		memset(a,0,n+1);
		cin>>n>>m>>l>>r;
		if(n==0&&m==0&&l==0&r==0)break;
		for(i=0; i<m; i++) {
			scanf("%f",&c[i]);
		}
		a[1]=1;
		for(i=0; i<m; i++) {
			for(j=1; j<=n; j++) {
				num+=c[i];
				if(num>n) {
					num%=n;
				}
				b[num]+=a[j]*0.5;
				num-=c[i]*2;
				if(num<1) {
					num=num%n+n;
				}
				b[num]+=a[j]*0.5;
			}
			for(j=1;j<=n;j++){
				a[j]=b[j];
				b[j]=0;
			}
		}
		for(j=l;j<=r;j++){
				ans+=a[j];
		}
		printf("%.4f\n",ans);
		ans=0;
		num=1;
	}
	return 0;
}
2021/4/24 09:39
加载中...