POJ1039 列舉 求交點

2021-09-14 05:27:58 字數 1165 閱讀 7037

如果與每一條線段都能相交,那麼就是全部穿越了。

如果與第一條線段不相交,那麼這一條光線就不存在(無法在指定範圍內發射)。

如果與第i條線段不相交,那麼求直線與i,i-1上下兩條線段的交點,求橫座標最大值。

#include #include #include #include #include #include using namespace std;

int const n = 20 + 10;

double const eps = 1e-8;

double const inf = 1e9;

int n;

double ans;

typedef struct point;

point(double x,double y):x(x),y(y){};

point operator - (const point& e)const

point operator + (const point& e)const

double operator ^ (const point& e)const

double operator * (const point& e)const

}vector;

point up[n],down[n];

struct line;

line(point a,point b):a(a),b(b){}

}l[n];

int dcmp(double x)

bool onsegment(point p,point a1,point a2)

bool segment_intersection(line line1,line line2)

point intersection(point p,vector v,point q,vector w)

bool judge(line ll)

} return true; //全部穿過

}bool solve()

} return false;

}int main()

if(solve()) printf("through all the pipe.\n");

else printf("%.2f\n",ans);

} return 0;

}

POJ 1018 列舉 貪心

題意 有n件商品,每件商品有m個製造商,每個製造商製造的商品有不同的 頻寬和 每件商品必須選乙個製造商,最後的頻寬是所有頻寬中的最小值,價值是所有商品的總 目的是使b p最大,輸出最大的b p的值。思路 由於資料範圍比較小,所以可以列舉。可以求出所有製造商的商品的最大頻寬和最小頻寬,然後列舉在兩者之...

poj 2002 列舉 雜湊

給定n個點,求出這些點一共可以構成多少個正方形。sample input 4 1 00 1 1 10 0 90 0 1 02 0 0 21 2 2 20 1 1 12 1 4 2 5 3 70 0 5 20sample output 1 61可列方程 可以得出 知道兩點求出其餘兩點 x3 node ...

poj1873 列舉 凸包

題意 平面上有n棵樹,現在要砍掉其中的一部分來做成籬笆將剩下的樹包圍起來,現在給出每棵樹的座標 價值和可以製造籬笆的長度,求砍掉最少價值的樹,將剩下的樹包圍起來,當兩種方式的價值相同時,取砍掉樹更少的方式。由於樹棵樹不大於15,可以二進位制列舉情況,求出其它樹構成的凸包的周長即可 include i...