codeforces #304D 546D. Soldier and Number Game(数论+动态规划+前缀和)

转载 2015年07月10日 16:53:06

题目链接:

点击打开链接

题目大意:

给出两个数,问a!/b!的每次除以一个数,最多除多少次

题目分析:

dp[i]是对于i能够除的最大次数(质因数的总个数,包括重复的质因数),那么dp[i] = dp[i/p]+1

然后递推一下,作为预处理

然后预处理出前缀和,利用前缀和求出b+1~a所有数的质因子的总数

代码如下:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define MAX 5000007


using namespace std;

typedef long long LL;

int t,a,b;
int maxPrime[MAX];
int num[MAX];
LL sum[MAX];

void init ( )
{
    memset ( maxPrime , -1 , sizeof ( maxPrime ) );
    for ( int i = 2 ; i < MAX ; i++ )
    {
        if ( ~maxPrime[i] ) continue;
        for ( int j = 1 , t =i ; t < MAX ; j++ , t += i )
            maxPrime[t] = i;
    }
    num[1] = 0;
    for ( int i = 2 ; i < MAX ; i++ )
        if ( maxPrime[i] != -1 )
            num[i] = num[i/maxPrime[i]] + 1;
    sum[0] = 0;
    sum[1] = num[1];
    for ( int i = 2 ; i < MAX ; i++ )
        sum[i] = sum[i-1] + num[i];
}

int main ( )
{
    scanf ( "%d" , &t );
    init();
    while ( t-- )
    {
        scanf ( "%d%d" , &a , &b );
        printf ( "%I64d\n" , sum[a] - sum[b] );
    }
}


Codeforces Round #304 (Div. 2) 546D Soldier and Number Game 质因子个数

题意:两个军人玩游戏,第一个军人把一个数n交给第二个军人,第二个军人把n用x整除n,然后把n/x交给第一个军人。n=1时结束。问最大的回合数 思路:就等于求一个数的质因子个数,比如说4,就是 2*2...

Codeforces Round #304 (Div. 2) D. Soldier and Number Game(筛选素因子,前缀和)

题目链接:点击打开链接 题意:两个整数a, b。求出a, a - 1, a - 2........b +1这些整数最多能被拆分成多少个数相乘。 思路:数量最多,当然都要拆成素数。因为是要查1e6次...
  • CillyB
  • CillyB
  • 2016年11月18日 20:21
  • 181

[Codeforces546D]Soldier and Number Game[dp][实现][素数筛][分解整数][数学]

原题链接:[Codeforces546D]Soldier and Number Game[dp][实现][素数筛][分解整数][数学] 题意分析:本题从实质上来说,就是给你两个整数a, b。求出a, ...

CodeForces-546D.Soldier and Number Game

Two soldiers are playing a game. At the beginning first of them chooses a positive integer n and giv...

Codeforces Round #304 (Div. 2) D. Soldier and Number Game

D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes i...

Codeforces Round #304 (Div. 2) D Soldier and Number Game

D. Soldier and Number Game time limit per test  3 seconds memory limit per test  256 meg...

Codeforces Round #304 (Div. 2)D. Soldier and Number Game

D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megab...

Codeforces Round #304 (Div. 2) D - Soldier and Number Game

D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megab...

模拟赛 cf#304div2 D.Soldier and Number Game ,人生中第一次在比赛中A掉D题,好吧我承认这个D题有点水

虽然水,但是比赛的时候最后一秒也才刚过800的人A掉。 而且过掉之后排名也400多,所以不是太水吧。 反正还是比较开心的,虽然自己知道自己很弱,真的很弱,其实讲道理要过掉E 才对。 分析题意,记录...

CodeForces 828D Soldier and Number Game(数学)

题目链接:https://vjudge.net/problem/CodeForces-546D题意:给一个数n=a!/b!,求这个数n质因数分解后,质因数的个数之和。思路:a, b的范围是(1 ≤ b...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:codeforces #304D 546D. Soldier and Number Game(数论+动态规划+前缀和)
举报原因:
原因补充:

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