题目链接:UVA - 11039

题意描述:建筑师设计房子有两条要求:第一,每一层楼的大小一定比此层楼以上的房子尺寸要大;第二,用蓝色和红色为建筑染色,每相邻的两层楼不能染同一种颜色。现在给出楼层数量和每层楼的尺寸(楼层尺寸的大小没有按照顺序给出),求出满足这样要求的最大楼层数。

算法分析:把楼层尺寸按照从大到小排序,然后遍历一次的同时记录相邻楼层所染颜色不同,把不满足要求的楼层去掉即可。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#define inf 0x7fffffff
using namespace std;
const int maxn=+; int n,an[maxn]; int cmp(int i,int j)
{
i=abs(i) ;j=abs(j) ;
return i>j;
} int main()
{
int t;scanf("%d",&t);
while (t--)
{
scanf("%d",&n);
for (int i= ;i<n ;i++) scanf("%d",&an[i]);
sort(an,an+n,cmp);
int cnt=,flag= an[]> ? : - ;
for (int i= ;i<n ;)
{
int f= an[i]> ? : - ;
while (f==flag && i<n)
{
i++;
f= an[i]> ? : - ;
}
if (f != flag && i<n)
{
cnt ++ ;
flag=f;
i ++ ;
}
}
printf("%d\n",cnt);
}
return ;
}

最新文章

  1. 移动Web触摸与运动解决方案AlloyTouch开源啦
  2. Java如何解决脆弱基类(基类被冻结)问题
  3. 美发屋App-业余爱好
  4. 2016 - 1 - 23 xml解析 -- 语法简介
  5. cpu进程调度---RT Throttling【转】
  6. 团体程序设计天梯赛-练习集L2-003. 月饼
  7. Multi-Die系统介绍
  8. 两种常用的启动和关闭MySQL服务
  9. 使用 Bundle 在 Activity 之间交换数据
  10. UITableViewStyleGrouped模式下多余间距
  11. [Swift-2019力扣杯春季初赛]3. 最小化舍入误差以满足目标
  12. python之asyncio
  13. java.lang.RuntimeException: Unable to get provider cn.jpush.android.service.DataProvider
  14. python list 常用
  15. INSTALL_FAILED_CONFLICTING_PROVIDER
  16. SOA架构商城二 框架搭建
  17. AJAX 请求中多出了一次 OPTIONS 请求 导致 Laravel 中间件无法对 Header 传入的 Token 无法获取
  18. 一个demo 理解 vuex
  19. ShellExecuteA函数
  20. [Visual Studio] 安装清单

热门文章

  1. Java中为什么字段不能被重写
  2. java 获取请求的完整url地址
  3. webpack &amp; async await
  4. 洛谷9月月赛round2
  5. BZOJ1797 [Ahoi2009]Mincut 最小割 【最小割唯一性判定】
  6. https总结
  7. 【bzoj2946】[Poi2000]公共串 后缀自动机
  8. 卷积神经网络用语句子分类---Convolutional Neural Networks for Sentence Classification 学习笔记
  9. react-router路由参数
  10. Named Formats!