bzoj 4300 //4300: 绝世好题

bzoj 4300   //4300: 绝世好题   //在线测评地址https://www.lydsy.com/JudgeOnline/problem.php?id=4300

更多题解,详见https://blog.csdn.net/mrcrack/article/details/90228694BZOJ刷题记录

//4300: 绝世好题
//在线测评地址https://www.lydsy.com/JudgeOnline/problem.php?id=4300
//bi&bi-1!=0执行顺序
#include
int main(){
    int b;
    scanf("%d",&b);
    printf("%d\n",b&b-1!=0);
    printf("%d\n",(b&(b-1))!=0);
    printf("%d\n",b&((b-1)!=0));
}

noilinux@ubuntu:~/program/bzoj/4300$ ./4300
0
0
0
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
1
0
0
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
2
0
0
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
3
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
4
0
0
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
5
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
6
0
1
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
7
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
8
0
0
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
9
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
10
0
1
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
11
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
12
0
1
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
13
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
14
0
1
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
15
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
16
0
0
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
17
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
18
0
1
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
19
1
1
1
//基本可确定,b&b-1!=0执行情况如b&((b-1)!=0) 2019-7-27 11:07

//基本可确定,b&b-1!=0执行情况如b&((b-1)!=0)
//发现样例输出结果对不上了
//搜索网络,发现bi-1中的i-1是个整体,作为b的脚标,我的天,题目表述不清啊
//bi与bi-1是数列中相邻的2个数,2019-7-27 12:41

//探索bi&bi-1!=0的意义 2019-7-27 12:53

#include
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n",b&a!=0);
    printf("%d\n",(b&a)!=0);
    printf("%d\n",b&(a!=0));
}

//noilinux@ubuntu:~/program/bzoj/4300$ ./4300
1 2
0
0
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
2 3
1
1
1
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
3 4
0
0
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
5 6
0
1
0
noilinux@ubuntu:~/program/bzoj/4300$ ./4300
4 5
1
1
1

//题目还需修改,需要表达的意思是(bi&bi-1)!=0   2019-7-27 12:54
//还有一个问题,子序列b取自a,是从a中连续取,还是可以从a中间隔取,没说清.
//此文思路写得不错https://www.cnblogs.com/ljh2000-jump/p/5814135.html摘抄如下
//f[i]表示处理到当前数,第i位不为0的最优长度。转移很好转。
//此文代码写得不错https://blog.csdn.net/mys_c_k/article/details/72564247
//样例通过,提交Wrong_Answer.
//ansx=0;//漏了此处的初始化
//修改,提交AC.2019-7-27 23:16
#include
#include
int f[40];
int max(int a,int b){
    return a>b?a:b;
}
int main(){
    int n,x,i,ansx,ans=0;
    memset(f,0,sizeof(f));
    scanf("%d",&n);
    while(n--){
        ansx=0;//漏了此处的初始化
        scanf("%d",&x);
        for(i=0;i<32;i++)
            if(x&(1<         for(i=0;i<32;i++)
            if(x&(1<         ans=max(ansx,ans);
    }
    printf("%d\n",ans);
    return 0;
}

你可能感兴趣的:(跟着大佬学算法)