NYOJ 46-最少乘法次数(数论)

原创 2015年07月09日 18:56:09

题目地址:NYOJ 46

思路:可以化成二进制来求解,结果是最高位的位数-1+最高位后面1的个数。例如:对于3,它的二进制代码为11,就是用这个最高位(2-1)加上后面的1的个数(1个)。

用最高位1的目的是他能代表了转化的次数,因为2+2=4,4+4=8 8+8=16........

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <set>
#include <queue>
#include <stack>
#include <map>
using namespace std;
typedef long long LL;
const int inf=0x3f3f3f3f;
const double pi= acos(-1.0);
const double esp=1e-6;
const int maxn=21010;
char str[110];
int main()
{
    int T,n,i,j;
    int cnt;
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        memset(str,0,sizeof(str));
        i=0;
        while(n/2!=0){
            str[i++]='0'+n%2;
            n=n/2;
        }
        str[i]='1';
        cnt=0;
        for(j=0;j<i;j++){
            if(str[j]=='1')
               cnt++;
        }
        printf("%d\n",strlen(str)-1+cnt);
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

矩阵连乘最少次数

算法之矩阵连乘 一.问题描叙     给定n个矩阵{A1,A2,……,An},其中Ai与Ai+1是可乘的,i=1,2,……,n-1。    例如:      计算三个矩阵连乘{...
  • hz18790581821
  • hz18790581821
  • 2017年04月11日 20:00
  • 1063

NYOJ 最少步数

最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 这有一个迷宫,有0~8行和0~8列:  1,1,1,1,1,1,1,1,1...
  • Viscu
  • Viscu
  • 2016年08月17日 19:53
  • 287

霍纳规则计算多项式

霍纳规则 假设有n+2个实数a0,a1,…,an,和x的序列,要对多项式Pn(x)= anxn +an-1xn-1+…+a1x+a0求值,直接方法是对每一项分别求值,并把每一项求的值累加...
  • shakingWaves
  • shakingWaves
  • 2013年12月16日 10:24
  • 858

广度优先搜索-最少转机次数

当你和家人一起去海南旅游,可是你的城市并没有直接到达海南的飞机,但是你已经搜集了很多航班的信息,现在你希望找到一种乘坐方式,使得转机次数最少 如何解决呢?     假如你的城市在1号城市,海南在5...
  • u013238646
  • u013238646
  • 2015年05月02日 14:08
  • 1814

NYOJ-1238-最少换乘

ACM模版描述题解和今年天梯赛 L3-2 题面很像,但是更加简单一些。这个题只是一个单纯的最短路,不过我们需要先对路线进行一个比较特殊的建图处理,比如说,4 7 3 64\ 7\ 3\ 6,我们应该在...
  • f_zyj
  • f_zyj
  • 2017年05月03日 23:26
  • 301

最少交换次数

Problem E: 排序 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 89  Solved: 39 Description  对于排序算,相信...
  • u011644927
  • u011644927
  • 2014年03月23日 15:24
  • 1765

飞机换乘次数最少问题的两种解决方案

飞机换乘次数最少问题的两种解决方案
  • slx3320612540
  • slx3320612540
  • 2016年12月01日 00:54
  • 710

NYOJ 58 最小步数(BFS)

最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 这有一个迷宫,有0~8行和0~8列:  1,1,1,1,1,1,1,1,1  1,0,0,1,0,...
  • xia842655187
  • xia842655187
  • 2016年03月22日 21:38
  • 203

关于一个求最小交换次数的算法的一个严格证明,是严格证明,不是想当然

问题描述: 有一个1~n的数列的排列,但是这个数列已经被打乱了排列顺序,如果我们只是通过“交换任意两个元素”,那么,要实现元素从1~n的有序排列,“最少的交换次数是多少?” 解答过程: 首先我们...
  • wangxugangzy05
  • wangxugangzy05
  • 2015年01月06日 10:33
  • 2703

转成有序数组的最少交换次数

问题描述: 有一个1~n的数列的排列,但是这个数列已经被打乱了排列顺序,如果我们只是通过“交换任意两个元素”,那么,要实现元素从1~n的有序排列,“最少的交换次数是多少?” 解答过程: 首先我们...
  • gettogetto
  • gettogetto
  • 2017年04月06日 15:09
  • 667
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NYOJ 46-最少乘法次数(数论)
举报原因:
原因补充:

(最多只允许输入30个字)