#include<stdio.h>#include<algorithm>usingnamespacestd;#define MIN -987654321intN,M;doublecache[301][301];doublep[305]={0,};doublecalc(intpoint,intcount){if(count==1)return0;if(cache[point][count]!=0.0)returncache[point][count];doublemax=MIN;for(inti=point-1;i>=count-2;i--){doubletmp=calc(i,count-1);if(tmp>p[point]-p[i]||tmp==0)tmp=p[point]-p[i];if(max<tmp)max=tmp;}returncache[point][count]=max;}intmain(){intT;scanf("%d",&T);while(T--){scanf("%d %d",&M,&N);for(inti=0;i<N;i++){for(intj=0;j<=M;j++)cache[i][j]=0.0;scanf("%lf",&p[i]);}printf("%.2lf\n",calc(N-1,M));}return0;}
D[i][j] =i개까지의 정류소? 를 써서 .. 카메라를 j개 달았을때의 최대값 = max( min(D[i-1][j-1],point[i]-point[i-1]),
min(D[i-2][j-1],point[i]-point[i-2]),
min(D[i-3][j-1],point[i]-point[i-3]),...,)
점화식을 위처럼 세워서 풀었는데 계속 WA에 부딪히네요..
구글에서 책에있는 이분법을 구현한 코드를 갖고
데이터를 난수를 생성해 답을 비교해봐도, 제 것이 오래걸리면 오래걸려도 답은 똑같이 뜨는데 말입니다 ㅠㅠ
skan1543
DARPA
D[i][j] =i개까지의 정류소? 를 써서 .. 카메라를 j개 달았을때의 최대값 = max( min(D[i-1][j-1],point[i]-point[i-1]),
min(D[i-2][j-1],point[i]-point[i-2]),
min(D[i-3][j-1],point[i]-point[i-3]),...,)
점화식을 위처럼 세워서 풀었는데 계속 WA에 부딪히네요..
구글에서 책에있는 이분법을 구현한 코드를 갖고
데이터를 난수를 생성해 답을 비교해봐도, 제 것이 오래걸리면 오래걸려도 답은 똑같이 뜨는데 말입니다 ㅠㅠ
왜 WA가 뜨는 걸까요...?
8년 전