QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#560436 | #670. K-th String | ucup-team1198# | RE | 0ms | 3812kb | C++20 | 1.7kb | 2024-09-12 15:45:08 | 2024-09-12 15:45:09 |
Judging History
answer
#include <map>
#include <set>
#include <array>
#include <cmath>
#include <deque>
#include <bitset>
#include <random>
#include <string>
#include <vector>
#include <cassert>
#include <complex>
#include <iomanip>
#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>
using namespace std;
const int MOD = 1e9 + 7;
int add(int a, int b) {
return a + b >= MOD ? a + b - MOD : a + b;
}
int sub(int a, int b) {
return a >= b ? a - b : a + MOD - b;
}
int mul(int a, int b) {
return (1ll * a * b) % MOD;
}
int knapsack(vector<int> x, int s, int k) {
vector<vector<int>> dp(s + 1, vector<int>(k + 1, 0));
dp[0][0] = 1;
for (int t : x) {
for (int i = k - 1; i >= 0; --i) {
for (int j = s - t; j >= 0; --j) {
dp[j + t][i + 1] = add(dp[j + t][i + 1], dp[j][i]);
}
}
}
return dp[s][k];
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n, k;
cin >> n >> k;
string s;
cin >> s;
int l = s.size();
int sumid = (s[0] - 'a') * n + l - k;
int ans = 0;
for (int i = l; i <= n; ++i) {
vector<int> ind;
for (int j = 0; j + l < i; ++j) {
ind.push_back(j);
}
for (int j = i; j < n; ++j) {
ind.push_back(j);
}
int sum = sumid;
int k = (s[0] - 'a');
for (int j = 0; j < l; ++j) {
if (s[j] < s[0]) {
--k;
sum -= (i - l + j);
}
}
int mlt = 1;
for (int i = 1; i <= k; ++i) {
mlt = mul(mlt, i);
}
for (int i = 1; i <= n - l - k; ++i) {
mlt = mul(mlt, i);
}
ans = add(ans, mul(mlt, knapsack(ind, sum, k)));
}
cout << ans << "\n";
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3568kb
input:
7 12 caedgfb
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
2 3 b
output:
1
result:
ok single line: '1'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3648kb
input:
8 4 febadh
output:
0
result:
ok single line: '0'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3812kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #5:
score: -100
Runtime Error
input:
4 9 bca