2020庐阳区信息学竞赛

2020庐阳区信息学竞赛-王璟璇 ,链接:

2020庐阳区信息学竞赛链接

2020庐阳区信息学竞赛 第一题:时长(time)

#include<iostream>//建议不要打万能头 
#include<cstdio> 
using namespace std;
int a,b,c,d,ab,cd,ans;//建议定义全局变量 
int main(){
	/*思路:将时间全部转化成以分钟为单位,然后作差。*/ 
	//freopen("time.in","r",stdin);
	//freopen("time.out","w",stdout);
	cin>>a>>b>>c>>d;
	ab=a*10+b;
	cd=c*10+d;
	ans=cd-ab;
	cout<<ans;
	//fclose(stdin);
	//fclose(stdout);
	return 0;//一定要打 
}

2020庐阳区信息学竞赛 第二题:解密(key)

#include<iostream>//建议不要打万能头 
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
char a,ans;//建议定义全局变量 
int main(){
	/*思路:数学方法计算是倒数第几个(也可以打表,但不推荐)*/ 
	//freopen("key.in","r",stdin);
	//freopen("key.out","w",stdout);
	cin>>a;
	if(a>='a'&&a<='z'){
		ans='z'-(a-'a');
	}
	else if(a>='A'&&a<='Z'){
		ans='Z'-(a-'A');
	}
	cout<<ans;
	//fclose(stdin);
	//fclose(stdout);
	return 0;//一定要打 
}

2020庐阳区信息学竞赛 第三题:选择(min)

#include<iostream>//建议不要打万能头 
#include<cstdio> 
using namespace std;
int n,mn=1e9+1,a[100010];//建议定义全局变量 
int main(){
	/*思路:先求出最小值,再将数组遍历一遍,符合条件的输出。*/ 
	//freopen("min.in","r",stdin);
	//freopen("min.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		mn=min(mn,a[i]);
	}
	for(int i=1;i<=n;i++){
		if(a[i]==mn){
			cout<<i<<' ';
		}
	}
	//fclose(stdin);
	//fclose(stdout);
	return 0;//一定要打 
}

2020庐阳区信息学竞赛 第四题:座位(seat)

#include<iostream>//建议不要打万能头 
#include<cstdio>
using namespace std;
int a,ans1,ans2,n,m;//建议定义全局变量 
int main(){
	/*思路:数学方法计算是第几列,再判断是第几列(第一列要特判),(也可以暴力,但不推荐)*/ 
	//freopen("seat.in","r",stdin);
	//freopen("seat.out","w",stdout);
	cin>>n>>m>>a;
	if(a<=n){
		ans1=1,ans2=a;
		cout<<a<<' '<<1;
		return 0; 
	}
	else{
		ans1=a/n;
		ans2=a%n;
		if(ans2==0){
			ans2=n;
		}
		else{
			ans1++;
		}
		if(ans1%2==0){
			ans2=n-ans2+1;
		}
		
	}
	cout<<ans2<<' '<<ans1;
	//fclose(stdin);
	//fclose(stdout);
	return 0;//一定要打 
}

2020庐阳区信息学竞赛 第五题:伐树(cut)

#include<iostream>//建议不要打万能头 
#include<cstdio>
using namespace std;
long long m,n,a[1000010],l,r,mid,ans;//建议定义全局变量
bool check(long long h){
	long long sum=0;
	for(int i=1;i<=n;i++){
		if(a[i]>h){
			sum+=a[i]-h;
		}
	}
	if(sum<m){
		return 0;
	}
	return 1;
}
int main(){
	/*思路:二分答案,(也可以暴力,但不推荐)*/ 
	//freopen("cut.in","r",stdin);
	//freopen("cut.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		r=max(a[i],r);
	}
	while(l<=r){
		mid=(l+r)/2;
		if(check(mid)){
			l=mid+1;
			ans=mid;
		}
		else{
			r=mid-1;
		}
	}
	cout<<ans;
	//fclose(stdin);
	//fclose(stdout);
	return 0; //一定要打 
}

2020庐阳区信息学竞赛 第六题:取数(max)

#include<iostream>//建议不要打万能头 
#include<cstdio>
using namespace std;
int n,a[10010],dp[10010][2],x;//建议定义全局变量
int main(){
	/*思路:大盗阿福,(也可以暴力,但不推荐)*/ 
	//freopen("max.in","r",stdin);
	//freopen("max.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>x;
		a[x]+=x;
	}
	dp[1][1]=a[1];
	for(int i=2;i<=n;i++){
		dp[i][0]=max(dp[i-1][0],dp[i-1][1]);
		dp[i][1]=dp[i-1][0]+a[i];
	}
	cout<<max(dp[n][0],dp[n][1]);
	//fclose(stdin);
	//fclose(stdout);
	return 0; //一定要打 
}

谢谢各位的观看-王璟璇

posted @ 2022-01-29 10:51  Lemonade~  阅读(97)  评论(0)    收藏  举报