hdu多校

比眉伴天荒 2023-08-17 16:26 205阅读 0赞

1006

ContractedBlock.gif ExpandedBlockStart.gif

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define fo(i,a,b) for(int i=a;i<=b;i++)
  4. #define fod(i,a,b) for(int i=a;i>=b;i--)
  5. #define me0(a) memset(a,0,sizeof(a))
  6. #define read(a) scanf("%d",&a)
  7. const int maxn=1e6+10;
  8. typedef long long LL;
  9. char str[maxn];
  10. int nxt[maxn];
  11. void pre_EKMP(char ptr[],int len,int nxt[]){
  12. nxt[0]=len;
  13. int j=0;
  14. while(j+1<len&&ptr[j]==ptr[j+1]) j++;
  15. nxt[1]=j;
  16. int k=1;
  17. fo(i,2,len-1){
  18. int p=nxt[k]+k-1;
  19. int L=nxt[i-k];
  20. if(i+L<p+1) nxt[i]=L;
  21. else{
  22. j=max(0,p-i+1);
  23. while(i+j<len&&ptr[i+j]==ptr[j]) j++;
  24. nxt[i]=j;
  25. k=i;
  26. }
  27. }
  28. }
  29. int main(){
  30. int t;
  31. read(t);
  32. while(t--){
  33. scanf("%s",str);
  34. int len=strlen(str);
  35. pre_EKMP(str,len,nxt);
  36. LL ans=0;
  37. fo(i,1,len-1){
  38. if(nxt[i]==(len-1-i+1)) ans+=nxt[i];
  39. else ans+=nxt[i]+1;
  40. }
  41. printf("%lld\n",ans);
  42. }
  43. return 0;
  44. }

1007

ContractedBlock.gif ExpandedBlockStart.gif

  1. 1 #include <bits/stdc++.h>
  2. 2 using namespace std;
  3. 3 #define op freopen("in.txt","r",stdin)
  4. 4 #define fo(i,a,b) for(int i=a;i<=b;i++)
  5. 5 #define fod(i,a,b) for(int i=a;i>=b;i--)
  6. 6 #define me0(a) memset(a,0,sizeof(a))
  7. 7 #define read(a) scanf("%d",&a)
  8. 8 const int maxn=1e6+10;
  9. 9 typedef long long LL;
  10. 10 const LL mod=998244353;
  11. 11
  12. 12 LL dp[maxn];
  13. 13
  14. 14 int main(){
  15. 15 //op;
  16. 16 int t;
  17. 17 read(t);
  18. 18 while(t--){
  19. 19 int n,x,y;
  20. 20 read(n);read(x);read(y);
  21. 21 if(y!=n) y--;
  22. 22 if(x!=1) x++;
  23. 23
  24. 24 int l=0,r=y;
  25. 25 l=min(l,x-4);
  26. 26 fo(i,l,r) dp[i]=0;
  27. 27 dp[x]=1;
  28. 28 fo(i,x+1,y){
  29. 29 if(i-3>0) dp[i]+=dp[i-3];
  30. 30 dp[i]+=dp[i-1];
  31. 31 dp[i]%=mod;
  32. 32 }
  33. 33
  34. 34 printf("%lld\n",dp[y]);
  35. 35 }
  36. 36 return 0;
  37. 37 }

转载于:https://www.cnblogs.com/Aiahtwo/p/11302761.html

发表评论

表情:
评论列表 (有 0 条评论,205人围观)

还没有评论,来说两句吧...

相关阅读