Kostya the Sculptor

这次cf打的又是心累啊,果然我太菜,真的该认真学习,不要随便的浪费时间啦

【题目链接】Kostya the Sculptor

&题意:

给你n个长方体,你要使长方体的内切球有体积最大,有两种选择方案
①只选1个长方体。
②选2个长方体,黏到一起,但这2个长方体黏的那一面必须完全相等。也就是长宽相等。

&题解:

1个长方体遍历一遍取最小就好了。
2个的时候要第2短的和第3短的相等,才能合到一起,最小的有可能是2个最小的相加,或者是第2短的那个。
这题比赛的时候,总是在想如果相等的在最后怎么办,还要特殊处理,好像并没有处理好,所以总是wa。
现在想来根本不用,只要在最后加一个绝对不可能相等的数据就好了,这就减少了特殊处理最后一组的麻烦。应记住。
这也是用过好多次的方法了,不知道为什么当时就想不起来了 = =
还有输出的格式问题,为什么我注释的那块就不对呢?我还真的不知道,如果有大神看见,希望能评论回答一下!

【时间复杂度】O(\(n\))

&代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
#define cle(a,val) memset(a,(val),sizeof(a))
#define SI(N) scanf("%d",&(N))
#define SII(N,M) scanf("%d %d",&(N),&(M))
#define SIII(N,M,K) scanf("%d %d %d",&(N),&(M),&(K))
#define rep(i,b) for(int i=0;i<(b);i++)
#define rez(i,a,b) for(int i=(a);i<=(b);i++)
#define red(i,a,b) for(int i=(a);i>=(b);i--)
const ll LINF = 0x3f3f3f3f3f3f3f3f;
#define PU(x) puts(#x);
#define PI(A) cout<<(A)<<endl;
#define DG(x) cout<<#x<<"="<<(x)<<endl;
#define DGG(x,y) cout<<#x<<"="<<(x)<<" "<<#y<<"="<<(y)<<endl;
#define DGGG(x,y,z) cout<<#x<<"="<<(x)<<" "<<#y<<"="<<(y)<<" "<<#z<<"="<<(z)<<endl;
#define PIar(a,n) rep(i,n)cout<<a[i]<<" ";cout<<endl;
#define PIarr(a,n,m) rep(aa,n){rep(bb, m)cout<<a[aa][bb]<<" ";cout<<endl;}
const double EPS = 1e-9 ;
/*     C o d i n g  S p a c e     */
const int MAXN = 100000 + 9 ;
struct Node
{ll x,y,z;int id;
}no[MAXN];
bool cmp(const Node& A,const Node& B){if (A.y==B.y) return A.z==B.z?A.x<B.x:A.z<B.z;else return A.y<B.y;
}
int n;
void Solve()
{while(~SI(n)){rep(i,n){int t[5];rep(j,3) SI(t[j]);sort(t,t+3);no[i].x=t[0],no[i].y=t[1],no[i].z=t[2],no[i].id=i+1;}ll re1=0,re2=1;rep(i,n){if (re1<no[i].x){re1=no[i].x,re2=no[i].id;}}sort(no,no+n,cmp);ll re3=0,re4=1,re5=1;Node t;t.x=-1,t.y=-1,t.id=-9;no[n++]=t;rep(i,n-1){if (no[i].z==no[i+1].z&&no[i].y==no[i+1].y){while(no[i].z==no[i+1].z&&no[i].y==no[i+1].y) i++;if (re3<min(no[i].x+no[i-1].x,no[i].y)){re3=min(no[i].x+no[i-1].x,no[i].y);re4=no[i].id,re5=no[i-1].id;}}}if (re3>re1){printf("2\n%d",re4);printf(" %d\n",re5);//上面的是对的,但下面的就是错的,一样的东西啊,不知道为什么// printf("2\n%d %d\n",re4,re5);}else{printf("1\n%d\n",re2);}}
}
int main()
{
#ifndef ONLINE_JUDGEfreopen("1.in", "r", stdin);freopen("1.out","w",stdout);
#endif
//iostream::sync_with_stdio(false);
//cin.tie(0), cout.tie(0);// int T;cin>>T;while(T--)Solve();return 0;
}

转载于:https://www.cnblogs.com/s1124yy/p/6021611.html

Codeforces Round #378 (Div. 2) D - Kostya the Sculptor相关推荐

  1. Codeforces Round #378 (Div. 2) D. Kostya the Sculptor 分组 + 贪心

    http://codeforces.com/contest/733/problem/D 给定n个长方体,然后每个长方体都能选择任何一个面,去和其他长方体接在一起,也可以自己一个,要求使得新的长方体的最 ...

  2. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  3. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  4. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  5. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  6. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  7. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

  8. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...

  9. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

最新文章

  1. I210网卡LINUX的mac,linux i210 网卡驱动解读
  2. [JSOI2007]麻将
  3. 怎么发表论文能保证被收录
  4. App5.0程序导入及发布
  5. java provider_Java SPI(Service Provider Interface)
  6. mysql的面试2_mysql数据库面试题(2)
  7. BI和报表等于数据分析?终于有人讲清楚了它们的区别
  8. 机器学习工具在数据中心的应用与发展
  9. 5 . 2 查 询 优 化 器
  10. 走进AngularJs(七) 过滤器(filter) - 吕大豹
  11. 三、MQTT Windosw下的 进一步调试
  12. 机器学习之协方差矩阵、黑塞矩阵、标准差椭圆和EM算法
  13. etf基金代码大全_最全ETF基金分类大全
  14. java实现webservice调用
  15. 如何将qlv格式视频转换成mp4格式
  16. 设备状态监测及故障预警,你了解多少?
  17. Nat. Med. :婴儿生命早期肠道病毒组和细菌组的动态
  18. python:静态方法
  19. 使用main方法启动spring程序
  20. hive 正则表达式-regexp

热门文章

  1. myeclipse启动php,myeclipse,jdk_启动myeclipse报错,myeclipse,jdk - phpStudy
  2. 共享可写节包含重定位_未经许可成都街头现共享电动单车?哈啰出行:只是测试...
  3. python 枚举相等判断_python中is和==的区别
  4. sparkStreaming+kafka SparkException: java.nio.channels.ClosedChannelException异常报错
  5. python多版本共存 ubuntu_Linux下python3与python3的多版本共存
  6. ansible图形化界面开源_MySQL常见的图形化工具
  7. ajax从php里能输出俩值,Ajax返回值作为PHP变量
  8. postman 字符数组_PostMan Post方式传递数组数据参数 OK_go-Go语言中文社区
  9. ST-Link如何秒变J-link,手把手教你实现该功能
  10. HDLBits答案(12)_Verilog移位寄存器