天梯赛list1部分题

好久没更新了
下周就要去南昌大学打蓝桥的省赛了,虽然不是区域赛,只是个蓝桥杯和天梯赛,但是第一次代表学校出去比赛还是很紧张,怕丢人
所以这周磕一磕蓝桥了,把之前天梯赛做的一点题放上来,(发现py是个好东西,真香
链接:https://pintia.cn/problem-sets/994805046380707840/problems


01

1
2
3
4
5
6
#include <iostream>
using namespace std;
int main(){
cout<<"Hello World!"<<endl;
return 0;
}

02

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
/*
19 *
输出样例:
*****
***
*
***
*****
2
*/
#include <iostream>
using namespace std;
int main(){
int n;
char s;
cin>>n>>s;
int ans=0;
while(1){
if(2*ans*ans-1>n){
break;
}
else ans++;
}
ans--;
//cout<<"ans"<<ans<<endl;
int hang=2*ans-1;
//cout<<"hang"<<hang<<endl;
for(int i=0;i<hang;i++){
if(i<ans){
for(int c=0;c<i;c++){
cout<<" ";
}
for(int c=0;c<hang-i*2;c++){
cout<<s;
}
/*for(int c=0;c<i;c++){
cout<<" ";
}*///卧佛了
cout<<endl;
}
else{
for(int c=0;c<hang-i-1;c++){
cout<<" ";
}
for(int c=0;c<2*i-hang+2;c++){
cout<<s;
}
/*for(int c=0;c<hang-i-1;c++){
cout<<" ";
}*/
cout<<endl;
}
}
cout<<n-2*ans*ans+1;
return 0;
}

03

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
/*输入样例:
100311
输出样例:
0:2
1:3
3:1*/
#include <iostream>
#include <cstring>
using namespace std;
int ans[1001];
int d[11];
int main(){
string s;
cin>>s;
int len=0;
for(int i=0;i<s.length();i++){
ans[i]=int(s[i]-'0');
len++;
}
memset(d,0,sizeof(d));
for(int i=0;i<len;i++){
d[ans[i]]++;
}
int cnt=0;
for(int i=0;i<10;i++){
if(d[i]!=0)
cout<<cnt<<":"<<d[i]<<endl;
cnt++;
}
return 0;
}

04

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
输入样例:
150
输出样例:
Celsius = 65
*/
#include <iostream>
using namespace std;
int main(){
int f,c;
cin>>f;
c=int(5*(f-32)/9);
cout<<"Celsius = "<<c<<endl;
return 0;
}

05

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
/*
输入样例:
4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4
输出样例:
3310120150912002 2
3310120150912119 1
*/
#include <iostream>
using namespace std;
int test[1001];
struct stu
{
string a;
int b,c;
}node[1001];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>node[i].a>>node[i].b>>node[i].c;
}
int t;
cin>>t;
for(int i=0;i<t;i++){
cin>>test[i];
}
for(int i=0;i<t;i++){
for(int j=0;j<n;j++){
if(test[i]==node[j].b){
cout<<node[j].a<<" "<<node[j].c<<endl;
}
}
}
return 0;
}

06

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
/*
输入样例:
630
输出样例:
3
5*6*7
作者: 陈越
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
*/
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios::sync_with_stdio(false);
int n;
cin>>n;
for(int len=12;len>=1;len--){
for(int i=2;i<=sqrt(n);i++){
int sum=1;
for(int j=0;j<len;j++){
sum*=(i+j);
}
if(n%sum==0){
cout<<len<<endl<<i;
for(int j=1;j<len;j++){
cout<<"*"<<i+j;
}
cout<<endl;
return 0;
}
}
}
cout<<"1"<<endl<<n;
return 0;
}

07

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
/*
输入样例:
630
输出样例:
3
5*6*7
作者: 陈越
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
*/
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios::sync_with_stdio(false);
int n;
cin>>n;
for(int len=12;len>=1;len--){
for(int i=2;i<=sqrt(n);i++){
int sum=1;
for(int j=0;j<len;j++){
sum*=(i+j);
}
if(n%sum==0){
cout<<len<<endl<<i;
for(int j=1;j<len;j++){
cout<<"*"<<i+j;
}
cout<<endl;
return 0;
}
}
}
cout<<"1"<<endl<<n;
return 0;
}

08

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
/*
输入样例:
-3 8
输出样例:
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30
*/
#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int ans=0;
int sum=0;
for(int i=a;i<=b;i++){
/*cout.width(5);
cout<<i;*/
printf("%5d",i);
ans++;
sum+=i;
if(ans==5){
cout<<endl;
ans=0;
}
}
//cout<<"ans"<<ans<<endl;
if(ans!=0)cout<<endl;
cout<<"Sum = "<<sum;
return 0;
}

09

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
79
80
81
82
83
84
/*
输入样例1:
5
2/5 4/15 1/30 -2/60 8/3
输出样例1:
3 1/3
输入样例2:
2
4/3 2/3
输出样例2:
2
输入样例3:
3
1/3 -1/6 1/8
输出样例3:
7/24
*/
#include <bits/stdc++.h>
#define int long long
using namespace std;
struct node
{
int y,z;
}a[105];
int gcd(int n,int m){
if(m==0)return n;
else return gcd(m,n%m);
}
node add_num(node a,node b){
int zi=a.y*b.z+b.y*a.z;
int mu=a.z*b.z;
node res;
res.y=zi/gcd(mu,zi);
res.z=mu/gcd(mu,zi);
if(res.z<0){
res.y*=-1;
res.z*=-1;
}
return res;
}
signed main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
scanf("%lld/%lld",&a[i].y,&a[i].z);
}
node sum=a[0];
for(int i=1;i<n;i++){
sum=add_num(sum,a[i]);
}
if(sum.y==0)cout<<"0"<<endl;
else if(sum.y<sum.z){
if(sum.y<0){
if((sum.y*-1)%sum.z==0){
cout<<sum.y/sum.z<<endl;
}
else if((-1*sum.y)<sum.z){
cout<<sum.y<<"/"<<sum.z<<endl;
}
else {
int shang,yu;
shang=sum.y/sum.z;
yu=-1*((-1*sum.y)+shang*sum.z);
cout<<shang<<" "<<yu<<"/"<<sum.z<<endl;
}
}
else
cout<<sum.y<<"/"<<sum.z<<endl;
}
else if(sum.y==sum.z){
if(sum.y>0)cout<<"1"<<endl;
}
else {
if(sum.y%sum.z==0)cout<<sum.y/sum.z<<endl;
else{
int shang,yu;
shang=sum.y/sum.z;
yu=sum.y-shang*sum.z;
cout<<shang<<" "<<yu<<"/"<<sum.z<<endl;
}
}
//cout<<"gcd"<<gcd(6,12)<<endl;
return 0;
}

10

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*
输入样例:
4 2 8
输出样例:
2->4->8
*/
#include <iostream>
#include <algorithm>
using namespace std;
int num[4];
int main(){
cin>>num[0]>>num[1]>>num[2];
sort(num,num+3);
cout<<num[0]<<"->"<<num[1]<<"->"<<num[2]<<endl;
return 0;
}

11

1
2
3
4
5
6
##用C++写实属弟弟行为
s=input()
a=input()
for i in a:
s=s.replace(i,'')
print(s)

12

1
2
3
4
5
6
7
8
9
'''
5
输出样例:
2^5 = 32
'''
a=input()
a=eval(a)
b=pow(2,a)
print("2^"+str(a)+" = "+str(b))

13

1
2
3
4
5
6
7
8
9
10
11
def func(i):
k=1;
for s in range(1,i+1):
k*=s
return k
a=input()
a=eval(a)
sum=0
for i in range(1,a+1):
sum+=func(i)
print(sum)

14

1
print("This is a simple problem.")

15

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//这题py不知道怎么有个样例就是过不去
#include <iostream>
using namespace std;
int main(){
int a;
char s;
cin>>a>>s;
for(int i=0;i<(a+1)/2;i++){
for(int j=0;j<a;j++){
cout<<s;
}
cout<<endl;
}
return 0;
}

16

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
/*输入样例1:
4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X
输出样例1:
12010X198901011234
110108196711301866
37070419881216001X*/
#include <bits/stdc++.h>
#define int long long
using namespace std;
int w[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int a[19];
int is_true[11]={1,0,10,9,8,7,6,5,4,3,2};
bool wyh[101];
signed main(){
int n;
bool flag=false;
memset(wyh,true,sizeof(wyh));
cin>>n;
int ans=0;
while(n--){
string s;
cin>>s;
for(int i=0;i<=s.length()-2;i++){
if(s[i]=='X'){
flag=true;
}
a[i]=s[i]-'0';
}
if(s[17]=='X'){
a[17]=10;
}
else a[17]=s[17]-'0';
if(flag){
cout<<s<<endl;
wyh[ans]=false;
}
else{
int sum=0;
for(int i=0;i<18;i++){
sum+=w[i]*a[i];
}
sum%=11;
//cout<<"sum"<<sum<<endl;
if(is_true[sum]!=a[17]){
cout<<s<<endl;
wyh[ans]=false;
}
}
ans++;
}
bool cnm=false;
for(int i=0;i<ans;i++){
if(wyh[i]==false)
{
cnm=true;
break;
}
}
if(cnm==false)cout<<"All passed"<<endl;
return 0;
}

17

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
s=input()
n=int(s)
ans=0
cnt=len(s)
for i in s:
if i =='2':
ans+=1
if(n<0):
cnt-=1
res=ans/cnt
if n<0:
res*=1.5
if n%2==0:
res*=2
res*=100
print('{:.2f}%'.format(res))

我才写…17题,都是一些简单的语法基础题,不过拿来练练刚学的py我觉得还不错,python真是把我给香死了
写的过程中也注意到一些新的 比如17题百分位输入的.format函数使用,这块我还不是很熟

1
print('{:.2f}%'.format(res))

这行代码其实就是把res保留两位小数(因为我前面乘上100了,用round不行,整数会保留到一位就没了

接下来的打算就是下周把蓝桥的真题做了,顺便看看python,如果和比赛时间不冲的话还是去考一下吧

至于天梯赛…比赛之前把list1再做个十题左右吧,list尽量也做做,虽然随机分在了三队,但是还是加加油

coswindy
晚风。
2019-3-15
于图书馆

-------------本文结束感谢您的阅读-------------