码迷,mamicode.com
首页 > 其他好文 > 详细

Educational Codeforces Round 80 (Rated for Div. 2)C(DP)

时间:2020-01-15 14:19:47      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:temp   color   efi   return   sync   nal   col   round   lse   

 1 #define HAVE_STRUCT_TIMESPEC
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 const long long mod = 1e9+7;
 5 long long pre[1007][1007],temp[1007][1007];
 6 int main(){
 7     ios::sync_with_stdio(false);
 8     cin.tie(NULL);
 9     cout.tie(NULL);
10     int n,m;
11     cin>>n>>m;
12     for(int i=1;i<=n;++i){
13         pre[1][i]=1;
14         temp[1][i]=1;
15     }
16     for(int i=2;i<=m;++i)//当前位
17         for(int j=1;j<=n;++j)//第i位以数字j结尾
18             for(int k=1;k<=j;++k)//保证非降序
19                 pre[i][j]=(pre[i][j]+pre[i-1][k])%mod;//状态转移
20     for(int i=2;i<=m;++i)//当前位
21         for(int j=1;j<=n;++j)//第i位以数字j结尾
22             for(int k=j;k<=n;++k)//保证非升序
23                 temp[i][j]=(temp[i][j]+temp[i-1][k])%mod;//状态转移
24     long long ans=0;
25     for(int i=1;i<=n;++i)//枚举第二个数组以数字i作为结尾
26         for(int j=1;j<=i;++j)//枚举第一个数组以数字j作为结尾,j<=i保证了第一个数组最大的都小于等于第二个数组最小的,所以整个数组全部满足小于等于关系
27             ans=(ans+(temp[m][i]*pre[m][j])%mod)%mod;//相乘得到答案
28     cout<<ans;
29     return 0;
30 }

Educational Codeforces Round 80 (Rated for Div. 2)C(DP)

标签:temp   color   efi   return   sync   nal   col   round   lse   

原文地址:https://www.cnblogs.com/ldudxy/p/12196064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!