E. Pavel and Triangles dp+问题转化
E. Pavel and Triangles dp+问题转化
题意
给出n种线段,每种线段给出一定数量,其中每个线段都是
\(2^k\) 问最多能组成多少个三角形
思路
因为每个是\(2^k\)所以能组成三角形的线段要么是ABB要么是AAA 问题就转化成了凑ABB和BBB的组成怎么凑最多
怎么凑最多呢,可以注意到 ABB 和BBB 都有一对BB 所以我们优先凑对子 然后取和凑不到BBB的去组成三角形
这可能有点不好解释,从代码来说就是从后往前扫,先凑对子,如果当前的\(a[i]\mod(2)==1\)也就是凑完对子还有剩余,这个剩余不可能和后面的组成成三角形了,所以直接拿出一个对子来跟它凑成一个三角形,最后看有几个对子 最高的对子和最低的对子拿出一个可以凑成一个三角形,其实也就相等与每拿出3个线段都可以凑成一个三角形,所以只要duizi*2/3就知道其能凑成多少个三角形了
#include<bits/stdc++.h>
#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++)
#define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr))
#define F first
#define S second
#define pii pair<int ,int >
#define mkp make_pair
#define pb push_back
using namespace std;
typedef long long ll;
const int maxn = 3e5+4;
int a[maxn];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
ll ans=0,duizi=0;
for(int i=n-1;i>=0;i--){
duizi+=a[i]/2;
if(duizi&&a[i]%2){
duizi--;
ans++;
}
}
ans+=duizi*2/3;
cout<<ans<<endl;
return 0;
}
E. Pavel and Triangles dp+问题转化的更多相关文章
- Codeforces 1119E Pavel and Triangles (贪心)
Codeforces Global Round 2 题目链接: E. Pavel and Triangles Pavel has several sticks with lengths equal t ...
- Codeforces Global Round 2 E. Pavel and Triangles(思维+DP)
题目链接:https://codeforces.com/contest/1119/problem/E 题意:有n种长度的棍子,有a_i根2^i长度的棍子,问最多可以组成多少个三角形 题解:dp[i]表 ...
- Android 中像素px和dp的转化
在Android的布局文件中,往往使用dp作为控件的宽度和高度尺寸,但是在Java代码中,调用getWidth()方法获得的尺寸单位却是像素px,这两个单位有明显的区别:dp和屏幕的密度有关,而px与 ...
- Codeforces 79D - Password(状压 dp+差分转化)
Codeforces 题目传送门 & 洛谷题目传送门 一个远古场的 *2800,在现在看来大概 *2600 左右罢( 不过我写这篇题解的原因大概是因为这题教会了我一个套路罢( 首先注意到每次翻 ...
- hdu 4504 dp问题 转化能力不够 对状态的转移也是不够
威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- hdu5432Rikka with Array (数位dp+十进制转化为二进制)
Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...
- Android dp px转化公式
// DisplayMetrics metrics = getResources().getDisplayMetrics(); // int statusBarHeight = (int) Math. ...
- 【CF1119E】Pavel and Triangles
题目大意:有 N 种长度的边,第 i 种长度为 \(2^i\),给定一些数量的这些边,问最多可以组合出多少种三角形. 题解:应该是用贪心求解,不过选择什么样的贪心策略很关键. 首先分析可知,两个较大边 ...
- cf-Global Round2-E. Pavel and Triangles
题目链接:http://codeforces.com/contest/1119/problem/E 题意:给定n个数a[i],分别表示长度为2i-1的木条的数量,问使用这些木条最多能构成多少三角形. ...
随机推荐
- JavaDay7(下)
问题1描述 编写一个方法,返回一个double类型二维数组,数组中的元素通过解析字符串参数获得. 代码实现: public class ArrayParser { public static void ...
- Scala之Option: Some None
Option类型本身没有实现,而是依赖两个子类型提供具体实习那:Some和None.Some是iyge类型参数化的单元素集合,None是一个空集合. ----<scala学习手册>P119
- IDEA 和 Webstorm JAR包方式破解
IDEA 和 Webstorm JAR包方式破解 IDEA 我是用的IDEA版本是 18.3,更新版本的IDEA很多激活码都不能用了,或者不好激活了. 首先下载相应的 软件版本 和破解 jar包. 下 ...
- 推荐7款用于PHP的代码调试工具,太有用了!
当谈论到服务器端的脚本语言时,大多数人都会首先想到PHP.在你写完代码后,使用一些检查方面的工具是非常有必要的,无论是单纯的代码调试工具,还是测试优化工具.下面就为广大的PHP开发者介绍7个专为PHP ...
- Nginx proxy_cache 缓存静态文件
原文链接:https://blog.csdn.net/bjgaocp/article/details/87867521 创建缓存目录mkdir /tmp/ngx_cache 添加下面语句在http{ ...
- pyecharts包学习笔记
目录 pyecharts包简介 特性 or 优点 版本 pyecharts包简介 精巧的图表设计.原作者说,当数据分析遇到数据可视化的时候github,该包就诞生了. 可以批量,直观的输出可视化图标吧 ...
- XSS进阶学习-转载
在这篇帖子里面真的可以学到很多xss的知识,特别有过xss基础的看完这个贴子绝对有帮助: 就像里面的师傅所说,看了一篇精髓文章之后,自己xss的功力突飞猛进了. 所提到的帖子入口:https://mp ...
- docker部署mysql Navicat远程连接
docker部署mysql Navicat远程连接 docker search mysql 查看mysql镜像(是去dockerHub网站搜素镜像,遇到问题可以去该网站查看官方文档,纯英文文档估计 ...
- springboot项目集成activity
1.按照上一篇博客,新建好springboot项目后,在项目pom.xml文件中添加activity依赖 <dependency> <groupId>org.activiti& ...
- Test Blog
计算机实习报告 姓名:王方正 学号:20174314 一.开发任务 题目源自<程序设计实践教程>教材22题,学生基本信息管理.描述略. 二.需求分析 1.说明自己针对这个任务将完成哪些功能 ...