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,表示圆的半径. 输出格式 输出一行,包含一个实数,四 ...
随机推荐
- UDS(ISO14229-2006) 汉译(No.6 应用层服务)
6.1总览 应用层服务通常被当作诊断服务.应用层服务用于在基于客户端-服务器的系统(Client-Server base System)中执行一些功能,例如针对车载服务器(ECU)的检测.检查.监控和 ...
- Linux 定时任务crontab
crontab定时任务格式 1 * * * * * command 2 第1列表示分钟1-59 每分钟用*或者 */1表示 3 第2列表示小时1-23(0表示0点) 4 第3列表示日期1-31 5 第 ...
- mybatis中的延迟加载
一.延迟加载 resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 延迟加载:先 ...
- 从零开始学 Java - 搭建 Spring MVC 框架
没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...
- C#综合揭秘——通过修改注册表建立Windows自定义协议
引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...
- C# Async/Await
前言 前几天去一个公司面试,被问到 Async/Await,之前只知道有这么个东西,没有深入了解过就没有答上来.今天没啥事情,就查了下资料. 同步编程,异步编程概念 通常情况下,我们写的程 ...
- jquery投色子动画
可以点击这里体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/26.htm 效果图: 代码如下: <!DOCTYPE HTML> <html& ...
- http 缓存相关学习
在面试中被问到好多缓存的问题 200 cache cookies 304(304 和 200 cache的区别) cookies在什么时候创建 发送 等等 自己回答的并不是很好 这次仔细的学习 ...
- Hui之Hui.js 官方文档
基础 // 判断值是否是指定数据类型 var result = hui.isTargetType("百签软件", "string"); //=>true ...
- 心无旁骛,向死而生:WGDC2016给创企上的一堂课
"这是最好的时代,也是最坏的时代:这是希望的春天,也是失望的冬天." ------狄更斯 WGDC2016落幕已经一月有余,我仍然记得会议结束后,穿过高大宽敞的国家会议中心大厅,走 ...