扩大精度+思维——poj3347

Posted zsben991126

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩大精度+思维——poj3347相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
#define N 305

int n,a[N],b[N];//把边长当做中心到顶点的距离 
int L[N],R[N];

int main(){
    while(scanf("%d",&n) && n){
        for(int i=1;i<=n;i++)cin>>a[i];
        b[1]=a[1];
        for(int i=2;i<=n;i++){
            int pos=a[i];
            for(int j=1;j<i;j++){
                if(a[j]<a[i])pos=max(pos,b[j]+2*a[j]);
                else pos=max(pos,b[j]+2*a[i]);
            }
            b[i]=pos;
        }
        //for(int i=1;i<=n;i++)cout<<b[i]<<" ";
        int nowR=0;
        for(int i=1;i<=n;i++){
            R[i]=nowR;
            nowR=max(nowR,b[i]+a[i]);
        }
        int nowL=0x3f3f3f3f;
        for(int i=n;i>=1;i--){
            L[i]=nowL;
            nowL=min(nowL,b[i]-a[i]);
        }
        int flag=0;
        for(int i=1;i<=n;i++)
            if(L[i]>R[i] && R[i]<b[i]+a[i] && L[i]>b[i]-a[i]){
                if(flag==0){
                    cout<<i;
                    flag=1;
                }
                else cout<<" "<<i;
            }
        puts("");
    }
}

 

以上是关于扩大精度+思维——poj3347的主要内容,如果未能解决你的问题,请参考以下文章

POJ 3347 Kadj Squares

POJ3347:Kadj Squares——题解

poj 3347

POJ 3347 Kadj Squares(计算几何)

POJ3347 Kadj Squares(计算几何&区间覆盖)

POJ 3347 Kadj Squares (线段覆盖)