Codeforces 525C Ilya and Sticks【贪心】
来源:互联网 发布:html打赏视频源码 编辑:程序博客网 时间:2024/05/24 07:13
题目大意:
一共有N根棒子,每根棒子的长度已知,而且我们可以将任意棒子的长度减1,问所有棒子能够组成的举行的最大的面积和。
思路:
1、首先将棒子的长度按照从小到大排序,那么我们每次贪心出来两个矩形的长,然后再贪心出来两个矩阵的宽,每当能够使得其组成一个矩形的时候,累加其和即可。
2、贪心找长和宽的时候,只需要每次枚举临近的两根棒子即可,如果其长度差==0或者是==1,那么其两根棒子的最小值就可以作为两个对着的边的长度(可能是作为长,也可能作为是宽)。
Ac代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define ll __int64ll a[1000006];int main(){ int n; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) { scanf("%I64d",&a[i]); } sort(a,a+n); ll chang=0; ll kuan=0; ll output=0; for(int i=n-1;i>=1;i--) { if(a[i]==a[i-1]||a[i]==a[i-1]+1) { if(chang==0) chang=a[i-1],i--; else if(kuan==0) kuan=a[i-1],i--; } if(chang!=0&&kuan!=0) { output+=chang*kuan; chang=0; kuan=0; } } printf("%I64d\n",output); }}
0 0
- Codeforces 525C Ilya and Sticks【贪心】
- codeforces 525C Ilya and Sticks(简单贪心)
- CF 525C(Ilya and Sticks-贪心)
- 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
- Codeforces 525C Ilya and Sticks 【数学】
- Codeforces 525C Ilya and Sticks
- CodeForces 525C . Ilya and Sticks
- Codeforces #297 (Div. 2) C. Ilya and Sticks(贪心
- CF 525 C. Ilya and Sticks
- Code Forces 525C Ilya and Sticks
- Codeforces Round #297 (Div. 2) C.Ilya and Sticks
- C. Ilya and Sticks(Codeforces Round 297(div2))
- Codeforces Round #297 (Div. 2) C - Ilya and Sticks
- Codeforces Round #297 (Div. 2) C. Ilya and Sticks
- Javascript 严格模式use strict详解
- Rowhammer
- 前端开发面试知识点大纲
- Python学习笔记之八皇后问题
- 11.5.总结
- Codeforces 525C Ilya and Sticks【贪心】
- 千万不要在VMWare的NAT模式下使用nmap
- 三维模型自动添加支撑的几种实现思路
- 使用 pyenv 可以在一个系统中安装多个python版本
- noip模拟题11.9
- OI路上 day -9
- 也谈 Python 的中文编码处理
- Linux 双网卡配置两个IP同时只有一个会通的原因
- 视觉SLAM漫谈