资讯详情

Atcoder KEYENCE Programming Contest 2021

比赛链接

给你两个数组 分别为A,B

现在组合成C数组,ci的值为Ai*Bj最大值为0<i<=j<=n

分析:预处理每个j对应的最大值A[i],并且保存C[i-1]的值,

c[i]的值等于c[i-1],b[i]*sum[i];

AC代码:

#include<bits/stdc  .h> #define ll long long using namespace std; const int mod=1e9 7; const int N=2e5 10; ll a[N]; ll b[N]; ll max1[N]; int main() {     int n;     cin>>n;     for(int i=1; i<=n; i  )     {         cin>>a[i];         if(max1[i-1]>a[i])         {             max1[i]=max1[i-1];         }         else         {             max1[i]=a[i];         }     }     for(int i=1; i<=n; i  )     {         cin>>b[i];     }     ll ans=0;     for(int i=1; i<=n; i  )     {         ll k=max(ans,b[i]*max1[i]);         ans=k;         cout<<k<<endl;     }     return 0; } 

题意:有N个数字,K每个盒子中不存在的最小非负数是次盒的值,所以盒子的最大值

分析:用桶存储数字的数量,从前到后进行枚举和添加。详见代码

#include<bits/stdc  .h> #define ll long long using namespace std; const int mod=1e9 7; const int N=4e5 10; int a[N]; int main() {     int n,k;     cin>>n>>k;     for(int i=0; i<n; i  )     {         int q;         cin>>q;         a[q]  ;     }     int sum=0;     for(int i=0; i<n; i  )     {         if(a[i])         {             if(a[i]<k)             {                 sum =i*(k-a[i]);                 k=a[i];             }         }         else         {             sum =i*(k-a[i]);             k=a[i];             break;         }     }     cout<<sum<<endl;     return 0; } 

C

题意 一个H*W字母写在矩阵中的K格子上R,D,X

R只能移动至(i,j 1)格子中,D只能移动至(i 1,j)的格子中,x则都可以

空白格子可以写任何字母,问(H,W)有多少种路径。

分析:偷懒,下次写~~~

#include<bits/stdc  .h> #define ll long long using namespace std; const int mod=998244353; const int N=5010; char mp[N][N]; ll dp[N][N]; long long int pows(long long int a, long long int k) {     long long int ans = 1;     a %= mod;     while(k)     {         if(k % 2)             ans *= a;         a = (a * a) % mod;         k /= 2;         ans %= mod;     }     return ans; } int main() {     ll h,w,k;     cin>>h>>w>>k;     ll t=k;     while(t--)     {         int x,y;         char c;         cin>>x>>y>>c;         mp[x][y]=c;     }      ll ans=pows(3,h*w-k);     dp[1][1]=ans;      ans=pows(3,mod-2);     for(int i=1; i<=h; i  )     {         for(int j=1; j<=w; j  )         {              if(mp[i][j]=='R')             {                 dp[i][j 1]=(dp[i][j 1] dp[i][j])%mod;             }             else if(mp[i][j]=='D')             {                  dp[i 1][j]=(dp[i 1][j] dp[i][j])%mod;             }             else if(mp[i][j]=='X')             {                 dp[i][j 1]=(dp[i][j 1] dp[i][j])%mod;                 dp[i 1][j]=(dp[i 1][j] dp[i][j])%mod;              }             else             {                 dp[i][j 1]=(dp[i][j 1] dp[i][j]*ans%mod)%mod;                 dp[i][j 1]=(dp[i][j 1] dp[i][j]*ans%mod)%mod;                 dp[i 1][j]=(dp[i 1][j] dp[i][j]*ans%mod)%mod;                 dp[i 1][j]=(dp[i 1][j] dp[i][j]*ans%mod)%mod;             }         }      }     cout<<dp[h][w]<<endl;     return 0; } 

标签: keyence传感器mu

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台