zoj 3720

为什么注释掉的地方是错的?  自己的代码好糟烂.....

直接枚举点  判是否在多边形内  加起来求概率    求面积的时候代码写搓了....可怜     比不过别人两行的代码    而且到现在还找不到错.....

#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#define eps 1e-8
#define _sign(x) ((x)>eps?1:((x)<-eps?2:0))
#define zero(x) (((x)>0?(x):-(x))<eps)
#define offset 500
using namespace std;
const int N = 100;
struct point
{double x, y;point(double i, double j){x = i, y = j;}point() {}
} p[N];double xmult(point p1,point p2,point p0)
{return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
int inside(point q, int n, point *p)
{int s[3] = {1, 1, 1};for(int i = 0; i < n && s[1]|s[2]; i++)s[_sign(xmult(p[(i+1)%n], q, p[i]))] = 0;return s[1]|s[2];
}
int inside_polygon(point q,int n,point* p)
{point q2;int i=0,count;while (i<n)for (count=i=0,q2.x=rand()+offset,q2.y=rand()+offset; i<n; i++){if (zero(xmult(q,p[i],p[(i+1)%n]))&&(p[i].x-q.x)*(p[(i+1)%n].x-q.x)<eps&&(p[i].y-q.y)*(p[(i+1)%n].y-q.y)<eps)return 1;else if (zero(xmult(q,q2,p[i])))break;else if (xmult(q,p[i],q2)*xmult(q,p[(i+1)%n],q2)<-eps&&xmult(p[i],q,p[(i+1)%n])*xmult(p[i],q2,p[(i+1)%n])<-eps)count++;}return count&1;
}
int main(void)
{double x0,y0,xn,yn;int a,b,n;while(scanf("%lf%lf%lf%lf",&x0,&y0,&xn,&yn) == 4){int _x0 = ceil(x0), _y0 = ceil(y0), _xn = floor(xn), _yn = floor(yn);
//        printf("%d %d %d %d",_x0, _y0, _xn, _yn);scanf("%d%d%d",&n,&a,&b);for(int i = 0; i < n; i++){scanf("%lf%lf",&p[i].x,&p[i].y);}double sum = 0;for(int i = _x0; i <= _xn; i++)for(int j = _y0; j <= _yn; j++){if(inside_polygon(point(i, j), n, p)){double r=(min(i+0.5,xn)-max(i-0.5,x0))*(min(j+0.5,yn)-max(j-0.5,y0));sum += r*(i*a+j*b);
//                    if(i > _x0 && i < _xn && j > _y0 && j < _yn)
//                        sum += (i*a+j*b);
//                    else if(i > _x0 && i < _xn && (j == _y0 || j == _yn))
//                    {
//                        if(j == _y0)
//                            sum += (i*a+j*b)*((double)((double)_y0-y0+0.5));
//                        else
//                            sum += (i*a+j*b)*((yn-(double)_yn+0.5));
//                    }
//                    else if((i == _x0 || i == _xn) && j > _y0 && j < _yn)
//                    {
//                        if(i == _x0)
//                            sum += (i*a+j*b)*(((double)_x0-x0+0.5));
//                        else
//                            sum += (i*a+j*b)*((xn-(double)_xn+0.5));
//                    }
//                    else
//                    {
//                        if(i == _x0 && j == _y0)
//                            sum += (i*a+j*b)*(((double)_x0-x0+0.5))*(((double)_y0-y0+0.5));
//                        else if(i == _x0 && j == _yn)
//                            sum += (i*a+j*b)*(((double)_x0-x0+0.5))*((yn-(double)_yn+0.5));
//                        else if(i == _xn && j == _y0)
//                            sum += (i*a+j*b)*((xn-(double)_xn+0.5))*(((double)_y0-y0+0.5));
//                        else
//                            sum += (i*a+j*b)*((xn-(double)_xn+0.5))*((yn-(double)_yn+0.5));
//                    }}}printf("%.3lf\n",(double)sum/(xn-x0)/(yn-y0));}return 0;
}


转载于:https://www.cnblogs.com/avema/p/3774242.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

void在java中是什么意思_java中void什么意思

在java中&#xff0c;void代表的意思是“空”&#xff0c;即“什么都不返回”&#xff0c;在方法申明的时候表示该方法没有返回值。void对应着一个Void类&#xff0c;Void类是用final修饰的&#xff0c;是一个不可实例化的占位符类。之前&#xff0c;在学C的数据类型的时候发现…

《设计模式》-模板模式

玩物丧志啊&#xff01;&#xff01;&#xff01;最近总想着玩&#xff0c;休息&#xff0c;结果又耽误了半个月。。唉&#xff01; 惭愧啊。 今天是设计模式的倒数第二个了。。 虽然前面的 忘得差不多了。不过等看完了 要进行总复习&#xff0c;再复习&#xff0c;再回归&…

一看就会之—利用IIS服务发布网站(实践篇)上

转自&#xff1a;http://blog.csdn.net/zwk626542417/article/details/9796259 概述 IIS全称为互联网信息服务&#xff0c;是由微软公司提供的基于运行MicrosoftWindows的互联网基本服务&#xff0c;今天我们主要来看下如何用win7系统自带的IIS服务来发布我们开发的一个简单的…

xp变量 java_winxp系统设置java环境变量的详细教程

我们都知道想要进行java的程序编辑&#xff0c;就要首先在电脑上设置环境变量&#xff0c;这样才能够运行java程序&#xff0c;下面一起看看xp系统的电脑如何设置java变量。1、设置环境变量之前&#xff0c;我们肯定首先需要安装java&#xff0c;首先&#xff0c;找到你安装jav…

java按钮随机移动_java – 使按钮移动触摸我们触摸的确切位置

我创建了一个应用程序,其中有一个按钮在触摸它时移动.现在对于onTouch,我实现了一个不同的类.有两个类,一个是主要的CircleMActivity.java,另一个是onTouch.现在应用程序运行正常,但有一个问题.当我点击按钮并移动它时它正在移动,但按钮和屏幕触摸之间有一个间隙.我想要的是将它…

MySQL性能优化的最佳经验

今天&#xff0c;数据库的操作越来越成为整个应用的性能瓶颈了&#xff0c;这点对于Web应用尤其明显。关于数据库的性能&#xff0c;这并不只是DBA才需要担心的事&#xff0c;而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构&#xff0c;对操作数据库时&#xf…

jspstudy mysql_使用JspStudy集成环境快速部署jsp项目

标签&#xff1a;1. 安装jdk本人网盘资源&#xff1a;https://yunpan.cn/ckZLNbqxkDYYe (提取码&#xff1a;b5e8)去jdk官网下载最新的jdk: http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html2. 配置环境变量&#xff1a;1) 系统变量→新…

IOS7的蛋疼各种收集

------------------ ios7基于viewController隐藏状态条:通过ViewController重载方法返回枚举值的方法来控制状态栏的隐藏和样式。首先&#xff0c;需要在Info.plist配置文件中&#xff0c;增加键&#xff1a;UIViewControllerBasedStatusBarAppearance&#xff0c;并设置为YES&…

php java c_当PHP、Java、C、C++ 这几种编程语言变成汽车是什么样的场景?

在学习和工作中&#xff0c;人们常常会把各种编程语言拿出来做对比&#xff0c;特别是刚刚开始入门学习IT的同学。实际上&#xff0c;每门语言自己的优缺点有时候也正是语言本身的特性&#xff0c;在学习中&#xff0c;我们更应该关心的是应用场景&#xff0c;哪门语言适合哪个…

C#回顾 - 3.NET的IO:字节流

使用 Stream 类管理字节流 使用 FileStream 类管理文件数据 使用 MemoryStream 类管理内存数据 使用 BufferedSream 类提高流性能 3.1 FileStream MemoryStream Seek 定位&#xff0c;寻址 BufferedStream 3.2 管理应用程序数据 文本、流、字符串和二进制数据 管理文本数据和字…

pdftk的使用介绍

首先像下面的一页pdf&#xff0c;如果想把它分成两页&#xff0c;每一页只是一个ppt页面&#xff08;为了在kindle里读比较方便&#xff09;&#xff0c; 那么可以首先用A-pdf page cut, 将pdf 切成这样12个部分 然后我们现在要的只是第5和第8部分。 如何实现只要弟5和第8部分呢…

java 多线程 notify_Java多线程8:wait()和notify()/notifyAll()

轮询线程本身是操作系统中独立的个体&#xff0c;但是线程与线程之间不是独立的个体&#xff0c;因为它们彼此之间要相互通信和协作。想像一个场景&#xff0c;A线程做int型变量i的累加操作&#xff0c;B线程等待i到了10000就打印出i&#xff0c;怎么处理&#xff1f;一个办法就…

价差 量差

这两个概念属于成本控制的范畴 成本控制有广义和狭义之分&#xff1b; 广义&#xff1a;生产经营各个环节和各个方面全过程的限制 狭义&#xff1a;生产阶段产品成本控制 标准成本就是通过一些方法制定的在有效的经营条件下应该实现的成本&#xff0c;根据产品的耗费标准和耗费…

Java数据类型BooleanDemo

转载于:https://www.cnblogs.com/suncoolcat/p/3320306.html

heap python_数据结构-堆(Heap) Python实现

堆(Heap)可以看成近似完全二叉树的数组&#xff0c;树中每个节点对应数组中一个元素。除了最底层之外&#xff0c;该树是完全充满的&#xff0c;最底层是从左到右填充的。堆包括最大堆和最小堆&#xff1a;最大堆的每一个节点(除了根结点)的值不大于其父节点&#xff1b;最小堆…

BZOJ 2597 剪刀石头布(最小费用最大流)(WC2007)

Description 在一些一对一游戏的比赛&#xff08;如下棋、乒乓球和羽毛球的单打&#xff09;中&#xff0c;我们经常会遇到A胜过B&#xff0c;B胜过C而C又胜过A的有趣情况&#xff0c;不妨形象的称之为剪刀石头布情况。有的时候&#xff0c;无聊的人们会津津乐道于统计有多少这…

HDU 1476 Sudoku Killer

Sudoku Killer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3367 Accepted Submission(s): 1063 Problem Description自从2006年3月10日至11日的首届数独世界锦标赛以后&#xff0c;数独这项游戏越来越受到…

java .net 互通redis_C# servicestack.redis 互通 java jedis

本文是基于jedis的一致性环哈希来修改的&#xff0c;.net选的是servicestack.redis组件来修改无奈两个组件都有各自的一致性环哈希算法&#xff0c;不兼容&#xff0c;那就选一个作为标准&#xff0c;修改另一个咯。本文选择jedis的一致性环哈希作为标准&#xff0c;进而修改.n…

6款帮助 滚动视差jquery插件

在网页设计中&#xff0c;视差滚动&#xff08;Parallax Scrolling&#xff09;是当下流行的网页设计技术&#xff0c;通过让多层背景以不同的速度或者不同的方向移动来形成非常有趣的 3D 运动效果。下面是一些运用视差滚动效果的优秀网页案例&#xff1a; 视差&#xff08;Pa…

EBS 多组织访问设置

如果想让你的职责下为单组织模式&#xff0c;那么你在Profile下只设置MO: Operating Unit的值&#xff0c;MO: Operating Unit提供只访问一个单独的OU。如果你想让你的职责下为多组织模式&#xff0c;你需要设置MO: Security Profile&#xff0c;MO: Security Profile提供多组织…