?
№ | Отправитель | Задача | Язык | Вердикт | Время | Память | Отослано | Протест. | |
---|---|---|---|---|---|---|---|---|---|
230364270 |
Дорешивание: FreshOrange |
1854C - 8 | C++20 (GCC 11-64) | Полное решение | 15 мс | 2012 КБ | 2023-10-29 15:20:01 | 2023-10-29 15:20:01 |
#include<bits/stdc++.h> using namespace std; typedef long long E; const E mod=1e9+7; E ksm(E a,E b){ E ret=1; while(b){ if(b&1) ret=ret*a%mod; a=a*a%mod; b>>=1; } return ret; } const int N=510; const E inv2=(mod+1)>>1; E f[N][N],n,m; int main(){ cin>>n>>m; for(int i=0; i<=m; i++){ f[i][i]=0; for(int j=i+1; j<=m; j++){ if(i){ f[i][j]=(f[i-1][j]+(f[i][j-1]+1))*inv2%mod; } else{ f[i][j]=(f[i][j-1]+1)%mod; } } } E lst=0,ans=0; for(int i=1; i<=n; i++){ E s; cin>>s; if(lst) ans=(ans+f[m-s+1][m-lst+1])%mod; lst=s; } ans=(ans+f[0][m-lst+1])%mod; cout<<ans<<endl; return 0; }
?
?
?
?