题解 | #计算几何#

计算几何

https://ac.nowcoder.com/acm/contest/11173/B

找规律。
0: 00000(偶数个)
1: 00001(奇数个)
2: 00010(奇数个)
3: 00011(偶数个)

4: 00100(奇数个)
5: 00101(偶数个)
6: 00110(偶数个)
7: 00111(奇数个)

8: 01000(奇数个)
9: 01001(偶数个)
10:01010(偶数个)
11:01011(奇数个)
每四个数里面都包含两个满足条件的。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int solve(int x){
    int res = 0;
    while(x){
        if(x&1)    res++;
        x>>=1;
    }
    if(res&1)
    return 1;
    else
    return 0;
}
signed main(){
    std::ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int t;
    cin>>t;
    while(t--){
        int l, r;
        cin>>l>>r;
        if((r-l+1)<=4){
            int ans = 0;
            for(int i = l; i <= r; i++){
                ans += solve(i);
            }
            cout<<ans<<endl;
            continue;
        }
        int x = l/4*4+3;
        int res = (r-x)/4;
        if(res*4==r-x)    res--;
        res *= 2;
        for(int i = l; i <= x; i++){
            res += solve(i);
        }
        for(int i = r/4*4; i <= r; i++){
            res += solve(i);
        }
        cout<<res<<endl;
    }
    return 0;
}
全部评论

相关推荐

醒工硬件:如果你想投硬件,可以考虑这么改: 1.个人荣誉没太有保留价值,除非一页凑不满 2.主修课程太多了,可以考虑删减一部分,或者分成硬件和嵌入式2个简历,侧重点不一样 3.个人技能放到学习经历下面,项目经历上面。学习一下AD画板,你有基础一两周也差不多学会了,面试官问你就说你会(总不能拉你实操吧),公司里一般用AD和Cadence比较多,AD好上手一些。增加常用仪器工具说明,例如示波器、信号发生器、电子负载、烙铁、风枪等 4.项目,项目可以多换换行,挤在一起不好阅读。可以说下红外那边用什么接口,蓝牙那边用什么接口,用了哪些关键技术点,多用术语。如果你投硬件,就增加项目1描述比重,降低项目2描述比重
点赞 评论 收藏
分享
挣K存W养DOG:我记得好多人说这个公司就是白嫖方案的,现在有大体方案要让你给他展示实现细节了,也是无敌了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务