zoukankan      html  css  js  c++  java
  • 计算几何

    计算几何----叉积

    题目 poj1106 Transmitters
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    叉积定义如下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    #include <iostream>
    using namespace std;
    int x , y ;
    double r ;
    int n ;
    int ax[300] , ay[300] ;
    int num1 , num2 ; // p0pi向量上方和下方的各个点的个数
    void solve(int i , int j)
    {
    	int temp = (ax[i] - x) * (ay[j] - y) - (ax[j] - x) * (ay[i] - y) ;
    	if(temp == 0) num1 ++ , num2 ++ ; // 平行时都算
    	else if (temp > 0) num1 ++ ; // 此时算p0pi一边
    	else num2 ++ ;  // 算p0pi另一边
    }
    int main()
    {
    	while(cin >> x >> y >> r && r >= 0)
    	{
    		cin >> n ;
    		int cnt = 0 ;
    		int a , b ;
    		for(int i = 0;i < n;i ++)
    		 {
    		 	cin >> a >> b ;
    		 	// 首先判断一下, 大于半径的就不在其中了,可以直接忽略掉
    		 	if((a - x) * (a - x) + (b - y) * (b - y) > r * r) continue ; 
    		 	ax[cnt] = a , ay[cnt ++] = b ;
    		 }
    		 int ans = 0 ;
    		 for(int i = 0;i < cnt ;i ++)
    		  {
    		  	num1 = 0 , num2 = 0 ;
    		  	for(int j = 0;j < cnt ;j ++)
    		  	 solve(i , j) ;
    		  	ans = max(ans , max(num1 , num2 )) ;
    		  
    		  }
    		  cout << ans << endl ;
    	}
    	return 0 ;
    } 
    
  • 相关阅读:
    周末复习所接触到的知识点
    新增一些需要记住的知识点和坑
    讨厌烦人的编码问题''
    dictionary 字典相关操作
    一些列表的基础知识和操作
    简单字符串语句
    一些简单的str语句
    c#学习之前言
    第六课时之HTML标题
    第五课时之HTML属性
  • 原文地址:https://www.cnblogs.com/spnooyseed/p/12870932.html
Copyright © 2011-2022 走看看