题意 : 一个十进制整数被叫做权势二进制, 当他的十进制表示的时候只由0或1组成。例如0, 1, 101, 110011都是权势二进制而2, 12, 900不是。当给定一个n (1<=n<=1,000,000)的时候, 计算一下最少要多少个权势二进制相加才能得到n。

分析 : 由于权势二进制可以在任意一位构造出1或者0, 那我就可以让每一位都在同时减1, 直到某一位变成0, 继续减其他位, 直到全部都等于0。例如 23303, 可以先构造11101进行相减, 使得除了零外的每一位都减1, 减两次后会变成 01101, 此时再减一次1101即可, 可以看出减的次数取决于这个数中最大的位数, 比如23303就是3, 8889就是9......而减的次数也就是题目所求的最少相加次数。

瞎搞 : 完全没看出考查思维……然后先是进制转化构造出了1,000,000内所有的权势二进制, 最后发现二分查找+贪心无法解决, 一脸懵逼看了题解才发现居然如此巧妙。=_=

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<algorithm>
using namespace std;

int main(void)
{
    char ch;
    ;
    while( (ch=getchar()) && ch!='\n' ){
        ' > Max ){
            Max = ch-';
        }
    }
    printf("%d\n", Max);
    ;
}

最新文章

  1. 跳转Activity两种方法
  2. SessionState
  3. ios-UserDefaults
  4. 总结的js性能优化方面的小知识
  5. MySQL 挺有意思
  6. windows下apache+php+mysql 环境配置方法
  7. SVN与TortoiseSVN实战:标签与分支
  8. Groovy获取json和xml数据
  9. &lt;Chapter 2&gt;2-2-2.开发Python应用(Developing a Python App)
  10. 日入过百优质消除手游数据分享—萌萌哒包子脸爱消除(游戏开发引擎:libgdx)
  11. SQL 存储过程 通过多个ID更新数据 分类: SQL Server 2014-12-08 16:08 299人阅读 评论(0) 收藏
  12. okhttp 常用使用方式 封装 演示
  13. Android Studio Gradle Running报错:Failed to complete Gradle execution.
  14. 【LeetCode】3Sum 解决报告
  15. onSaveInstanceState()和onRestoreInstanceState()方法
  16. JS实现EasyUI ,Datagrid,合并单元格功能
  17. PAT1059:Prime Factors
  18. mysql5.5大数据量下表结构升级
  19. Django:模板template(一)
  20. topcoder srm 703 div1 -3

热门文章

  1. flask response 详解
  2. Linux 根据端口快速停止服务并启动的办法
  3. 2018icpc宁夏邀请赛_L_Continuous Intervals
  4. 092、部署Graylog日志系统(2019-05-16 周四)
  5. 087、日志管理之 Docker logs (2019-05-09)
  6. java.lang.IllegalArgumentException: id to load is required for loading
  7. UnknownPropertyException(Yii2)
  8. 优雅的swiper实例
  9. python cv2展示网络图片、图片编解码、及与base64转换
  10. ipcs - 提供基于 ipc (Inter-process communication)结构的信息