QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#844662 | #3472. EvenOdd | Symbolize | AC ✓ | 0ms | 3700kb | C++20 | 1.2kb | 2025-01-06 09:39:59 | 2025-01-06 09:39:59 |
Judging History
answer
/*
Luogu name: Symbolize
Luogu uid: 672793
*/
#include<bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define x first
#define y second
#define rep1(i,l,r) for(register int i=l;i<=r;++i)
#define rep2(i,l,r) for(register int i=l;i>=r;--i)
#define rep3(i,x,y,z) for(register int i=x[y];~i;i=z[i])
#define rep4(i,x) for(auto i:x)
#define debug() puts("----------")
const int N=1e5+10;
const int inf=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+7;
using namespace std;
int l,r;
int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return f*x;
}
int get(int x)
{
if(x<=1) return 0;
int ans=0;
while(x>1)
{
if(x&1) ++x;
else x>>=1;
++ans;
}
return ans;
}
int solve(int x)
{
if(x<=1) return 0;
int ans=((x/2-1+mod)%mod+(x/2*2%mod-1+mod)%mod+solve(x/2)*2%mod)%mod;
if(x&1) ans=(ans+get(x))%mod;
return ans;
}
signed main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
l=read();
r=read();
cout<<(solve(r)-solve(l-1)+mod)%mod<<"\n";
return 0;
}
/*
3
*/
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3688kb
input:
1 127
output:
1083
result:
ok single line: '1083'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3700kb
input:
74 74
output:
11
result:
ok single line: '11'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
188481480076382025 735477894373585094
output:
603589184
result:
ok single line: '603589184'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
221018194823646727 598132723231895586
output:
593435414
result:
ok single line: '593435414'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
723254527395008082 857000792713570284
output:
130769773
result:
ok single line: '130769773'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
308610764995277671 886546357678103983
output:
981434297
result:
ok single line: '981434297'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3700kb
input:
467129058436471616 929946560335162000
output:
956030241
result:
ok single line: '956030241'
Test #8:
score: 0
Accepted
time: 0ms
memory: 3580kb
input:
142308250729181166 793647580012269898
output:
890073540
result:
ok single line: '890073540'
Test #9:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
30010612464177072 225060844674934062
output:
192815207
result:
ok single line: '192815207'
Test #10:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
1 1
output:
0
result:
ok single line: '0'
Test #11:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
1 1000000000000000000
output:
826523937
result:
ok single line: '826523937'
Test #12:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
1 999999999999999999
output:
826523858
result:
ok single line: '826523858'
Test #13:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
4 16384
output:
311294
result:
ok single line: '311294'
Test #14:
score: 0
Accepted
time: 0ms
memory: 3684kb
input:
4398046511104 18014398509481984
output:
451815097
result:
ok single line: '451815097'
Test #15:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
4096 281474976710656
output:
231757660
result:
ok single line: '231757660'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
16 137438953472
output:
983959228
result:
ok single line: '983959228'
Test #17:
score: 0
Accepted
time: 0ms
memory: 3572kb
input:
8192 16777216
output:
570281997
result:
ok single line: '570281997'