UVA数学入门训练Round1[6]
| UVA - 11388 |
题意:输入g和l,找到a和b,gcd(a,b)=g,lacm(a,b)=l,a<b且a最小
g不能整除l时无解,否则一定g,l最小
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int T,g,l;
int main(int argc, const char * argv[]){
T=read();
while(T--){
g=read();l=read();
if(l%g) printf("-1\n");
else printf("%d %d\n",g,l);
}
return ;
}
PS:Luogup1029求数量的话可以依据a*b=g*l枚举
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
ll g,l;
int cnt=;
inline int gcd(int a,int b){
return b==?a:gcd(b,a%b);
}
int main(int argc, const char * argv[]) {
g=read();l=read();
ll n=g*l;
for(ll i=g;i<=l;i++){
if(n%i) continue;
ll j=n/i;
if(gcd(i,j)==g) cnt++;
}
printf("%d",cnt);
return ;
}
| UVA - 11889 |
题意:输入A和C,求最小的B使lcm(A,B)=C
用唯一分解定理想
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int a,l,T;
inline int gcd(int a,int b){return b==?a:gcd(b,a%b);}
int main(int argc, const char * argv[]) {
T=read();
while(T--){
a=read();l=read();
if(l%a) printf("NO SOLUTION\n");
else{
int b=l/a,g=gcd(a,b),t=;
while(g!=){
t*=g;
a/=g;
g=gcd(a,b);
}
printf("%d\n",b*t);
}
}
return ;
}
| UVA - 10943 |
题意:k个不超过n的非负整数加起来和为n有几种方案
完全背包
f[i][j]表示i个数加起来和为j
转移可以从O(n)变O(1)
可以是f[i-1][j]+0,也可以是f[i][j-1]+1
f[i][j]=(f[i-1][j]+f[i][j-1])%MOD;
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=,MOD=1e6;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n,m,f[N][N];
void dp(){
for(int i=;i<=;i++) f[i][]=;
for(int i=;i<=;i++)
for(int j=;j<=;j++)
f[i][j]=(f[i-][j]+f[i][j-])%MOD;
}
int main(int argc, const char * argv[]) {
dp();
while((n=read())){
m=read();
printf("%d\n",f[m][n]);
} return ;
}
| UVA - 10791 |
题意:输入n,求至少两个正整数,使lcm=n
唯一分解定理分解后就是最优解,注意素数
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n;
ll sol(int n){
if(n==) return ;
int cnt=,m=sqrt(n)+;
ll ans=;
for(int i=;i<=m&&n!=;i++) if(n%i==){
cnt++;
ll d=;
while(n%i==) n/=i,d*=i;
ans+=d;
}
if(n>) cnt++,ans+=n;
if(cnt==) return ans+;
else return ans;
}
int main(int argc, const char * argv[]) {
int cas=;
while(scanf("%d",&n)!=EOF&&n){
printf("Case %d: %lld\n",++cas,sol(n));
}
return ;
}
| UVA - 10780 |
题意: 输入n和m,求最大的k使m^k整除n!
唯一分解定理裸
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=1e4+;
typedef long long ll;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int T,m,n,e1[N],e2[N],p[N],vis[N],cnt=;
void era(int n){
int m=sqrt(n)+;
for(int i=;i<=m;i++) if(!vis[i])
for(int j=i*i;j<=n;j+=i) vis[j]=;
for(int i=;i<=n;i++) if(!vis[i]) p[++cnt]=i;
}
void divide(int n,int e[]){
for(int i=;i<=cnt&&n!=;i++) if(n%p[i]==){
int d=;
while(n%p[i]==) n/=p[i],d++;
e[i]+=d;
}
}
int main(int argc, const char * argv[]){
era();
T=read();int cas=;
while(T--){
printf("Case %d:\n",++cas);
memset(e1,,sizeof(e1));
memset(e2,,sizeof(e2));
m=read();n=read();
divide(m,e1);
for(int i=;i<=n;i++) divide(i,e2);
int flag=,k=,len=max(m,n);
for(int i=;i<=len;i++){//printf("%d %d %d\n",p[i],e1[i],e2[i]);
if(e1[i]>e2[i]){flag=;printf("Impossible to divide\n");break;}
if(e2[i]!=&&e1[i]!=) k=min(k,e2[i]/e1[i]);
}
if(!flag) printf("%d\n",k);
} return ;
}
UVA数学入门训练Round1[6]的更多相关文章
- 入门训练 Fibonacci数列
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时, ...
- 蓝桥杯 入门训练 Fibonacci数列(水题,斐波那契数列)
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非 ...
- 入门训练 A+B问题
http://lx.lanqiao.org/problemset.page?code=BEGIN-&userid=34549 入门训练 A+B问题 时间限制:1.0s 内存限制:2 ...
- 蓝桥杯 入门训练 Fibonacci数列
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. ...
- 【蓝桥杯】入门训练 Fibonacci数列
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. ...
- 入门训练 Fibonacci数列 (水题)
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n ...
- lqb 入门训练 A+B问题
入门训练 A+B问题 时间限制:1.0s 内存限制:256.0MB 问题描述 输入A.B,输出A+B. 说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标. 输入格式 输入的第 ...
- lqb 入门训练 序列求和 (PS:用长整数做数据的输入输出)
入门训练 序列求和 时间限制:1.0s 内存限制:256.0MB 问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3 ...
- lqb 入门训练 圆的面积 (PS: PI的精确计算方法 atan(1.0) * 4)
入门训练 圆的面积 时间限制:1.0s 内存限制:256.0MB 问题描述 给定圆的半径r,求圆的面积. 输入格式 输入包含一个整数r,表示圆的半径. 输出格式 输出一行,包含一个实数,四 ...
随机推荐
- JQuery的ajax
JQuery-AJAX: jQuery load() 方法是简单但强大的 AJAX 方法. $(selector).load(URL,data,callback);(这三个参数可以随意设置几个) @ ...
- ABySS非root权限安装
本文转自 http://yangl.net/2015/11/12/abyss_install/ ABySS: ABySS is a de novo, parallel, paired-end seq ...
- Windows下安装Nginx+php+mysql环境
系统:Windows 7 64位系统 安装之前,首先下载软件: Nginx: http://nginx.org/en/download.html PHP Stable PHP 5.6.26: http ...
- ABP Migration(数据库迁移)
今天准备说说EntityFramework 6.0+,它与我之前所学的4.0有所区别,自从4.1发布以来,code first 被许多人所钟爱,Dbcontext API也由此时而生.早在学校的时候就 ...
- SqlServer灾备方案(本地)
如果你曾经有那么一个不经意的心跳来自于数据库数据损坏:错误的新增.更新.删除 .那么下面的方案一定能抚平你的创伤! 对于一个数据库小白来说,数据库的任何闪失带来的打击可说都是致命的.最初,我们让一个叫 ...
- jquery图片播放切换插件
点击这里查看效果可自定义数字样式和左右点击按钮 这个更好:移入按钮切换版本 更多图片轮播 以下是HTML文件代码: <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- CSS3中flexbox如何实现水平垂直居中和三列等高布局
最近这些天都在弥补css以及css3的基础知识,在打开网页的时候,发现了火狐默认首页上有这样一个东西.
- SharePoint 2013 Word 转换PDF服务介绍及示例
前言:在SharePoint使用过程中,经常会发现将文档进行格式转换的需求,之前,看到SharePoint 2013有将PPT转换PDF文档的服务,后来,才发现SharePoint 2010开始,就有 ...
- 委托的N种写法,你喜欢哪种?
一.委托调用方式 1. 最原始版本: delegate string PlusStringHandle(string x, string y); class Program { static void ...
- Android开发学习——android存储
Android的存储 内部存储空间RAM内存:运行内存,相当于电脑的内存ROM内存:存储内存,相当于电脑的硬盘外部存储空间 SD卡:相当于电脑的移动硬盘 * 2.2之前,sd卡路径:sdcard ...