社区讨论
呆马求调
P2429制杖题参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhpi78kz
- 此快照首次捕获于
- 2025/11/08 07:45 3 个月前
- 此快照最后确认于
- 2025/11/08 07:45 3 个月前
前三个点超时了,请大佬们帮忙看看。
CPP#include <bits/stdc++.h>
#define N 25
#define int long long
#define mod 376544743
using namespace std;
int n, m, p[N], ans;
bool b[N];
inline int rd() {
int S = 0, F = 1;
char ch = getchar();
for(; ch < '0' || ch > '9'; ch = getchar() )
if(ch == '-') F = -1;
for(; ch >= '0' && ch <= '9'; S = (S << 3) + (S << 1) + (ch ^ 48), ch = getchar() );
return S * F;
}
void dfs(int id, int sum, int s) {
int cnt, cur;
cnt = m / s;
cur = (cnt + 1) * cnt / 2 % mod;
if(sum % 2) ans = (ans + cur * s) % mod;
else ans = (ans - cur * s) % mod;
for(int i = id + 1; i <= n; i++) {
if(b[i] || s * p[i] > m) continue ;
b[i] = 1;
dfs(i, sum + 1, s * p[i]);
b[i] = 0;
}
}
signed main() {
n = rd(); m = rd();
for(int i = 1; i <= n; i++) p[i] = rd();
for(int i = 1; i <= n; i++) {
// memset(b, 0, sizeof(b) );
b[i] = 1;
dfs(i, 1, p[i]);
b[i] = 0;
}
printf("%lld", ans);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...