給出平面上4≤n
≤300
4\leq n\ \leq300
4≤n≤30
0個點,然後要求取四個點構成多邊形,並且面積最大。然後題目特別說明了不保證多邊形是凸多邊形。
列舉四個點太慢,不妨把凸多邊形分解為兩個三角形,然後列舉多邊形的對角線,再列舉所有的點用叉積判斷點是否在直線的上方和下方並且更新答案。
乙個細節就是要保證算出來的是多邊形,而不是存在三點或者四點共線的情形。
時間複雜度o(n
3)
o(n^3)
o(n3
)
#includeusing namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
const ll inf=long_long_max;
const int n=305;
struct point
point(double _x,double _y):x(_x),y(_y) {}
point operator - (const point &rhs)
}a[n];
typedef point vector;
double det(vector a,vector b)
int main()
}if(ans1>0&&ans2>0)
ans=max(ans,ans1+ans2);
} }printf("%0.6lf\n",ans);
return 0;
}
Codeforces 340E 錯排問題dp
給出一串長度為n的序列a,將1 n填入序列中 1的位置,使得整個序列是乙個1 n的排列,而且保證a i i,問一共有多少種構造方案。錯排問題,這裡有了限制條件,有些位置已經被數字填過。這裡將數字分成不同的型別 已經被用過的數不用考慮 沒有被用過的數,但自己的位置已經被占用,這種數為無限制數,因為可以...
CODEFORCES 535B 解題報告
仍然是水題,但是還是有可以說的地方。主要思路就是dfs可重排列。4,7組成的幸運數字,在n位數字的構造方式有2 n種,而資料是最多9位,則列舉只有512種,n 2的複雜度足矣。只列舉相應位數的4 7排列,前面的個數用2 n累加。只要遵循先選4再選7即可構造字典順序,然後查詢相應數。以下是 可直接ac...
CodeForces 816B(區間計數)
codeforces 816b 題意 給出n個區間和乙個k值,再給出q次詢問,每次詢問給出乙個區間,要求這個區間中的數在開始的n區間中出現次數不少於k次的數目。解法 將n個區間的每個數每出現一次就加一,最後統計q詢問的區間中不小於k的數的個數。寫這題主要是想講乙個常用的區間更新的方法,其實這題也可以...