kuangbin带你飞---数论基础
Posted cwlboss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kuangbin带你飞---数论基础相关的知识,希望对你有一定的参考价值。
又是几天过去,最近在刷数论基础和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; }
Aladdin and the Flying Carpet
https://vjudge.net/problem/LightOJ-1341
题目大意:给出一个长方形的面积a(不是正方形),给出该长方形最小的边b,问组成该面积的长方形有多少种组合方案。比如12 2,有{2,6},{3,4}两种组合方案。
分析:求因子数一下就会想到唯一分解定理,然后这题就是求s的因数总个数然后减去小于b的情况。
代码如下:
以上是关于kuangbin带你飞---数论基础的主要内容,如果未能解决你的问题,请参考以下文章
kuangbin带你飞----线段树专题一(基础操作,单点,区间更新和查询)
算法系列学习[kuangbin带你飞]专题十二 基础DP1 G - 免费馅饼