ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#213961 | #2662. 折跃 | Filberte | 100 | 2925ms | 1240kb | C++11 | 934b | 2024-11-14 20:06:49 | 2024-11-14 23:05:13 |
answer
#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int N = 5050;
int s[N], f[N];
int main(){
int n, a, b, k;
cin >> n >> a >> b >> k;
f[a] = 1;
for(int _t = 1;_t <= k;_t++){
memset(s, 0, sizeof(s));
for(int p = 1;p <= n;p++) if(p != b){
int d = abs(p - b), x = f[p];
int lft = max(1, p - d + 1), rit = min(n, p + d - 1);
if(lft <= p - 1){
s[lft] = (s[lft] + x) % mod;
s[p] = (s[p] - x + mod) % mod;
}
if(p + 1 <= rit){
s[p + 1] = (s[p + 1] + x) % mod;
s[rit + 1] = (s[rit + 1] - x + mod) % mod;
}
}
for(int i = 1;i <= n;i++) f[i] = (f[i - 1] + s[i]) % mod;
f[b] = 0;
}
int res = 0;
for(int i = 1;i <= n;i++) res = (res + f[i]) % mod;
cout << res << endl;
return 0;
}
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 1224kb
input:
98 18 22 94
output:
27076018
result:
ok single line: '27076018'
Test #2:
score: 10
Accepted
time: 0ms
memory: 1224kb
input:
95 94 73 92
output:
748455277
result:
ok single line: '748455277'
Test #3:
score: 10
Accepted
time: 338ms
memory: 1240kb
input:
4674 2740 4172 4983
output:
454585991
result:
ok single line: '454585991'
Test #4:
score: 10
Accepted
time: 359ms
memory: 1240kb
input:
4981 813 4046 4994
output:
226418975
result:
ok single line: '226418975'
Test #5:
score: 10
Accepted
time: 327ms
memory: 1236kb
input:
4595 3757 519 4810
output:
194357577
result:
ok single line: '194357577'
Test #6:
score: 10
Accepted
time: 480ms
memory: 1240kb
input:
4902 277 2317 4821
output:
641852228
result:
ok single line: '641852228'
Test #7:
score: 10
Accepted
time: 420ms
memory: 1240kb
input:
4516 1607 639 4990
output:
973001631
result:
ok single line: '973001631'
Test #8:
score: 10
Accepted
time: 323ms
memory: 1240kb
input:
4823 1127 3840 4648
output:
431104558
result:
ok single line: '431104558'
Test #9:
score: 10
Accepted
time: 344ms
memory: 1240kb
input:
4937 3261 2918 4817
output:
638296884
result:
ok single line: '638296884'
Test #10:
score: 10
Accepted
time: 334ms
memory: 1240kb
input:
4744 135 2414 4828
output:
30641258
result:
ok single line: '30641258'