2017-08-25 12:00:53

writer:pprp

很简单的枚举,但是我调试了很长时间,出现各种各样的问题

/*
theme:cf 589B
writer:pprp
declare:枚举
date:2017/8/25
*/ #include <bits/stdc++.h> using namespace std;
const int N = ;
typedef long long ll;
ll ans = -, record_w = -, record_h = -; class rect
{
public:
int w;
int h; bool operator <(const rect & r2)
{
return w < r2.w;
} }; rect rec[N]; int main()
{
int n;
scanf("%d",&n); //input section
for(int i = ; i < n ; i++)
{
scanf("%d%d",&rec[i].w, &rec[i].h);
//w is bigger than h
if(rec[i].w > rec[i].h) //w > h??
swap(rec[i].w,rec[i].h);
}
//sort the w
sort(rec,rec + n); //define a vector to store the height
vector<int> hh; //从小到大枚举w的长度
for(int i = ; i < n ; i++)
{
hh.clear();
//将宽度高于w的对象的h储存在vector中
for(int j = i ; j < n ; j++)
hh.push_back(rec[j].h);//一开始这里写成i了粗心犯的错 //对高度进行排序
sort(hh.begin(), hh.end()); //记录当前高度
int len = hh.size(); //枚举当前w的情况下,采用不同的h的最佳解
for(int j = ; j < hh.size() ; j++, len--)
{
ll cmp = (ll)rec[i].w * hh[j] * len; //wrong before: (ll)(rec[i].w * hh[j] * len) 这样就会越界,这个错误是调试出来的,如果都是ll就会溢出
if(cmp > ans)
{
ans = cmp;
record_h = hh[j];
record_w = rec[i].w;
}
}
}
cout << ans << endl;
cout << record_w << " " << record_h << endl; return ;
}

codeforce 589B枚举的更多相关文章

  1. codeforce Pashmak and Buses(dfs枚举)

    /* 题意:n个同学,k个车, 取旅游d天! 要求所有的学生没有两个或者两个以上的在同一辆车上共同带d天! 输出可行的方案! 对于d行n列的矩阵,第i行第j列表示的是第i天第j个同学所在的车号! 也就 ...

  2. codeforce No to Palindromes!(枚举)

    /* 题意:给定一个字符串中没有任何长度>1的回文子串!求按照字典序的该串的下一个字符串 也不包含长度>1的任何回文子串! 思路:从最低位进行枚举,保证第i位 不与 第 i-1位和第 i- ...

  3. Codeforce 733B - Parade (枚举)

    Very soon there will be a parade of victory over alien invaders in Berland. Unfortunately, all soldi ...

  4. Two progressions CodeForce 125D 思维题

    An arithmetic progression is such a non-empty sequence of numbers where the difference between any t ...

  5. Swift enum(枚举)使用范例

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  6. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  7. Objective-C枚举的几种定义方式与使用

    假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...

  8. Help Hanzo (素数筛+区间枚举)

    Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...

  9. 枚举:enum

    枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...

随机推荐

  1. mysql主从同步出现异常语句跳过错误处理

    1.跳过操作: mysql>slave stop; mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 跳过一个事务 mysql>slave st ...

  2. 并发编程 - 进程 - 1.队列的使用/2.生产者消费者模型/3.JoinableQueue

    1.队列的使用: 队列引用的前提: 多个进程对同一块共享数据的修改:要从硬盘读文件,慢,还要考虑上锁: 所以就出现了 队列 和 管道 都在内存中(快): 队列 = 管道 + 上锁 用队列的目的: 进程 ...

  3. H5开发APP入门

    一.MUI MUI是一个最接近原生APP体验的高性能前端框架.我们用它来排版布局. 官方网站:http://dev.dcloud.net.cn/mui/ 二.HTML5PLUS html5+是HBul ...

  4. Apache Spark 2.0三种API的传说:RDD、DataFrame和Dataset

    Apache Spark吸引广大社区开发者的一个重要原因是:Apache Spark提供极其简单.易用的APIs,支持跨多种语言(比如:Scala.Java.Python和R)来操作大数据. 本文主要 ...

  5. C++学习笔记-隐式成员函数

    通过一个例子来复习C++操作符重载及隐式成员函数.MyString类模仿标准string类,简单的实现了构造一个字符串.字符串比较.取单个字符等功能.如下: #ifndef MYSTRING_H_ # ...

  6. Mysql—(2)—

    数据库存储引擎 (更多详见) 一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存 ...

  7. DEPHI XE5 XE6 ANDROID IOS开发的几点体会

    DEPHI XE5 XE6 ANDROID IOS开发的几点体会 2014-09-04 20:48 1.不纠结于APK或者APP的大小.现在的客户端设备都很廉价,300元以上的新安卓设备都不在乎软件的 ...

  8. Flask博客开发——自定义头像

    Flask Web开发一书中,使用了与个人邮箱绑定的Gravatar图形作为用户头像.Gravatar提供的头像比较简陋,而且可能由于网络问题无法生成头像.多数社交网站和博客提供用户自定义头像功能,因 ...

  9. org.apache.ibatis.binding.BindingException: Mapper method 'attempted to return null from a method with a primitive return type (long).

    一.问题描述 今天发现测试环境报出来一个数据库相关的错误 org.apache.ibatis.binding.BindingException: Mapper method 'attempted to ...

  10. Java数据结构——循环链表的实现

    //单链表结点类 public class Node<T> { //单链表结点类,T指定结点的元素类型 public T data; //数据域,保存数据元素 public Node< ...