FAOI-R2 B 20pts 求调
  • 板块学术版
  • 楼主No_Rest
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/1/1 21:10
  • 上次更新2024/1/2 12:30:49
查看原帖
FAOI-R2 B 20pts 求调
550821
No_Rest楼主2024/1/1 21:10

记录

Subtask 2 大概半对。

只用知道 60pts 的正确写法,不用正解,感谢。

我知道我肯定犯了什么超级愚蠢的错误

#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;
}
2024/1/1 21:10
加载中...