cf-Global Round2-E. Pavel and Triangles

题目链接:http://codeforces.com/contest/1119/problem/E

题意:给定n个数a[i],分别表示长度为2i-1的木条的数量,问使用这些木条最多能构成多少三角形。

思路:简单分析后可以发现能构成三角形的组合只能是(i,j,j) (i<=j)。利用贪心的思想,从j=0到n-1依次处理,处理j时,优先考虑(i,j,j) (i<j)的情况,然后考虑(j,j,j)的情况。

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 typedef long long LL;
 5 int n;
 6 LL pre,nw,ans;
 7
 8 int main(){
 9     scanf("%d",&n);
10     for(int i=0;i<n;++i){
11         scanf("%lld",&nw);
12         LL t=min(pre,nw>>1);
13         nw-=t<<1;
14         pre-=t;
15         ans+=t;
16         ans+=(nw/3);
17         nw%=3;
18         pre+=nw;
19     }
20     printf("%lld\n",ans);
21     return 0;
22 }

原文地址:https://www.cnblogs.com/FrankChen831X/p/10679268.html

时间: 2024-08-30 15:20:41

cf-Global Round2-E. Pavel and Triangles的相关文章

【CF global round2】D

题目大意:有 N 种长度的边,第 i 种长度为 \(2^i\),给定一些数量的这些边,问最多可以组合出多少种三角形. 题解:应该是用贪心求解,不过选择什么样的贪心策略很关键. 首先分析可知,两个较大边和一个较小边可以组合出三角形,但是反过来不行.从后往前考虑,记录到目前为止有多少对边,若当前边为奇数,考虑是否有足够的对来匹配,若没有,则一定失配,最后计算答案即可. 代码如下 #include <bits/stdc++.h> #define fi first #define se second

Codeforces 1119E Pavel and Triangles (贪心)

Codeforces Global Round 2 题目链接: E. Pavel and Triangles Pavel has several sticks with lengths equal to powers of two. He has \(a_0\) sticks of length \(2^0=1\), \(a1\) sticks of length \(2^1=2\), ..., \(a_{n?1}\) sticks of length \(2^{n?1}\). Pavel wa

利用ldirectord实现lvs后端realserver健康状态检查

ldirectord用来实现LVS负载均衡资源在主.备节点间的故障转移.在首次启动时,ldirectord可以自动创建IPVS表.此外,它还可以监控各RealServer的运行状态,一旦发现某RealServer运行异常时,还可以将其从IPVS表中移除. ldirectord进程通过向RealServer的RIP发送资源访问请求并通过由RealServer返回的响应信息来确定RealServer的运行状态.在Director上,每一个VIP需要一个单独的ldirectord进程.如果RealSe

Heartbeat v2 + CRM + heartbeat-ldirectord实现LVS高可用

一.简介 heartbeat v2 版的资源管理器(CRM)就是crm,废弃了haresouce.由于crm的配置文件都是xml格式的,没有xml功底的很难驾驭,因此我们可以使用gui的方式来配置,从而让gui来帮我们将配置文件转化为xml格式的.heartbeat保存cib.xml的位置如下:/var/lib/heartbeat/crm/cib.xml heartbeat-ldirectord是专门为lvs设计的,它可以实现lvs的配置,不需要通过ipvsadm去管理,ldirectord的配

heartbeat+ldirectord+lvs nat

ldirectord来管理lvs,可以定时检查后端realserver,发现故障后自动清除,恢复后自动加入lvs表,让我们来感受下吧. lvs端: node1 eth0:192.168.3.124 eth0:192.168.8.124用于heartbeat心跳 node2 eth0:192.168.3.126 eth0:192.168.8.126用于heartbeat心跳 realserver端: web1 eth0:192.168.3.128 eth0:0:192.168.8.128 web2

RHEL6.6 上实现高可用director (linbit+corosync+lvs)

RHEL6.6 epel源 本地源 主Director server 192.168.1.3   主机名 node1.mingxiao.info  node1 备Director server 192.168.1.4   主机名 node2.mingxiao.info  node2 Real server1 192.168.1.5 Real server2 192.168.1.6 VIP 192.168.1.10 主备DS时间同步 主备DS双机互信 主备DS节点名称与 uname -n 相同 n

linxu集群架设——LVS

LVS框架: 三层结构:     网络      (LVS--linux)      (WWW , FTP ,STML)     (GFS,OCFS2)用户 -- >   Director Server  ---> Real Server1       Real Server2    --> 集群文件系统      Real Server3软件: 浏览器        ipvsadm              httpd                 ↑   heartbeat(ldi

corosync+pacemaker实现高可用集群

Corosync corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以实现HA心跳信息传输的功能,是众多实现HA集群软件中之一,可以说corosync是OpenAIS的一部分,然而后面的发展超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方案,如Redhat的RHCS集群套件就是基于corosync实现. corosync只提供了message layer(即实现HeartBeat + CCM),而没有直接提供CRM,一般使用Pacemaker进

heartbeat+ldirectord+lvs实现高可用负载

Lvs + heartbeat+ldirectord高可用测试 1.实验环境 OS:centos 6.7 mini LVS mode :DR Heartbeat: version 2.1.4 Iptables:off Selinux:disabled Lvs master ip:192.168.6.122 Lvs backup ip:192.168.6.123 Realserver1:192.168.6.42:15080 Realserver2:192.168.6.46:15080 VIP:19