总结 | #寒假营第二场#

I. 01回文


题意:可以看原题,比较简单。

为什么错?一开始用数字读入,发现不太好操作,改用string数组发现可能读入有问题,改换了char数组才AC

H. 权值计算 (unfinished)


考点:计数,找规律

题意:首先给了一个伪代码,然后根据伪代码求出所有非空子数组的权值之和

为什么错?没有正确总结出伪代码计算权值的方法:计算各个子数组中不同数的个数

正确思路:计算每个数字对权值的贡献值。

AC代码:
using ll=long long;

void whale_solve(){
    int n;cin>>n;
    vector<ll>a(n+1);
    for(int i=1;i<=n;i++) cin>>a[i];
    map<ll,int>posi;//记录上一次出现的位置
    ll sum=0LL;
    for(int i=1;i<=n;i++){
        ll dev=(ll)(i-posi[a[i]])*(ll)(2+n-i)*(n-i+1)/2;//计算a[i]的贡献
        //这里注意对数据进行longlong的标注,不然会溢出(就这里WA了两发)
        posi[a[i]]=i;//更新位置
        sum+=dev;
    }
    cout<<sum;
}

E. 01矩阵(unfinished)


考点:构造

题意:回看题目吧,不太好概括

思路:观察第一个样例可以徐徐推出。。。。。。

AC代码:
void whale_solve(){
    int n;cin>>n;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++) cout<<((min(i,j)&1)?1:0);
        cout<<"\n";
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
01-22 18:07
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务