2020.3.14 BAPC 2019 Preliminaries 解题+补题报告

A Architecture 

 1.题意

  一开始被题意搞晕了,其实就是给定两组数,判断它们的最大值是否相等。

 2.题解

  分别维护两个最大值,判断是否相等。

 3.代码

 

 

#include<bits/stdc++.h>
using namespace std;
int m,n;
int main(){
    cin>>m>>n;
    int x;
    int maxr=0,maxc=0;
    for(int i=1;i<=m;i++){
        cin>>x;
        maxr=max(maxr,x);
    }
    for(int i=1;i<=n;i++){
        cin>>x;
        maxc=max(maxc,x);
    }
    if(maxr==maxc)
        cout<<"possible"<<endl;
    else
        cout<<"impossible"<<endl;    

    return 0;
}

 

F.Floor Plan

 1.题意

  给定一个正整数n,求出两个非负整数m、k,使得n=m^2-k^2。(答案不唯一,求出一组m、k即可)

 2.题解
  之前没做过类似的题,慢慢摸索着找到了规律。当n为奇数时,m=(n+1)/2,k=m-1肯定符合题意,输出这一组m、k即可,例:5 3 2 ;当n为偶数且为4的倍数时,m=n/4+1,k=n/4-1符合题意,输出即可,例:8,3,1 。
 3.代码

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 ll n;
 5 int main(){
 6     scanf("%lld",&n);
 7     if(n%4==0){
 8         printf("%lld %lld",n/4+1,n/4-1);
 9         return 0;
10     }    
11     if(n%2){
12         printf("%lld %lld",(n+1)/2,(n+1)/2-1);
13         return 0;
14     }
15 
16     printf("impossible");
17     
18     return 0;
19 } 

 

 

 

 

G Greetings! 

 1.题意

  给定一个字符串,有字符‘e'便双倍输出。

 2.题解

  遍历字符串,遇到’e‘就输出“ee” 。

 3.代码

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 string s;
 4 int main(){
 5     cin>>s;
 6     for(int i=0;i<s.size();i++){
 7         if(s[i]=='e')
 8             cout<<"ee";
 9         else
10             cout<<s[i];
11     }
12 
13     return 0;
14 }

 

I Inquiry I 

 1.题意

  给定n个正整数,求下面公式的最大值。

  (a1^2 +a2^2+···+ak^2)·(ak+1+ak+2+···+an)

 2.题解

  求前半部分的前缀和与后半部分的后缀和,遍历维护最大值。

3.代码

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std; 
 4 ll n,ans;
 5 ll a[1000005],l[1000005],r[1000005];
 6 int main(){
 7     scanf("%d",&n);
 8     for(ll i=1;i<=n;i++) 
 9         scanf("%d",&a[i]);
10     for(ll i=1;i<=n;i++) 
11         l[i]=l[i-1]+a[i]*a[i];
12     for(ll i=n;i>=1;i--) 
13         r[i]=r[i+1]+a[i];
14     for(ll i=1;i<n;i++) 
15         ans=max(ans,l[i]*r[i+1]);
16     printf("%lld\n",ans);
17  
18     return 0;
19 }

 

上一篇:【mysql详细安装 步骤---学习记录---共享】


下一篇:[vuex] unknown mutation type: XXX/XXX 报错解决方法