社区讨论

FAOI-R2 B 20pts 求调

学术版参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lquxvw2n
此快照首次捕获于
2024/01/01 21:11
2 年前
此快照最后确认于
2024/01/02 12:30
2 年前
查看原帖
Subtask 2 大概半对。
只用知道 60pts 的正确写法,不用正解,感谢。
我知道我肯定犯了什么超级愚蠢的错误
CPP
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
const ll maxn = 1e5 + 5;
const ll mod = 1e9 + 7;
ll read(){
	char ch;
	ll f = 0, r = 0;
	ch = getchar();
	while(ch > '9' || ch < '0') f |= ch == '-', ch = getchar();
	while(ch <= '9' && ch >= '0') r = (r << 3) + (r << 1) + (ch ^ 48), ch = getchar();
	return f ? -r : r;
}
ll n = read(), m = read(), f[maxn], sum[maxn], x, mn = mod;
int main(){
    for(int i = 1; i <= m; ++i) x = read(), f[x]++, mn = min(mn, x);
    for(int i = mn; i <= n; ++i) f[i] = (f[i] + sum[i - 1] - sum[(i - 1) / 2]) % mod, sum[i] = (sum[i - 1] + f[i]) % mod;
    printf("%lld", f[n]);
    return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...