Logo 阿兹卡班的小天狼星的博客

博客

4月份月赛2题解------小天狼星版

2023-04-16 16:16:07 By 阿兹卡班的小天狼星

奇偶数

题解

最强大脑

题目链接

这题跟《压缩技术-续集版》有点像,都是判断是否跟前面一样。

#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[n+1];
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int t=a[1];
    int sum=0,maxn=-1;
    for(int i=1;i<=n;i++){
        if(a[i]==t){
            sum++;
            if(sum>maxn){
                maxn=sum;
            } 
        }else{
            t=a[i];
            sum=1;
        }
    }
    cout<<maxn;
    return 0;
}

三角形问题

题目链接

这题目不能把所有数存进数组,而是穷举到k或(x,y)

这题的规律是,一般状态下:

i++,j--;

如果j==1:

i=1,j=t+1(t=原来的j)

#include<iostream>
using namespace std;
int main(){
    int o,x,y;
    cin>>o;
    if(o==1){
        cin>>x;
        int i=1,t=1,k=1,j=1;
        while(1){
            if(k==x){
                cout<<i<<" "<<j;
                return 0;
            }
            k++;
            if(j==1){
                i=1;
                j=t+1;
                t++;
            }else{
                i++;
                j--;
            }
        }
    }else if(o==2){
        cin>>x>>y;
        int i=1,t=1,k=1,j=1;
        while(1){
            if(i==x&&j==y){
                cout<<k;
                return 0;
            }
            k++;
            if(j==1){
                i=1;
                j=t+1;
                t++;
            }else{
                i++;
                j--;
            }
        }
    }
    return 0;
}

评论

xushuoxin
第三题 这题目不能把所有数存进数组,而是穷举到k或(x,y) 不对 是可以存到数组里(如果你不嫌他用时长,内存大的话) 数组开到10000*10000就行了(卡在极限)
xushuoxin
#include<iostream> using namespace std; int op,x,y,s=1,p=1,t,l,h=2,a[10005][10005]; int main(){ for(int i=0;i<10005;i++){ a[i][0]=s; l=p,t=s; for(int j=1;j<10005-i;j++) s+=l,a[i][j]=s,l++; s=t+h,h++,p++; } cin>>op; if(op==1){ cin>>x; for(int i=0;i<10005;i++) for(int j=0;j<10005-i;j++) if(x==a[i][j]){ cout<<i+1<<" "<<j+1; return 0; } } else{ cin>>x>>y; cout<<a[x-1][y-1]; } return 0; }
Will.Pam
奇偶数 题解(妙用了引用的写作手法!)
zuotingting
???发题解还是个抢手活,我们的学员都太优秀了。

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。