【nyist】Personal Contest.5&&6总结

先说第六场。(昨天做的)三个小时,6道题。

A题,最先看是就是这道题。一开始,估计有点小小紧张。没看懂题意。后来又看,看懂了。Pe了一次。

在交代码前,有想到过这个问题。(最后有没有空格,心想,格式要求应该不太严格吧,以前没有出现过Pe,就没有改)。

果断就Pe了,后来想,如果对格式要求严一点的话,绝对不会有这一次Pe。完全可以花一分钟处理一下。

B题比较难懂,读了比较长的时间吧。代码调试了好久,(因为自己有犯了错了,没有确定模拟的确定思路,导致,在写的过程中,改变了几次处理方式)。还是那句话,多想。想完再写。WA了一次,一个小小的bug。

C题是一个数论。有待学习。

D题,游戏,石头剪刀布,判输赢。

E题,又是值得深思的一道题目。网络流?最小生成树?并查集?各种方法都有ac的。我认为应该是一道深搜题吧。不过,不会写深搜也就做罢了。

F题没人做。也搞不懂。

总体来说,这次比赛,状态不是最好的。

完全可以避免的两次WA。还有自己臆断的E题。认为是深搜,就不在去想其他的方法了。实在不应该。

第五场。

A题,一个水题。

B题,简单的问题。赛前,看到过这道题,不过没有做。深度感觉自己对位运算的理解不够。继续学习。

题目链接点击打开链接

 题目就是,让优化所给代码。就是给一系列的整数,让每个整数或所有整数(包括自己)。其实,如果对位运算理解还够可以的话,这简直就是一道大水题。不过自己对位操作的理解还有待提高。没事,我还有未来。

对于或操作,我们可以这么理解,看下图;


代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define CLR(arr,val) memset(arr,val,sizeof(arr))
using namespace std;

const int N=10004;
const int M=16;
struct Number{
    int x;
    int y[M];
}num[N];

int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        int n,sum[M];
        CLR(sum,0);
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&num[i].x);
            int k=num[i].x,top=0;
            CLR(num[i].y,0);
            while(k!=0){
                num[i].y[top]=k&1;
                sum[top]+=(k&1);
                k/=2;top++;
            }
        }
        int ans=0;
        for(int i=1;i<=n;i++){
            for(int j=0;j<M;j++){
                if(num[i].y[j]==1){
                    ans+=(n*(int)pow(2,j));
                }
                else{
                    ans+=(sum[j]*(int)pow(2,j));
                }
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}


J题直接暴力的,由于10000以内的素数是仅仅有3000+,然后加上一个hash的思想就是3000+*3000+的复杂度,还是可以接受的。水之。

这场比赛就做了两个小时,实在做不下了,就溜了。我擦,现在想想,这是什么状态。。实在不该。

比赛就剩下4场了。继续加油。

可以肯定的是自己的状态一下回暖,加油!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值