題意:有n棵樹,每棵樹有座標,價值,和用作籬笆的長度,求選擇幾棵樹做籬笆後,圍住剩下的樹的總價值最高的方案,如果相同價值,就取用做籬笆的樹最少的一種
#include#include#include#include#include#include#include#includeusing namespace std;
#define rd(x) scanf("%d",&x)
#define rdd(x,y) scanf("%d%d",&x,&y)
#define rddd(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define rdddd(x,y,z,w) scanf("%d%d%d%d",&x,&y,&z,&w)
#define rds(s) scanf("%s",s)
#define rep(i,n) for(int i=0;i0;
}}point p[20],convex[20];
double solve(point p,int n)
double ans=0;
if(top<=1) return 0;
else if(top==2) return dist(convex[0],convex[1]);
elseelse
}double len=solve(tp,sz);
int ret=sgn(use_len-len);
if(ret>=0){
int t=sgn(v-left_v);
if(t>0){
left_v=v;
use_num=cnt;
extra=use_len-len;
for(int j=0;jcnt){
use_num=cnt;
extra=use_len-len;
for(int j=0;j
POJ 水題若干
poj 3176 cow bowling 這道題可以算是dp入門吧。可以用乙個二維陣列從下向上來搜尋從而得到最大值。優化之後可以直接用一維陣列來存。ps 用一維的時候要好好想想具體應該怎麼存,還是有技巧的 include include include includeusing namespace ...
POJ 水題若干
poj 1013 counterfeit dollar 題意 有一打硬幣,其中有乙個是假幣,質量可能較輕,也可能較重。通過三次稱重將假幣找出。由於計算機很難模仿人的想法來實現問題。這道題我糾結了很久。最後我是通過一一枚舉的笨方法做的。就是從a硬幣開始到l硬幣結束,一一假設其為假幣,其中又分為輕和重。...
POJ水題初級
初期 一.基本演算法 1 列舉.poj1753,poj2965 2 貪心 poj1328,poj2109,poj2586 3 遞迴和分治法.4 遞推.5 構造法.poj3295 6 模擬法.poj1068,poj2632,poj1573,poj2993,poj2996 二.圖演算法 1 圖的深度優先...