这题本来  想二分。想了很久很久,解决不了排序和二分的冲突。     用贪心吧。。

题意:

  给你n个长方形,让你找出2个或1个长方体,使得他们拼接成的长方体的内接球半径最大(这是要求最短边越大越好)(两个矩形拼接的条件是

他们有一个面完全相同)

  输入n,输入第 i个长方体的 三条边长度。最多2个长方体拼接。

  输出  不要拼接的"1"和最大能切成内切球的 i  ;或者输出要拼接的“2”和这两个长方体的序号 i 。

如果 两个长方体的边长分别是 3 2 4,3 2 4  。可以拼接成  6 2 4,3 2 8,3 4 4;

显然 3 4 4这种拼法 内切球是最大的。(这里是 想到用贪心的起点)

给所有的长方体记录原来的位置序号,再按边长排序,(下面代码里的cmp)。这样可以保证每个长方体的第三条边都是最小的,

这样两个长方体的第三条边相加起来, 能使两个长方体的最短边得到加强。(类似木桶的短板原理)

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
#include<cmath>
#include<set>
#include<vector>
#include<stack>
#include<queue>
#include<map>
using namespace std;
#define ll long long
#define se second
#define fi first
const int INF= 0x3f3f3f3f;
const int N=1e5+; int a[],b[];
int n,maxn=; struct note
{
int x,y,z;
int loc;
}q[N]; bool cmp(note r,note t)
{
return (r.x>t.x||
r.x==t.x&&r.y>t.y||
r.x==t.x&&r.y==t.y&&r.z>t.z);
} int main() //(3 2 4 ;3 2 4)3*2*8,6*2*4,3*4*4选的是3*4*4。
{
cin>>n;
int loc=,loc1=,loc2=; //这是要输出的长方体位置
for(int i=;i<=n;i++){
scanf("%d%d%d",&a[],&a[],&a[]);
sort(a,a+);
q[i].z =a[];
q[i].y =a[];
q[i].x =a[];
q[i].loc =i; //记录原来的下标
if(maxn<a[])
{
maxn=a[];
loc=i;
}
}
sort(q+,q++n,cmp);
int sign=; for(int i=;i<n;i++)
{
if(q[i].x==q[i+].x && q[i].y==q[i+].y)
{
b[]=q[i].x; b[]=q[i].y; b[]=q[i].z+q[i+].z;
sort(b,b+);
if(maxn<b[])
{
maxn=b[];
loc1=q[i].loc;
loc2=q[i+].loc;
sign=;
}
}
}
if(sign){
cout<<<<endl;
cout<<loc1<<' '<<loc2;
}
else
cout<<<<endl<<loc;
}

最新文章

  1. Sql Server 之 for xml (path,raw,auto,root)
  2. 深入理解java垃圾回收机制
  3. python-generator生成杨辉三角
  4. Java for LeetCode 204 Count Primes
  5. putty连接ubuntu虚拟机缓慢问题的解决
  6. HTTP 错误 503.2 - Service Unavailable 正在超过 serverRuntime@appConcurrentRequestLimit 设置的值。
  7. InnoDB MyISAM区别及优化(摘录)
  8. main函数的参数
  9. Android获取相册图片
  10. JS动态加载 js css
  11. var $this = $(this)是什么意思?
  12. 微信小程序绘制分享图
  13. Error opening terminal: xterm-256color
  14. X分钟速成Y (其中Y=Python3)
  15. leveldb 学习记录(二) Slice
  16. 安装plsql developer
  17. 【Java并发编程】12、ThreadLocal 解决SimpleDateFormat非线程安全
  18. 使用filter对请求设置编码
  19. python selenium-6 HTML测试报告
  20. selenium只打开一个浏览器窗口

热门文章

  1. 《Hadoop》大数据技术开发实战学习笔记(二)
  2. JS CSS写下拉菜单 竖行
  3. C#使用Castle实现AOP面向切面编程
  4. 2017年度好视频,吴恩达、李飞飞、Hinton、OpenAI、NIPS、CVPR、CS231n全都在
  5. 系统获取 IP 工具类
  6. [转帖]Cacls和ICacls
  7. Spring Boot系列教程十四:Spring boot同时支持HTTP和HTTPS
  8. T100——错误信息提示传入参数显示
  9. msyql 去重
  10. redis的安装---Linux