2021 CCPC E. 被遗忘的计划(循环卷积+快速幂)
生活随笔
收集整理的這篇文章主要介紹了
2021 CCPC E. 被遗忘的计划(循环卷积+快速幂)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
E. 被遺忘的計劃
別人的簡潔寫法
#include<bits/stdc++.h>using namespace std; using ll=long long; const ll INF=0x3f3f3f3f3f3f3f3fll; const ll mod=1e9+7; using vl=vector<ll>; vl operator *(vl a,vl b) {vl v(a.size(),-INF);for(int i=0;i<a.size();i++)for(int j=0;j<b.size();j++) v[(i+j)%a.size()]=max(v[(i+j)%a.size()],a[i]+b[j]);return v; } vl qmi(vl a,ll b) {vl v(a.size(),-INF);v[0]=0;while(b){if(b&1) v=v*a;a=a*a;b>>=1;}return v; } int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n;cin>>n;vl v(n),f(n);for(int i=1;i<=n;i++) cin>>v[i%n];for(int i=0;i<n;i++) cin>>f[i];ll maxv=*max_element(v.begin(),v.end());ll maxf=*max_element(f.begin(),f.end());ll k=maxf/maxv;if(maxf==0||maxf%maxv||k>1e9||k<1) return cout<<-1,0;v=qmi(v,k);cout<<(v==f?k:-1);return 0; }總結
以上是生活随笔為你收集整理的2021 CCPC E. 被遗忘的计划(循环卷积+快速幂)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第 45 届国际大学生程序设计竞赛(IC
- 下一篇: OPPO Find N3首销销量达到上代