码迷,mamicode.com
首页 > 其他好文 > 详细

kuangbin带你飞---数论基础

时间:2019-05-09 13:19:51      阅读:524      评论:0      收藏:0      [点我收藏+]

标签:false   cas   +=   break   strong   函数   phi   --   证明   

又是几天过去,最近在刷数论基础和dp基础。kuangbin数论专题刷了差不多一大半吧。深深感jio到自己的菜。唉,温故而知新,所以决定在踩一遍坑点。

Bi-shoe and Phi-shoe

https://vjudge.net/problem/LightOJ-1370

题目大意:给出一些数字,对于每个数字找到一个欧拉函数值大于等于这个数的数,求找到的所有数的最小和。

分析:其实用欧拉筛打表欧拉函数值可以发现一个规律,质数的欧拉函数上升增加的速度远比其他数字快,所以此题只用找到第一个大于n的数即可。(别问我怎么证明的,,因为,,我也不知道0.0)

代码如下:

技术图片
#include<bits/stdc++.h>
using namespace std;
const int N=1e7+5;

bool prime[N];
void is_prime()
{
    for(int i=2;i<N;i++)
        prime[i]=true;
    for(int i=2;i*i<N;i++)
        if(prime[i])
            for(int j=i*i;j<=N;j+=i)
                prime[j]=false;  
}

int main()
{
    ios::sync_with_stdio(false);
    is_prime();
    int T;
    cin>>T;
    for(int l=1;l<=T;l++)
    {
        int n;
        cin>>n;
        long long sum=0;
        for(int i=1;i<=n;i++)
        {
            int a;
            cin>>a;
            for(int j=a+1;j<N;j++)
            {
                if(prime[j])
                {
                    sum+=j;
                    break;
                }
            }
        }
        cout<<"Case "<<l<<": "<<sum<<" Xukha"<<endl;
    }
    return 0;
}
View Code

 Aladdin and the Flying Carpet

https://vjudge.net/problem/LightOJ-1341

题目大意:给出一个长方形的面积a(不是正方形),给出该长方形最小的边b,问组成该面积的长方形有多少种组合方案。比如12 2,有{2,6},{3,4}两种组合方案。

分析:求因子数一下就会想到唯一分解定理,然后这题就是求s的因数总个数然后减去小于b的情况。

代码如下:

 

kuangbin带你飞---数论基础

标签:false   cas   +=   break   strong   函数   phi   --   证明   

原文地址:https://www.cnblogs.com/cwlboss/p/10815999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!