This Takes the Cake 恶心的面积剖分 不过是水题
2012-08-12 10:11
435 查看
#include <iostream> #include <cmath> using namespace std; struct point { double x, y; }; double a1, a2, d, s; double area(int n, point* p) { double s1=0, s2=0; for(int i=0; i<n; i++) s1 += p[(i+1)%n].y*p[i].x, s2 += p[(i+1)%n].y*p[(i+2)%n].x; return fabs(s1-s2)/2; } void check(double s1) { double s2 = s - s1; double ds = fabs(s1 - s2); if(ds < d) { if(s1 > s2) swap(s1, s2); d = ds, a1 = s1, a2 = s2; } } void solve(point *p) { point p1[4], p2[4]; int i; for(i=0; i<4; i++) p1[i].x = (p[i].x+p[(i+1)%4].x)/2, p1[i].y = (p[i].y+p[(i+1)%4].y)/2; for(i=0; i<4; i++) { p2[0] = p[i], p2[1] = p[(i+1)%4], p2[2] = p[(i+2)%4]; check(area(3, p2)); p2[2].x = (p[(i+1)%4].x+p[(i+2)%4].x)/2, p2[2].y = (p[(i+1)%4].y+p[(i+2)%4].y)/2; check(area(3, p2)); p2[2] = p[(i+3)%4], p2[1].x = (p[(i+2)%4].x+p[(i+3)%4].x)/2, p2[1].y = (p[(i+2)%4].y+p[(i+3)%4].y)/2; check(area(3, p2)); p2[1] = p[i+1], p2[2] = p1[i+1], p2[3] = p1[(i+3)%4]; check(area(4, p2)); p2[0] = p1[i], p2[1] = p[(i+1)%4], p2[2] = p1[(i+1)%4]; check(area(3, p2)); } } int main() { point p[4]; int i, j=0; while(1) { d = 1000000; for(i=0; i<4; i++) cin >> p[i].x >> p[i].y; if(!p[0].x && !p[0].y && !p[1].x && !p[1].y) break; s = area(4, p); solve(p); printf("Cake %d: %.3lf %.3lf\n", ++j, a1, a2); } }
[/code]
相关文章推荐
- zoj 1806 This Takes the Cake 计算凸四边形和三角形的面积
- pku1624 This Takes the Cake
- POJ 1624 This Takes the Cake 笔记
- Hust oj 1197 Cuts the cake(水题)
- HDU-1202-The calculation of GPA(恶心水题)
- HDU-2134 Cuts the cake 水题 数学题
- ACM--圆面积--HDOJ 2134--Cuts the cake
- Cuts the cake +面积相等
- have the purpose of this clear
- .NET浏览ASP.NET页面时出现This application is currently offline. To enable the application, remove...错误的解决办法
- android WebView加载不出网页内容This request has been blocked; the content must be served over HTTPS.
- The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
- The goal you specified requires a project to execute but there is no POM in this directory 错误
- Silverlight 调试错误之--“The break point currently will not be hit , no symbols have been loaded to this document”
- xxx is not in the sudoers file.This incident will be reported.的解决方法
- THE FIRST DIARY IN THIS BLOG
- Spring MVC @ResponseBody 提示 406 The resource identified by this request……
- tomcat配置环境变量后在cmd中输入startup出现the JRE_HOME environment variable is not defined correctly This environ
- Eclipse打不开的错误:Version 1.3.1_01 of the JVM is not suitable for this product. Version: 1.4.1
- Mixed Content: xxx This request has been blocked; the content must be served over HTTPS.