当前位置: 首页 > news >正文

小型门户网站模板开发自己的app多少钱

小型门户网站模板,开发自己的app多少钱,软件开发标准,让网站不要保存密码怎么做题目:(数三角) 题目描述(14届 C&C B组E题) 解题思路: 给定 n 个点的坐标,计算其中可以组成 等腰三角形 的三点组合数量。 核心条件:等腰三角形的定义是三角形的三条边中至少有…

题目:(数三角)

题目描述(14届 C&C++ B组E题)

解题思路:

给定 n 个点的坐标,计算其中可以组成 等腰三角形 的三点组合数量。

  1. 核心条件:等腰三角形的定义是三角形的三条边中至少有两条边的长度相等。

  2. 坐标平面上的三点是否共线:如果三点共线,它们无法组成三角形。该程序在计算三点组合时,会排除共线的情况。

  3. 解决方案:对于每个点 i,计算它与其他点之间的距离,并将具有相同距离的点分组,保存在一个映射表(map)中。随后从每组具有相同距离的点中,组合出两个点,构成一个等腰三角形。

代码实现(C++):

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
double dis(ll x1, ll y1, ll x2, ll y2){return pow((x1 - x2), 2) + pow((y1-y2),2);
}
bool check(pll p1, pll p2, pll p3){//判断是否三点共线if(p1.second == p2.second || p1.second == p3.second)  return p1.second == p2.second && p1.second == p3.second;double a = (p1.first - p2.first) * 1.0 / (p1.second-p2.second);double b = (p1.first - p3.first) * 1.0 / (p1.second-p3.second);return abs(a - b) < 1e-6;
}
int main() {ll n; cin >> n;vector<pll> arr;for (int i = 0; i < n; ++i) {ll x, y;cin >> x >> y;arr.emplace_back(x, y);}ll ans = 0;//equ[i]存储的是第i个点所对应的map表//map表的含义是 有哪些点到第i个点的距离为key,这些点的下标用一个vector收集vector<map<double,vector<int>>> equ(n);for(int i = 0; i < n; ++i){auto m= equ[i];for(int j = 0; j < n; ++j){//遍历其他的所有点,在map中记录相等距离if(i != j){pll p1 = arr[i]; pll p2 = arr[j];double d = dis(p1.first,p1.second,p2.first,p2.second);m[d].push_back(j);}}//收集完成之后,遍历这张map表for(const auto& [k,v] : m){for(int a = 0; a < v.size(); ++a){ //从到当前点的距离相等的点之中选取两个点a,bfor(int b = a + 1; b < v.size(); ++b){if(!check(arr[i],arr[v[a]],arr[v[b]])){//只要不是三点共线ans++;}}}}}cout << ans;
}

得到运行结果:

代码分析: 

  • 距离计算dis 函数计算两个点之间的欧几里得距离的平方,这样可以避免使用浮点运算。

  • 三点共线判断check 函数通过检查斜率是否相等来判断三点是否共线。通过分段计算和比较斜率来避免浮点数精度误差。

  • 构建距离映射:对于每个点 iii,计算它到其他点的距离,并使用 map 将这些距离相等的点分组。

  • 等腰三角形组合计数:从距离相等的点中选择两个不同的点与当前点 iii 组合成三角形,检查是否共线。若不是共线,则计数增加。

难度分析

⭐️⭐️⭐️⭐️

总结

  • 时间复杂度:该算法的复杂度为 O\left ( n^{3} \right ),因为它使用三重循环来枚举所有三点组合。

  • 空间复杂度:使用了 map 来存储每个点到其他点的距离信息,相应的空间复杂度为 O\left ( n^{2} \right )

http://www.yayakq.cn/news/272526/

相关文章:

  • 做绿化生意有什么网站网站编辑做seo好做吗
  • wordpress多站版网站建设的知名品牌
  • 南昌建站系统外包大连模板网站制作报价
  • 股票网站建设宁波网站建设 熊掌号
  • 福建漳州网站建设费用iis 网站访问权限
  • 专门做鞋子的网站网站程序源码下载
  • 房地产类的网站建设wordpress 不同页面
  • 黄冈做网站技术支持的upscale wordpress
  • 网站开发图书管理系统商贸公司寮步网站建设价钱
  • 网站建设的发展趋势杭州模板网站
  • wordpress建外贸网站上海在线
  • 做网站知识大全wordpress 教程类主题
  • 网站怎么做有创意百度推广 帮做网站吗
  • 网站后台管理系统进度上海公司网站开发
  • 上海魔力网站建设公司门户网站啥意思
  • 浙江建设培训中心网站php可以做视频网站
  • 期货模拟网站开发国外网站赏析
  • 天猫网站设计宣传片制作公司佛山
  • 企业网站必须备案湖南优化推广
  • 企业创建网站的途径网站建设环境配置
  • 陕西手机网站建站wordpress 优酷去广告插件
  • 华为官方网站进入谷歌seo怎么做
  • 手机网站建设沈阳网站功能优化的方法
  • 静态企业网站模板下载家居网站建设流程
  • 现在网站建设用到哪些技术网站设计公司-信科网络
  • 权重7以上的网站wordpress the_title
  • wordpress异次元主题株洲seo优化官网
  • 做网站编辑好还是美工好wordpress一键搬家
  • 做直播网站需要哪些技术百度中搜到网站名字
  • 福州市工程建设监督站网站网络营销推广的八大核心