Codeforces Round #297 (Div. 2) C. Ilya and Sticks
来源:互联网 发布:君子去仁 恶乎成名 编辑:程序博客网 时间:2024/05/23 21:51
题目大意:给出n个棒子的长度, 每个棒子可以变为自己的长度 - 1, 问可以组成题目中要求的矩形的面积最大是多少。
解题思路:显然这道题会用到贪心的思想,我们先把给的n个棒子的长度从大到小排序(当然此处有个小优化,因为矩形是由一对长宽组成,所以输入的n小于4直接打印出0) 从开头遍历 因为每个棒子可以变为自己的长度-1 来使用 所以我们查找有没有挨着的棒子有没有差距小于等于1的 有我们就记录当前的棒子长度(注意 此处记录的是当前棒子长度-1) 可以把它看成矩形的长/宽,此处可以直接计算面积 开个数count1来判断该不该算另一个矩形了。 当count1等于2 说明这个矩形组成,把count1=0,面积为1 继续到for循环结束。。。
下面我就直接上代码了、、
当然此题要用long long
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <map>#include <cmath>#include <queue>#include <string>#include <vector>#include <set>#include <stack>using namespace std;#define ll long long#define sc(x) scanf("%I64d",&x)#define pr(x) printf("%I64d\n",x)#define maxn 100005ll cnt;ll a[maxn];bool cmp(int a,int b){ return a>b;}int main(){ ll n; while(~scanf("%I64d",&n)) { cnt=0; for(int i=1;i<=n;i++) sc(a[i]); sort(a+1,a+1+n,cmp);//从大到小排序 ll num=1,count1=0; for(int i=1;i<=n-1;i++) { if(a[i]-a[i+1]<=1) { num*=a[i+1];//计算面积 count1++; i++;//满足条件后 } if(count1==2)//组成一个矩形 { cnt+=num;//面积 num=1;//下一个面积初始化 count1=0;//判断是否组成矩形初始化 } } pr(cnt); } return 0;}
END!!!!!!!!!!!!!!
1 0
- Codeforces Round #297 (Div. 2) C.Ilya and Sticks
- Codeforces Round #297 (Div. 2) C - Ilya and Sticks
- Codeforces Round #297 (Div. 2) C. Ilya and Sticks
- Codeforces Round #297 (Div. 2)C. Ilya and Sticks
- Codeforces Round #297 (Div. 2) C. Ilya and Sticks
- C. Ilya and Sticks(Codeforces Round #297 (Div. 2) 水题)
- Codeforces Round #297 (Div. 2) C. Ilya and Sticks 解题报告
- Codeforces Round #297 (Div. 2) 525C Ilya and Sticks(脑洞)
- Codeforces #297 (Div. 2) C. Ilya and Sticks(贪心
- #297 (div.2) C. Ilya and Sticks
- C. Ilya and Sticks(Codeforces Round 297(div2))
- Codeforces Round #430 (Div. 2) C. Ilya And The Tree
- Codeforces Round #430 (Div. 2) C. Ilya And The Tree
- codeforces 525C Ilya and Sticks
- CodeForces-525C Ilya and Sticks
- Codeforces 525C:Ilya and Sticks
- CodeForces 525C Ilya and Sticks
- Codeforces 525C. Ilya and Sticks
- getchar(), cin.get()
- Java EE笔记二
- 帮忙设计的一些UI
- Scrum实战读书笔记
- 第k短路
- Codeforces Round #297 (Div. 2) C. Ilya and Sticks
- C++,全局变量,局部变量,静态全局变量,静态局部变量
- Lint学习使用
- 多线程_03_线程池
- JVM--java内存模型
- Java编程思想学习笔记(一) 第2章 一切都是对象
- 高通平台MSM8916LCM模块移植(一)-bootloader部分
- LeetCode: 1. Two Sum python
- MySQL数据库优化总结如果索引多个字段,第一个字段要是经常作为查询条件的。如果只有第二个字段作为查询条件,这个索引不会起到作用;