51nod 1596 搬货物
来源:互联网 发布:mac 繁体转简体 编辑:程序博客网 时间:2024/05/20 22:26
1596 搬货物
题目来源: CodeForces
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
收藏
关注
现在有n个货物,第i个货物的重量是
样例解释:
1,1,2作为一组。
3,3作为一组。
Input
单组测试数据。第一行有一个整数n (1≤n≤10^6),表示有几个货物。第二行有n个整数 w1,w2,...,wn,(0≤wi≤10^6)。
Output
输出最少的运货次数。
Input示例
样例输入151 1 2 3 3
Output示例
样例输出12
这个题 好坑 当开始 不知道 从哪里下手 刚开始的思路就是 先排序 然后 如果两个相等就相加 a[j]==a[j-1] a[j]++ a[j-1] =0; 这样的话 丢掉很多种结果 而且还超时
看了大神么你的代码 觉的自己对二进制的了解真是渣的一笔 而且 还学到了 位运算 >>1 == /2 &1==%2 之前看别人的代码 看到这些也就没有 深究 今天长了知识
利用二进制的 做
#include<iostream>#include<stdio.h>#include<algorithm>#include<cstring>using namespace std;int a[1000001+1000];//long long b[1000001];int main(){ int n; cin>>n; int mx=0; memset(a,0,sizeof(a)); for(int j=0;j<n;j++){ int x; scanf("%d",&x); a[x]++; mx=max(mx,x); } int sum=0; for(int j=0;j<mx+1000;j++){ a[j+1]+=a[j]>>1; a[j]=a[j]&1; sum+=a[j]; } cout<<sum<<endl; return 0;}
阅读全文
0 0
- 51NOD 1596 搬货物
- 51Nod-1596-搬货物
- 51nod 1596 搬货物
- 51nod 1596 搬货物
- 51nod 1596 搬货物
- 51Nod 1596 搬货物
- 51nod-1596 搬货物
- 51Nod 1596 搬货物
- 51nod-1596 搬货物
- 51nod 1596 搬货物
- 51Nod 1596 搬货物
- 51nod 1596 搬货物
- 51Nod 1596 搬货物
- 51nod 1596 搬货物
- 51nod 1596 搬货物
- 51nod 1596 搬货物
- 51nod 1596 搬货物
- 51nod 搬货物
- [Ybt 1351] 家谱树 ——拓扑排序
- 线程调度的方法2
- MyEclipse2014上传项目到github
- 字符串的交换,, 大神与我的作品有差距。等我成为了指针之王再来干他!!!!
- NOIP2017 赛前集训
- 51nod 1596 搬货物
- C语言中函数之指针参数
- python 通过pip生成requirements.txt,以及通过该文件导入依赖库
- 51单片机学习随笔(2)
- Axure打包html
- 以工作和任务为中心的组织设计,只能制结构和团队
- Oracle之分区表与全局索引和局部索引
- 【Maven】使用Eclipse创建Maven项目(五)
- 带缓冲区的输出流(写)案例2