购物(sum)
购物(sum)
题目描述
visit_world 有一个商店,商店里卖N个商品,第ii 个的价格为 a[[i]
我们称一个正整数K 是美妙的,当且仅当我们可以在商店里选购若干个商品,使得价格之和落在区间 [K,2K]中。
问:有多少个美妙的数。
输入
第一行一个整数NN。
接下来一行 NN个整数,描述数组a[]a[]。
输出
输出一行一个整数,表示答案。
样例输入
3
1 2 3
样例输出
6
提示
解释
可以证明1≤K≤6都是美妙的,除此之外的数都不是美妙的。
样例 2
/upload/file/20181017/20181017190720_44742.zip
数据范围和子任务
子任务 1(30 分):N≤100,ai≤100.
子任务 2(20 分):N≤100000,ai≤20.
子任务 3(20 分):N≤3,ai≤109.
子任务 4(30 分):N≤105,ai≤109
来源
solution
把a[i]从小到大排序
假设我已经知道了1~a[i-1]的答案为[1,sum(a[i])] (中间有的可能取不到)
对于单独的a[i] 答案是[ai+1/2,a[i]]
我们分个类:
1 a[i]>sum
如果a[i]+1/2>sum[i] 那么sum~a[i]+1/2 一定取不到(a[i]之后都大于a[i])
反之一定可以,也就是把右端改成a[i]+sum;
2.a[i]<sum 直接把a[i]叠上sum就好的,也是把右端改成a[i]+sum;
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
int n,a[500005];
ll sum,ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i];}
sort(a+1,a+n+1);
ll la=1;
for(int i=1;i<=n;i++){
ll l=(a[i]+1)/2;
if(l>la)ans=ans+l-la;
la=la+a[i];
}
cout<<sum-ans<<endl;
return 0;
}
购物(sum)的更多相关文章
- C算法编程题(七)购物
前言 上一篇<C算法编程题(六)串的处理> 有些朋友看过我写的这个算法编程题系列,都说你写的不是什么算法,也不是什么C++,大家也给我提出用一些C++特性去实现问题更方便些,在这里谢谢大家 ...
- Python开发程序:ATM+购物商城
一.程序要求 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还 ...
- 【BZOJ】【1042】【HAOI2008】硬币购物
DP+容斥原理 sigh……就差一点…… 四种硬币的数量限制就是四个条件,满足条件1的方案集合为A,满足条件2的方案集合为B……我们要求的就是同时满足四个条件的方案集合$A\bigcap B\bigc ...
- Bzoj 1042: [HAOI2008]硬币购物 容斥原理,动态规划,背包dp
1042: [HAOI2008]硬币购物 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1747 Solved: 1015[Submit][Stat ...
- HAOI 硬币购物
试题描述: 现在一共有4种硬币,面值各不相同,分别为ci(i=1,2,3,4).某人去商店买东西,去了tot次,每次带di枚ci硬币,购买价值为si的货物.请问每次有多少种付款方法. 输入: 第一行包 ...
- bzoj 1042: [HAOI2008]硬币购物 dp+容斥原理
题目链接 1042: [HAOI2008]硬币购物 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1706 Solved: 985[Submit][ ...
- php 实现购物车功能,以大苹果购物网为例,上图上代码。。。。
首先是几个简单的登录页面 <body> <form action="chuli.php" method="post"> <div ...
- for循环购物清单
//实现如图的购物清单 package ch06; import java.util.Scanner; /** * Created by liwenj on 2017/7/18. */ public ...
- BZOJ 1042: [HAOI2008]硬币购物 [容斥原理]
1042: [HAOI2008]硬币购物 题意:4种硬币.面值分别为c1,c2,c3,c4.1000次询问每种硬币di个,凑出\(s\le 10^5\)的方案数 完全背包方案数? 询问太多了 看了题解 ...
随机推荐
- AngularJs学习笔记-服务
服务 (1)在模块中声明的服务对所有组件可见 (2)在组件中声明的服务对自己本身和其子组件 (3)在组件中声明的服务会覆盖在模块中声明的服务 (4)通过@Injectable()装饰器可以在服务中注入 ...
- 毛毛虫组【Beta】Scrum Meeting 2
第二天 日期:2019/6/24 前言 第二次会议: 时间:6月24日 地点:教10-503 内容:此次会议主要是进一步完善系统,分配进行文档的准备工作. 1.1 今日完成任务情况以及遇到的问题. 今 ...
- 《坐热板凳》第九次团队作业:Beta冲刺与验收准备(第一天)
<坐热板凳>第九次团队作业:Beta冲刺与验收准备 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https ...
- 从多个textarea中随机选取一个内容
<div id="IMContentTest"> <textarea name="IMContent" class="IMClass ...
- windows平台下MongoDB安装和环境搭建
下载安装包或者压缩包 添加db存储和日志存储文件夹 添加服务.配置环境变量.启动Mongo 本例:安装路径:D:Program Files/MongoDB 配置文件的路径:D:MongoDB 一.安装 ...
- 解决MySQL安装到最后一步未响应的三种方法
这种情况一般是你以前安装过MySQL数据库服务项被占用了.解决方法: 方法一:安装MySQL的时候在这一步时它默认的服务名是“MySQL” 只需要把这个名字改了就可以了.可以把默认的服务器的名称手动改 ...
- java基础面试题:如何把一段逗号分割的字符串转换成一个数组? String s = "a" +"b" + "c" + "d";生成几个对象?
package com.swift; public class Douhao_String_Test { public static void main(String[] args) { /* * 如 ...
- 基于 muse-ui 封装一个微信公众号上传插件 实现多图上传
Vue.component('my-wx-upload', { template: ` <mu-grid-list :cols="3" :cellHeight="9 ...
- mysql 报错 Operand should contain 1 column(s)
报错 Operand should contain 1 column(s) 原因 select 后面加了 () select (x,x,x)
- vue.js 图表chart.js使用
在使用这个chart.js之前,自己写过一个饼图,总之碰到的问题不少,所以能用现成的插件就用,能节省不少时间 这里不打算介绍chart.js里面详细的参数意义和各个参数的用法,只作为首次使用chart ...