暑期集训出的第一道一血 感觉自己萌萌哒……
这道题本身并没有坑点 仅仅是翻译巨坑……
解大腿在做B 安学长在做E 我闲着也没事 就一个词一个词翻译F……
最后感觉……
题干大多数都看不懂……
也都没啥用……
大概呢……
就是给你n个点……
m条回路……
问你哪条回路是最外面的……
总之最后就是让你求哪个回路组成的图形面积最大……
考点就是多边形面积公式……
怕有误差就没加/2……
好像加了也能过吧……
WA了两次 一次是选错点了 一次是第一个点和最后一个点顺序反了……
1 #include<stdio.h> 2 #include<string.h> 3 struct point{ 4 int x,y; 5 }p[1005]; 6 int area(point a,point b){ 7 return ((a.x*b.y)-(b.x*a.y)); 8 } 9 int main(){ 10 int T; 11 scanf("%d",&T); 12 while(T--){ 13 int n; 14 scanf("%d",&n); 15 for(int i=1;i<=n;i++) 16 scanf("%d%d",&p[i].x,&p[i].y); 17 int m,q; 18 int s[1005]; 19 int maxn=-1; 20 int flag; 21 scanf("%d",&m); 22 for(int i=1;i<=m;i++){ 23 scanf("%d",&q); 24 int now=0; 25 scanf("%d",&s[0]); 26 for(int j=1;j<q;j++){ 27 scanf("%d",&s[j]); 28 now+=area(p[s[j-1]],p[s[j]]); 29 } 30 now+=area(p[s[q-1]],p[s[0]]); 31 if(now>maxn){ 32 maxn=now; 33 flag=i; 34 } 35 } 36 printf("%d ",flag); 37 } 38 return 0; 39 }