zoukankan      html  css  js  c++  java
  • 洛谷 4933 洛谷10月月赛II T2 大师

    【题解】

      f[i][j]表示最后一个数为h[i],公差为j的等差数列的个数。n方枚举最后一个数和倒数第二个数转移即可。注意公差可能为负数,需要移动为正数再作为下标。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #define LL long long
     5 #define rg register
     6 #define N 1010
     7 #define Mod (998244353)
     8 #define P (20000)
     9 using namespace std;
    10 int n,mx,ans,h[N],f[N][40010];
    11 inline int read(){
    12     int k=0,f=1; char c=getchar();
    13     while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar();
    14     while('0'<=c&&c<='9')k=k*10+c-'0',c=getchar();
    15     return k*f;
    16 }
    17 inline void MOD(int &k){if(k>=Mod) k-=Mod;}
    18 int main(){
    19     n=read();
    20     for(rg int i=1;i<=n;i++) h[i]=read();
    21     for(rg int i=1;i<=n;i++){
    22         ans++;
    23         for(rg int j=i-1;j;j--){
    24             f[i][h[i]-h[j]+P]+=f[j][h[i]-h[j]+P]+1; MOD(f[i][h[i]-h[j]+P]);
    25             ans+=f[j][h[i]-h[j]+P]+1; MOD(ans);
    26         }
    27     }
    28     printf("%d
    ",ans);
    29     return 0;
    30 }
  • 相关阅读:
    hdu2438 三分
    hdu3786 找出直系亲属 水题
    hdu3786 找出直系亲属 水题
    hdu4561 连续最大积
    hdu4561 连续最大积
    hdu4604 不错的子序列问题
    hdu4604 不错的子序列问题
    hdu4450 不错的贪心
    hdu1722 切蛋糕
    hdu3768 spfa+全排列
  • 原文地址:https://www.cnblogs.com/DriverLao/p/9845247.html
Copyright © 2011-2022 走看看