ZUST蓝桥杯校内选拔赛(java,c)安吉校区
序(暂存)
- 蓝桥杯分为校内模拟赛(10题)->省赛(6题)->国赛(6题)三场
 - 按照难度分为A组(重点),B组(本科)和C组(专科)
 - 按照类型分为软件组(C,Java,Python)和电子组(开发)
 
省赛时间:每年的3月份下旬到4月份上旬左右
 国赛时间:每年的5月份左右
 比赛时长:四个小时
比赛规则:
 蓝桥杯比赛跟天梯赛、ACM还不太一样,比赛中提交的答案并没有反馈机制,也就是说你提交了答案以后,自己并不知道是对是错,就像考试一样,只有交了卷,成绩下来以后才能知道自己的奖项。
 获奖比例:
 省赛每个组别设置一、二、三等奖,比例分别为10%、20%、30%,总比例为实际参赛人数的60%,零分卷不得奖。省赛一等奖选手获得直接进入全国总决赛资格。
 国赛个人赛根据相应组别分别设立特、一、二、三等奖及优秀奖。在决赛奖项设置中,每个组别设置特等奖1名,一等奖不高于5%,二等奖占20%,三等奖不低于25%,优秀奖不超过50%, 零分卷不得奖。
1.题目设置
 蓝桥杯的题目并不像ACM那样都是编程题,前面会有几道填空题。
 2.知识点
 蓝桥杯涉及的算法基本上不多,每次基本上就有一两道是算法题,思维题偏多。
T1-T5
吐槽一下,说好的打四个小时,害得我又请假又没吃饭的,结果一个小时做完了没事干。。
 而且蓝桥的dev5.4得先卸载了本地的dev5.1才能装的上去,还有模拟赛竟然不用摄像头,,
800
 81
 12
 1001
 BYS
附T4:
 2021
 n2=1000
 2*n2+n1+1==n0+n1+n2
 n0=n2+1
 n0=n2+1=1001
T6-T10
//T6
#include<iostream>
#include<string>
using namespace std;
int main(){
	string s;  cin>>s;
	int t = s.size()%3;
	for(int i = 0; i < t; i++)
		cout<<s[i];
	cout<<",";
	int cnt = 0;
	for(int i = t; i < s.size(); i++){
		cout<<s[i];
		cnt++;
		if(cnt==3 && i!=s.size()-1){
			cout<<",";
			cnt = 0;
		}
	}
	return 0;
}
  
 - 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 
//T7
#include<iostream>
#include<string>
using namespace std;
int main(){
	int n, p;
	cin>>n>>p;
	int t = n/p;
	if(n%p!=0)t+=1;
	cout<<t<<"\n";
	return 0;
}
  
 - 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 
//T8
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int a[1010][1010], b[1010][1010];
int main(){
	int n, m;
	cin>>n>>m;
	for(int i = 1; i <= n; i++)
		for(int j = 1; j <= m; j++)
			cin>>a[i][j];
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			for(int dx = -1; dx <= 1; dx++){
				for(int dy = -1; dy <= 1; dy++){
					if(i+dx<1 || i+dx>n || j+dy<1 || j+dy>m)continue;
					b[i][j] = max(b[i][j],a[i+dx][j+dy]);
				}
			}
		}
	}
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			cout<<b[i][j]<<" ";
		}
		cout<<"\n";
	}
	return 0;
}
  
 - 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
 
//T9
/*
A+B+C
A+BC
B+AC
C+AB
ABC
*/
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int main(){
	int n;  cin>>n;
	vector<int>A,B,C,AB,AC,BC,ABC;
	for(int i = 1; i <= n; i++){
		int w;  string s;  cin>>w>>s;
		int a=0, b=0, c=0;
		if(s.find('A')!=string::npos)a++;
		if(s.find('B')!=string::npos)b++;
		if(s.find('C')!=string::npos)c++;
		if(a==1)A.push_back(w);
		if(b==1)A.push_back(w);
		if(c==1)A.push_back(w);
		if(a==1 && b==1)AB.push_back(w);
		if(a==1 && c==1)AC.push_back(w);
		if(b==1 && c==1)BC.push_back(w);
		if(a==1 && b==1 && c==1)ABC.push_back(w);
	}
	if(A.size()!=0)sort(A.begin(),A.end());
	if(B.size()!=0)sort(B.begin(),B.end());
	if(C.size()!=0)sort(C.begin(),C.end());
	if(AB.size()!=0)sort(AB.begin(),AB.end());
	if(AC.size()!=0)sort(AC.begin(),AC.end());
	if(BC.size()!=0)sort(BC.begin(),BC.end());
	if(ABC.size()!=0)sort(ABC.begin(),ABC.end());
	int ans = 10000000;
	if(A.size()!=0 && B.size()!=0 && C.size()!=0)ans = min(ans, A[0]+B[0]+C[0]);
	if(A.size()!=0 && BC.size()!=0)ans = min(ans, A[0]+BC[0]);
	if(B.size()!=0 && AC.size()!=0)ans = min(ans, B[0]+AC[0]);
	if(C.size()!=0 && AB.size()!=0)ans = min(ans, C[0]+AB[0]);
	if(ABC.size()!=0)ans = min(ans, ABC[0]);
	if(ans == 10000000)cout<<"-1\n";
	else cout<<ans<<"\n";
	return 0;
}
  
 - 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
 
//T10-dfs
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
const int mod = 1000007;
const int maxn = 1010;
int a[maxn], f[maxn][20];
int n, k, ans = 0;
void dfs(int cur, int now){
	if(now == k){
		ans++;
		ans %= mod;
		return ;
	}
	if(cur == n){
		return ;
	}
	for(int i = cur+1; i <= n; i++){
		if(a[i]>a[cur])dfs(i,now+1);
	}
}
int main(){
	cin>>n>>k;
	for(int i = 1; i <= n; i++)cin>>a[i];
	ans = 0;
	for(int i = 1; i <= n; i++){
		dfs(i,1);
	}
	cout<<ans<<"\n";
	return 0;
}
  
 - 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
 
//T10-dp
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
const int mod = 1000007;
const int maxn = 10010;
int a[maxn], f[20][maxn];
int n, k, ans = 0;
int main(){
	cin>>n>>k;
	int _mx=0;
	for(int i = 1; i <= n; i++){ cin>>a[i]; _mx=max(_mx,a[i]);}
	for(int i = 1; i <= n; i++){
		f[1][a[i]]++;
		for(int j = 2; j <= k; j++){
			for(int c=0; c<a[i]; c++){
				f[j][a[i]] += f[j-1][c];
				f[j][a[i]] %= mod;
			}
		}
	}
	for(int i = 0; i <= _mx; i++)
		ans = (ans+f[k][i])%mod;
	cout<<ans<<"\n";
	return 0;
}
  
 - 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
 
文章来源: gwj1314.blog.csdn.net,作者:小哈里,版权归原作者所有,如需转载,请联系作者。
原文链接:gwj1314.blog.csdn.net/article/details/114547580
- 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)