uva 5108
2016-05-16 11:58
295 查看
题目:点我看题目
题意:给出一个凸多边形每次询问给出两点要求此两点的连线将此多边形分分割的两个部分面积的最小值
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<list>
#include<vector>
using namespace std;
const int maxn=50010;
struct Node{
double x,y;
}A[maxn];
double sum[maxn];
int main()
{
int n,i,j,k,a,b,q;
bool falg=false;
while(scanf("%d%d",&n,&q),n||q){
if(falg)printf("\n");falg=true;
sum[0]=0.0;
for(i=0;i<n;++i){
scanf("%lf%lf",&A[i].x,&A[i].y);
}
double ans=0;
for(i=0;i<n;++i){
ans=ans+(A[i].x*A[(i+1)%n].y-A[i].y*A[(i+1)%n].x);
sum[i+1]=sum[i]+(A[i].x*A[(i+1)%n].y-A[i].y*A[(i+1)%n].x);
}ans=fabs(ans/2.0);
while(q--){
scanf("%d%d",&a,&b);
double area=sum[b]-sum[a];
area=area+(A[b].x*A[a].y-A[b].y*A[a].x);
area=fabs(area/2.0);
printf("%.1lf\n",min(area,ans-area));
}
}
return 0;
}
题意:给出一个凸多边形每次询问给出两点要求此两点的连线将此多边形分分割的两个部分面积的最小值
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<list>
#include<vector>
using namespace std;
const int maxn=50010;
struct Node{
double x,y;
}A[maxn];
double sum[maxn];
int main()
{
int n,i,j,k,a,b,q;
bool falg=false;
while(scanf("%d%d",&n,&q),n||q){
if(falg)printf("\n");falg=true;
sum[0]=0.0;
for(i=0;i<n;++i){
scanf("%lf%lf",&A[i].x,&A[i].y);
}
double ans=0;
for(i=0;i<n;++i){
ans=ans+(A[i].x*A[(i+1)%n].y-A[i].y*A[(i+1)%n].x);
sum[i+1]=sum[i]+(A[i].x*A[(i+1)%n].y-A[i].y*A[(i+1)%n].x);
}ans=fabs(ans/2.0);
while(q--){
scanf("%d%d",&a,&b);
double area=sum[b]-sum[a];
area=area+(A[b].x*A[a].y-A[b].y*A[a].x);
area=fabs(area/2.0);
printf("%.1lf\n",min(area,ans-area));
}
}
return 0;
}
相关文章推荐
- 1.10055 - Hashmat the brave warrior
- 2.10071 - Back to High School Physics
- 3.458 - The Decoder
- 4.694 - The Collatz Sequence
- 6.494 - Kindergarten Counting Game
- 7.490 - Rotating Sentences
- 8.414 - Machined Surfaces
- 9.488 - Triangle Wave
- A.457 - Linear Cellular Automata
- B.489 - Hangman Judge
- C.445 - Marvelous Mazes
- 1.10494 - If We Were a Child Again
- 2.424 - Integer Inquiry
- 3.10250 - The Other Two Trees
- 5.465 - Overflow
- 6.113 - Power of Cryptography
- 7.10161 - Ant on a Chessboard
- 8.621 - Secret Research
- 9.401 - Palindromes
- A.537 - Artificial Intelligence?