我是靠谱客的博主 甜美眼神,这篇文章主要介绍我倒要看看你葫芦里装的是什么事药我倒要看看你葫芦里装的是什么B,现在分享给大家,希望可以做个参考。

我倒要看看你葫芦里装的是什么B

Click me

  • 我倒要看看你葫芦里装的是什么B
    • UVA11388
    • UVA11889
    • UVA10943
    • UVA10780
    • UVA10892
    • 11752
    • UVA11076
    • 11609
    • 11609
    • UVA 12050
    • 10791
    • UVA

UVA11388

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//暴力代码 #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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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的全部内容,更多相关我倒要看看你葫芦里装内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部