B-病毒扩散

病毒扩散

http://www.nowcoder.com/questionTerminal/2204cb3b0ea44f0f9f0fb86b3cac26c9

数学方法推一下:
我们枚举出t=1-5秒内的变化人数图
当t=1时:
1
1 1
t=2时:
1
2 2
1 2 1
t=3s
1
3 3
3 6 3
1 3 3 1
t=4时
1
4 4
6 12 6
4 12 12 4
1 4 6 4 1
我们发现当时间为t时,第n斜行的数为 ,所以每个位置的感染者数也就出来了,自己推一下也很简单

#include<iostream>
using namespace std;
typedef long long ll;
const int maxn=5005;
const int mod=998244353;
int ans[maxn][maxn];
int cnt[10000];
int main(){
    ans[0][0]=1,ans[1][0]=1,ans[0][1]=1;
    for(int i=1;i<5001;++i){ans[i][0]=1,ans[0][i]=1;}
    for(int i=1;i<5001;++i)
        for(int j=1;j<5001;++j)
        ans[i][j]=(ans[i-1][j]+ans[i][j-1])%mod;
    int n;
    cin>>n;
    while(n--){
        int x,y,t;
        cin>>x>>y>>t;
        if(x+y>t){
            cout<<"0"<<endl;
            continue;
        }
        ll res=(ll)ans[t-x-y][x+y]*ans[x][y]%mod;
        cout<<res<<endl;
    }
} 
全部评论

相关推荐

jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
5 收藏 评论
分享
牛客网
牛客企业服务