关注
#include<bits/stdc++.h>
using namespace std;
const int mod = int(1e9 + 7);
int table[1010][1010];
void init(int n/*数量*/,int len/*范围*/)
{
memset(table, 0, sizeof(table));
vector<int> dp(len, 1);
for(int i=1;i<=n;i++)
{
table[i][0] = 1;
for(int j=1;j<len;j++)
{
dp[j] += dp[j - 1];
dp[j] %= mod;
table[i][j] = dp[j];
}
}
}
int FillArray(vector<int> a, int k) {
a.insert(a.begin(), 1);
a.insert(a.end(), k);
const int n = a.size();
vector<pair<int, int>> zero;
int max_n = 0;
int max_len = 0;
for(int i=0;i<n-1;i++)
{
if(a[i+1]==0)
{
int j = i + 1;
while (j < n && a[j] == 0) j++;
int x = j - i-1;
int y = a[j] - a[i];
zero.push_back({ x,y });
max_n = max(max_n, x);
max_len = max(max_len, y+1);
i = j-1;
}
}
init(max_n, max_len);
int64_t res = 1;
for(auto [x,y]:zero)
{
res *= table[x][y];
res %= mod;
}
return res;
}
int main()
{
cout << FillArray({ 0,0,0,0,0,67,0,0 }, 100)<<endl;
cout << FillArray({ 1,0,0 }, 3) << endl;
cout << FillArray({ 0,4,4 }, 4) << endl;
}
我想静静,最后应该用乘法把每个区间乘起来,我用成加分我想哭
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职总结 #
36941次浏览 581人参与
# 你觉得专业和学校哪个对薪资影响最大 #
55819次浏览 460人参与
# 一人一个landing小技巧 #
40880次浏览 722人参与
# 国企vs私企,怎么选? #
21508次浏览 172人参与
# 你收到了团子的OC了吗 #
1318499次浏览 11652人参与
# 机械人值得去的国央企 #
60328次浏览 408人参与
# 考公还是考研,你怎么选? #
24940次浏览 128人参与
# 应届生第一份工作最好去大厂吗? #
17429次浏览 434人参与
# 安利/避雷我的专业 #
72179次浏览 508人参与
# 大厂还是考编 #
86948次浏览 1313人参与
# 选完offer后,你后悔学本专业吗 #
43659次浏览 227人参与
# 怎么防止在试用期被辞退 #
119004次浏览 896人参与
# 如果重来一次你还会读研吗 #
169642次浏览 1764人参与
# 辞职之后最想做的一件事 #
12915次浏览 176人参与
# 联想工作体验 #
24410次浏览 166人参与
# 薪资一样,你会选择去大厂还是小公司 #
17654次浏览 106人参与
# 工作中的卑微时刻 #
9688次浏览 58人参与
# 校招第一份工作你干了多久? #
68953次浏览 338人参与
# 选offer应该考虑哪些因素 #
25542次浏览 344人参与
# 为了秋招你都做了哪些准备? #
11781次浏览 176人参与