#4719. 내부 볼륨

18306 단어

제목 설명


알려진 평면에서 n n n 개의 점, 점 세트 S S S 는 내부 볼록 패킷이며 다음 경우에만 해당됩니다.
4
  • S S S는 어떤 점 집합의 볼록 패키지이다

  • 4
  • SS로 구성된 볼록 다각형이 GG라고 설정하면 SSS 이외의 점은 GG의 가장자리에 있거나 GG 밖에 있다

  • 내철포로 구성된 볼록 다각형의 면적을 최대화해 보세요.

    문제풀이


    먼저 우리는 매거점 O O O를 볼록 가방의 가장 아래 점으로 고려한 다음에 그 위의 점을 꺼내 극각에 따라 정렬한다.우리는 극각 순서에 따라 점을 얻었기 때문에 우리는 dp\text{dp}dp: dp: f[i] [j] [j] f[i] [j] [i] [j]가 돌포의 마지막 점은 ii이고 그 다음은 jjj의 최대 면적을 설계할 수 있다. 우리는 이동식을 얻을 수 있다. f[i] [j] [j] [j] [j] = m a x [f] [j] [f[j] [j] [k] [k] [k] + [k] + [k] + S] + S(O, i, i, i) f[i] [i] [i] [i] [i] [i] [i] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] [j] (O, i, j)}, 여기서 k < j kk최적화를 고려하면 ii의 경우 Oi Oi Oi에서 시작하여 극각이 가장 큰 jj를 찾아내면 Oi Oi 아래에 있고 OO O를 i i, ii i를 jj로 설정하면 이런 점들이 Oi j Oij 안에 다른 점이 없다는 것을 알 수 있다. 그리고 우리는 g[i] [j] = ma x [f] [k] g[i]그 중에서 k주로 돌출된 가방의 구축 과정을 고찰하는 것이기 때문에 사고방식이 없어서는 안 된다.

    코드

    #include 
    using namespace std;
    int T,n,m,s,f[55][55],c[55];
    struct O{int x,y;}b[55],a[55];
    O operator -(O A,O B){
    	return (O){A.x-B.x,A.y-B.y};
    }
    int operator *(O A,O B){
    	return A.x*B.y-A.y*B.x;
    }
    int S(O A){
    	return A.x*A.x+A.y*A.y;
    }
    bool cmp(O A,O B){
    	return A*B<0 || (A*B==0 && S(A)<S(B));
    }
    void W(){
    	memset(f,0,sizeof f);
    	sort(a+1,a+m+1,cmp);
    	for (int j,k,t,v,i=2;i<=m;i++){
    		j=i-1;t=0;
    		while(j && a[j]*a[i]==0) j--;
    		while(j){
    			c[++t]=j;k=j-1;v=a[i]*a[j];
    			while(k && (a[k]-a[j])*(a[i]-a[j])<0) k--;
    			if (k) v+=f[j][k];
    			f[i][j]=v;s=max(v,s);j=k;
    		}
    		for (int u=t-1;u>0;u--)
    			f[i][c[u]]=max(f[i][c[u]],f[i][c[u+1]]);
    	}
    }
    void work(){
    	scanf("%d",&n);s=0;
    	for (int i=1;i<=n;i++)
    		scanf("%d%d",&b[i].x,&b[i].y);
    	for (int i=1;i<=n;i++){
    		m=0;
    		for (int j=1;j<=n;j++){
    			if (b[j].y>b[i].y || (b[j].y==b[i].y && b[j].x>b[i].x))
    				a[++m]=b[j]-b[i];
    		}
    		W();
    	}
    	printf("%.1lf
    "
    ,1.*s/2); } int main(){for (cin>>T;T--;work());return 0;}

    좋은 웹페이지 즐겨찾기