Archived
01:59(160)
This commit is contained in:
1 parent
9362c48811
commit
bbc2a605d4
3 files changed
+133
-5
No files matched your search
+25
-4
@@ -1,16 +1,36 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
int c, t;
|
||||
int n, d;
|
||||
int x[2000005];
|
||||
int n;
|
||||
long long d;
|
||||
long long x[2000005];
|
||||
long long fa[5005][5005];
|
||||
int main() {
|
||||
freopen("migrate.in", "r", stdin);
|
||||
freopen("migrate.out", "w", stdout);
|
||||
scanf("%d%d", &c, &t);
|
||||
while(t--) {
|
||||
scanf("%d%d", &n, &d);
|
||||
scanf("%d%lld", &n, &d);
|
||||
for(int i = 1; i <= n; ++i) {
|
||||
scanf("%d", &x[i]);
|
||||
scanf("%lld", &x[i]);
|
||||
}
|
||||
if(c <= 10) {
|
||||
long long ans = 0;
|
||||
for(int i = 1; i < n; ++i) {
|
||||
fa[i][i] = 1;
|
||||
fa[i][i + 1] = (x[i + 1] - x[i] <= d) && (fa[x + 2] - x[i]) > d;
|
||||
}
|
||||
fa[n][n] = 1;
|
||||
for(int len = 2; len <= n; ++len) {
|
||||
for(int l = 1; l + len - 1 <= n; ++l) {
|
||||
int r = l + len - 1;
|
||||
for(int mid = l; mid <= r - 1; ++mid) {
|
||||
fa[l][r] += fa[l][mid] * fa[mid + 1][r];
|
||||
}
|
||||
if(fa[l][r] == 2) ans++;
|
||||
}
|
||||
}
|
||||
printf("%lld\n", ans);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@@ -20,4 +40,5 @@ g++ migrate/migrate.cpp -o migrate/migrate -std=c++14 -O2 -static -Wall && cp mi
|
||||
|
||||
每次飞行长度不超过 d
|
||||
体力消耗为飞行次数
|
||||
长度最短一定不回溯
|
||||
*/
|
||||
Reference in new issue
Block a user