zoukankan      html  css  js  c++  java
  • papamelon 192. 三角形

    地址 https://www.papamelon.com/problem/192

    解答
    三角形的三条边需要满足 任意两条边的和大于第三边,也就是最长的棍子的长度小于其他两根根子的和
    我们使用dfs遍历三根棍子的组合 选出最大周长。
    也可以直接三次循环 遍历三根棍子的组合,选出最大周长。
    复杂度都是O(n^3)

    // 111111.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    const int N = 150;
    int arr[N];
    int n,sum;
    int ans ;
    int sel[3];
    
    void dfs(int selCount, int start) {
    	if (selCount == 3) {
    		if (sel[0] + sel[1] > sel[2]) {
    			ans = max(ans, sel[0] + sel[1] + sel[2]);
    		}
    		return;
    	}
    	int i = start;
    	for (i = start; i < n; i++) {
    		sel[selCount] = arr[i]; selCount++;
    		dfs(selCount, i + 1);
    		selCount--; sel[selCount-1] = 0;
    	}
    
    }
    
    int main()
    {
    	cin >> n;
    	for (int i = 0; i < n; i++) { cin >> arr[i]; }
    	sort(arr,arr+n);
    
    	dfs(0,0);
    	cout << ans << endl;
    
    	return 0;
    }
    

    三重循环

    三角形的三条边需要满足 任意两条边的和大于第三边,也就是最长的棍子的长度小于其他两根根子的和
    首先将木棒长度排序,保证选择的第三根木棒最长,这样比较第一根加上第二根大于第三根木棒的长度即可
    排序时间复杂度是 O(nlogn) 三重循环查找是 O(n^3)

    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    const int N = 150;
    int arr[N];
    int n,sum;
    int ans ;
    
    int main()
    {
    	cin >> n;
    	for (int i = 0; i < n; i++) { cin >> arr[i]; }
    	sort(arr,arr+n);
    
    	int i, j,k;
    	for (i = 0; i < n; i++) {
    		for (int j = i + 1; j < n; j++) {
    			for (int k = j + 1; k < n; k++) {
    				if (arr[i] + arr[j] > arr[k]) {
    					ans = max(ans, arr[i] + arr[j] + arr[k]);
    				}
    			}
    		}
    	}
    
    	cout << ans << endl;
    
    	return 0;
    }
    

    我的视频题解空间

  • 相关阅读:
    高效的多维空间点索引算法 — Geohash 和 Google S2
    Geohash距离估算
    位图(BitMap)索引
    深入浅出空间索引:为什么需要空间索引
    harbor rest api 转graphql api
    ringojs java jar 集成使用
    ringojs 使用rp 包管理web 应用依赖
    ringojs 的包管理
    ringojs 基于jvm 的javascript 平台试用
    graphql cli 开发graphql api flow
  • 原文地址:https://www.cnblogs.com/itdef/p/15541461.html
Copyright © 2011-2022 走看看