概述
我倒要看看你葫芦里装的是什么B
Click me
- 我倒要看看你葫芦里装的是什么B
- UVA11388
- UVA11889
- UVA10943
- UVA10780
- UVA10892
- 11752
- UVA11076
- 11609
- 11609
- UVA 12050
- 10791
- UVA
UVA11388
#include<cstdio>
#include<iostream>
using namespace std;
long long gcd(long long a, long long b){
if(b == 0)return a;
else return gcd(b, a%b);
}
int main(){
int T;
cin >> T;
while(T--){
long long g,l;
int flag = 0;
cin >> l >> g;
if(g%l!=0){cout << -1 << endl; continue;}
if(l == 1){cout << l << " " << g << endl; continue;}
long long a,b;
for(long long i = 1; i*l <=g ; i++){
if(g%(i*l)!=0)continue;
a = i*l;
b = g/i;
if(gcd(g,i*l) != l)continue;
flag = 1;
break;
}
if(flag)cout << min(a,b) << " " << max(a,b) <<endl;
else cout << -1 << endl;
}
return 0;
}
//自己测数据的时候才发现原来最小公倍数一定是最大公因数的倍数,也就是说只要判断最小公倍数是否为最大公因数的倍数即可
UVA11889
#include<cstdio>
#include<iostream>
using namespace std;
long long gcd(long long a, long long b){
if(b == 0)return a;
else return gcd(b, a%b);
}
int main(){
int T;
cin >> T;
while(T--){
long long A,C;
cin >> A >> C;
if(C%A!=0){cout << "NO SOLUTION" << endl;continue;}
long long B = C/A;
long long g = gcd(B, A);
while(g>1){
B*=g;
A/=g;
g = gcd(A,B);
}
cout << B << endl;
}
return 0;
}
//正如我们所知道的A*B= gcd(A,B)*lcm(A,B);
//所以B=gcd(A,B)*(lcm(A,B)/A);
UVA10943
#include<cstdio>
#include<iostream>
#include<cstring>
#define mod 1000000
using namespace std;
int dp[210][210];
int main(){
long long n,k;
dp[0][0] = 1;
for(int i = 1; i <= 200; i++){
dp[i][0] = 1;
for(int j = 1; j<= i ; j++){
dp[i][j] = dp[i-1][j-1]+dp[i-1][j];
dp[i][j]%=mod;
}
}
while(cin >> n >> k && n*k){
cout << dp[n+k-1][k-1] << endl;
}
return 0;
}
//记忆化了C(n,k),哟哟哟;
UVA10780
#include<cstdio>
#include<iostream>
#include<cstring>
#define INF 100000000
using namespace std;
int main(){
int T,t=0;
cin >> T;
while(t++<T){
int n,m;
cin >> m >> n;
int i = 2,ans = INF;
while(m!=1){
int p = 0;//质因子个数;
while(m%i==0){
m/=i;
p++;
}
if(p){
int num = n, temp = 0;
while(num){
temp+=num/i; // 每除一次有i的个数
num/=i;
}
ans = min(ans, temp/p);//取最小的才能满足所有的,temp/p自己意会比如p=3,i=2;
}
i++;
}
printf("Case %d:n",t);
if(ans) cout << ans << endl;
else cout << "Impossible to divide" << endl;
}
return 0;
}
//质因数分解
UVA10892
//暴力代码
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int m;
long long biao[100000];
void init(int T){
m = 0;
for(long long i = 1; i*i<=T; i++){
if(T%i == 0){
biao[m++] = i;
if(T/i!=i)
biao[m++] = T/i;
}
}
sort(biao, biao+m);
}
long long gcd(long long a, long long b){
return b==0?a : gcd(b,a%b);
}
long long solve(long long T){
int ans = 0;
for(int i = 0; i < m; i++){
for(int j = i; j < m; j++){
if(biao[i]*biao[j]/gcd(biao[i],biao[j]) == T)
ans++;
}
}
return ans;
}
int main(){
int T;
while(cin >> T && T){
init(T);
cout << T << " " << solve(T) << endl;
}
return 0;
}
//数论代码
#include<cstdio>
#include<iostream>
using namespace std;
int main(){
long long n,nn;
while(cin >> n && n){
nn = n;
long long ans = 1;//未有质因数时
for(long long i = 2; i*i <= nn; i+= 2){
int cot = 0;
while(nn%i==0){
cot++;
nn/=i;
}
ans*=(cot*2+1);
if(i == 2)i--;
}
if(nn>1) ans = ans *3; //是否有剩下一个比sqrt(T)更大的数
ans = (ans+1)/2;
cout << n << " " << ans << endl;
}
return 0;
}
11752
#include<cstdio>
#include<iostream>
#include<cstring>
#include<set>
using namespace std;
unsigned long long maxn = ~0LL >> 1;
int biao1[] = {2 ,3 ,5 ,7 ,11 ,13 ,17 ,19 ,23 ,29 ,31 ,37 ,41 ,43 ,47 ,53 ,59 ,61};
int biao2[66];
set<unsigned long long> a;
int main(){
for(int i = 0;biao1[i]; i++)biao2[biao1[i]]=1;
for(unsigned long long i = 2;; i++){
unsigned long long cnt= - 1,x = maxn;
while(x){
x/=i;
cnt++;
}
if(cnt<4)break;
unsigned long long temp = i*i;
for(int j = 2;j <= cnt; j++ ){
if(!biao2[j])a.insert(temp);
temp*= i ;
}
}
a.insert(1);
for(set<unsigned long long>::iterator it = a.begin()++; it != a.end(); ++it){
cout << *it << endl;
}
return 0;
}
UVA11076
#include<cstdio>
#include<iostream>
#include<cstring>
#define CLR(a,v) memset(a,v, sizeof a)
using namespace std;
int a[10];
void init(){
CLR(a,0);
}
long long f[20]={1,1,2};
long long factorial(int a){
if(f[a])return f[a];
else return f[a] = factorial(a-1)*a;
}
int main(){
int n;
while(cin >> n && n){
init();
int temp;
for(int i = 0;i < n; i++){
cin >> temp;
a[temp]++;
}
unsigned long long ans = 0;
for(int i = 0; i <= 9 ; i++){
if(a[i] <= 0)continue;
long long t=factorial(n-1);
a[i]--;
for(int j = 0; j <= 9 ; j++){
t /= factorial(a[j]);
}
a[i]++;
ans+=t*i;
}
unsigned long long an = ans;
for(int i = 1; i < n; i++)
ans = ans*10+an;
cout << ans << endl;
}
return 0;
}
11609
#include<cstdio>
#include<iostream>
#include<cstring>
#define MOD 1000000007
using namespace std;
long long quickpow(long long b, long long n){
long long ans=1;
while(n){
if(n&1)ans = ans * b%MOD;
b = b*b%MOD;
n>>=1;
}
return ans;
}
int main(){
int n=0,T;
cin >> T;
while(n++<T){
long long b;
cin >> b;
printf("Case #%d: %lldn",n,b*quickpow(2,b-1)%MOD);
}
return 0;
}
11609
#include<cstdio>
#include<iostream>
#include<cstring>
#define CLR(a,v) memset(a,v, sizeof a)
using namespace std;
int a[3];
char ans[2] = {'S','T'};
int main(){
int T,n=0;
cin >> T;
getchar();
while(n++<T){
CLR(a,0);
char ch;
while((ch = getchar())!= 'n' ){
a[(ch-'0')%3]++;
}
//cout << a[0] <<a[1] << a[2] <<endl;
if((a[1]+a[2]*2)%3!=0 && !(max(a[1],a[2])%3==2 && min(a[1],a[2])==0))a[0]++;//拿走一个使他能被三整除
a[0]%=2;
printf("Case %d: %cn",n,ans[(a[0]+1)%2]);
}
return 0;
}
UVA 12050
#include<cstdio>
#include<iostream>
#include<cstring>
#define CLR(a,v) memset(a,v,sizeof a)
using namespace std;
int biao[39]={0};
void init(){
biao[1] = biao[2] = 9;
for(int i = 3; i<= 38; i++){
biao[i] = biao[i-2]*10;
}
}
int ans[40];
void fuck(int n){
int k = n, len = 0;
while(k>biao[len+1]){
k-=biao[++len];
}
len++;
int temp=1;
for(int i = 1; i < (len+1)/2 ; i++)temp*=10;
temp += k-1;
int count = 0;
while(temp){
int a = temp %10;
ans[len/2 + count] = ans[(len-1)/2-count] = a;
temp/=10;
count++;
}
for(int i = 0; i < len; i++)
cout << ans[i];
cout << endl;
}
int main(){
init();
int n;
while(cin >> n && n)fuck(n);
return 0;
}
#include<cstdio>
#include<iostream>
#include<cstring>
#define CLR(a,v) memset(a,v,sizeof a)
using namespace std;
int biao[39]={0};
void init(){
biao[1] = biao[2] = 9;
for(int i = 3; i<= 38; i++){
biao[i] = biao[i-2]*10;
}
}
int ans[40];
void fuck(int n){
int k = n, len = 0;
while(k>biao[len+1]){
k-=biao[++len];
}
len++;
int temp=1;
for(int i = 1; i < (len+1)/2 ; i++)temp*=10;
temp += k-1;
int count = 0;
while(temp){
int a = temp %10;
ans[len/2 + count] = ans[(len-1)/2-count] = a;
temp/=10;
count++;
}
for(int i = 0; i < len; i++)
cout << ans[i];
cout << endl;
}
int main(){
init();
int n;
while(cin >> n && n)fuck(n);
return 0;
}
10791
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
long long T,t=0;
while(cin >> T && T){
long long ans = 0;
int flag = 0 ;
for(long long i = 2 ; i <= sqrt(T)+1; i++){
if(T%i!=0)continue;
flag ++;
int temp = 1;
while(T%i == 0){
temp*=i;
T/=i;
}
ans+=temp;
}
if(flag==0)ans+=T+1;
else if(flag==1)ans+=T;
else if(T>1)ans+=T;
printf("Case %lld: %lldn",++t,ans);
}
return 0;
}
UVA
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int biao[400000]={0,0,1,1};
int main(){
int n;
cin >> n;
while(n--){
int t;
cin >> t;
int m = (t-1)>>1;
int h = m*(m+1);
if(t&1) h -= m;
cout << h << endl;
}
}
最后
以上就是甜美眼神为你收集整理的我倒要看看你葫芦里装的是什么事药我倒要看看你葫芦里装的是什么B的全部内容,希望文章能够帮你解决我倒要看看你葫芦里装的是什么事药我倒要看看你葫芦里装的是什么B所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复