关注
#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;
}
我想静静,最后应该用乘法把每个区间乘起来,我用成加分我想哭
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2025-12-12 18:42
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
6479次浏览 86人参与
# 机械人避雷的岗位/公司 #
41771次浏览 276人参与
# 程序员找工作至少要刷多少题? #
12086次浏览 189人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1058次浏览 36人参与
# 我现在比当时_,你想录用我吗 #
5267次浏览 80人参与
# 过年最难忘的一件事 #
23043次浏览 174人参与
# 为了减少AI幻觉,你注入过哪些设定? #
2496次浏览 91人参与
# 牛客AI体验站 #
4516次浏览 133人参与
# AI Coding的使用心得 #
3354次浏览 89人参与
# 找工作的破防时刻 #
252960次浏览 1960人参与
# 刚入职的你踩过哪些坑 #
5173次浏览 109人参与
# 一张图晒一下你的AI员工 #
3542次浏览 81人参与
# 你最满意的offer薪资是哪家公司? #
69448次浏览 349人参与
# 论秋招对个人心气的改变 #
6969次浏览 121人参与
# 关于春招/暑期实习,你想知道哪些信息? #
5176次浏览 95人参与
# 黄金这个事上,你学到了什么 #
1196次浏览 36人参与
# 机械人你知道哪些单休企业 #
85350次浏览 428人参与
# 程序员能干到多少岁? #
6587次浏览 100人参与
# 晒晒你司的新年福利 #
5185次浏览 80人参与
# 关于提前批我想问 #
267337次浏览 2303人参与

深信服公司福利 896人发布