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; //一定要打
}
浙公网安备 33010602011771号