UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#204183#3597. 最优操作jane100434ms1240kbC++11960b2024-05-02 10:04:042024-05-02 12:02:21

answer

#include<bits/stdc++.h>
using namespace std;
int t;
long long n;
string s;
// long long f(int x){
//     long long ret=0;
//     for( ; x; x &= (x-1))
//         ret++;
//     return ret;
// }
int main(){
    scanf("%d",&t);
    while(t--){
        scanf("%lld",&n);
        n=abs(n);
        //printf("%lld\n",f(n));
        s="";
        while(n){
            s+=('0'+(n&1));
            n>>=1;
        }
        int ret=0,ans=0;
        n=s.size();
        for(int i=0;i<n;i++){
            if(s[i]=='0'){
                if(ret==1) ans++,ret=0;
                if(ret>0){
                    ret=0;
                    if(i<n-1){
                        if(s[i+1]=='1')  ans++,ret=1;
                        else  ans+=2;
                    }
                }
            }
            else  ret++;
        }
        if(ret==1)  ans++;
        if(ret>1)  ans+=2;
        printf("%d\n",ans);
    }
    return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 1240kb

input:

10
-1
-2
3
4
-5
-6
7
-8
9
-10

output:

1
1
2
1
2
2
2
1
2
2

result:

ok 10 lines

Test #2:

score: 10
Accepted
time: 0ms
memory: 1236kb

input:

100
1
-2
3
4
-5
-6
-7
8
9
-10
-11
-12
-13
-14
-15
-16
17
18
19
-20
-21
-22
-23
24
-25
26
-27
-28
-29...

output:

1
1
2
1
2
2
2
1
2
2
3
2
3
2
2
1
2
2
3
2
3
3
3
2
3
3
3
2
3
2
2
1
2
2
3
2
3
3
3
2
3
3
4
3
4
3
3
2
3
3
...

result:

ok 100 lines

Test #3:

score: 10
Accepted
time: 0ms
memory: 1240kb

input:

1000
1
2
3
4
5
6
7
8
9
10
-11
-12
-13
-14
15
-16
-17
-18
19
20
-21
-22
-23
-24
-25
26
-27
-28
-29
-3...

output:

1
1
2
1
2
2
2
1
2
2
3
2
3
2
2
1
2
2
3
2
3
3
3
2
3
3
3
2
3
2
2
1
2
2
3
2
3
3
3
2
3
3
4
3
4
3
3
2
3
3
...

result:

ok 1000 lines

Test #4:

score: 10
Accepted
time: 40ms
memory: 1240kb

input:

100000
-231121
256906
613966
-224172
-333071
994969
151676
-388903
-487113
-944757
-889035
770700
-6...

output:

7
6
8
7
7
9
5
7
7
10
9
7
8
5
9
8
7
8
7
9
6
10
8
9
5
10
5
8
8
5
9
6
8
7
8
6
8
8
6
7
7
5
7
7
9
10
8
9
...

result:

ok 100000 lines

Test #5:

score: 10
Accepted
time: 39ms
memory: 1240kb

input:

100000
-908667
-562456
181546
-554932
-739170
-538954
720309
-38110
866233
608310
-54982
-786589
-35...

output:

7
7
8
6
8
7
8
6
8
7
7
6
8
7
9
7
8
7
7
7
8
8
7
7
6
9
7
8
8
8
7
8
8
7
8
7
7
8
7
9
5
6
5
8
7
7
9
4
8
9
...

result:

ok 100000 lines

Test #6:

score: 10
Accepted
time: 38ms
memory: 1240kb

input:

100000
-792937
-162616
-84421
-488532
-196589
-348075
-749731
186091
-578056
-173526
-55094
443712
-...

output:

9
6
7
7
5
8
8
8
6
8
7
6
8
7
8
7
7
6
7
5
8
8
7
8
6
6
10
7
7
5
8
8
9
7
8
7
7
7
6
7
7
8
5
6
6
8
7
10
7
...

result:

ok 100000 lines

Test #7:

score: 10
Accepted
time: 83ms
memory: 1236kb

input:

100000
253607128917732420
24408063907307269
117620878244041236
983765135055422340
268651110948098510...

output:

18
19
18
22
22
23
18
23
23
19
19
22
20
21
23
18
23
22
25
23
17
22
17
20
20
19
19
22
18
23
23
18
20
1...

result:

ok 100000 lines

Test #8:

score: 10
Accepted
time: 77ms
memory: 1236kb

input:

100000
-696377935053170490
-355212970239445107
-333306238170910973
-255251865730333904
-921799149072...

output:

21
17
17
21
25
19
22
19
21
19
22
21
20
22
20
19
20
20
19
22
20
18
23
19
23
20
25
20
22
23
17
19
19
1...

result:

ok 100000 lines

Test #9:

score: 10
Accepted
time: 78ms
memory: 1236kb

input:

100000
659146397167005125
546033109942061855
-27368974576746931
516768681479505510
26034241164991632...

output:

20
22
15
22
22
16
21
19
19
22
22
19
22
19
18
19
21
20
21
20
22
20
21
21
22
19
15
22
19
21
22
20
22
2...

result:

ok 100000 lines

Test #10:

score: 10
Accepted
time: 79ms
memory: 1236kb

input:

100000
917158593516630072
29757163513465913
-374400344927148529
-931396642079379928
8191114028391058...

output:

22
18
23
18
23
18
18
21
21
17
19
22
19
19
19
21
23
20
21
16
22
21
15
19
20
18
20
22
23
21
18
22
22
2...

result:

ok 100000 lines

Extra Test:

score: 0
Extra Test Passed