hdu 2087 剪花布条

朱雀 2022-05-30 20:39 205阅读 0赞

剪花布条

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 24917 Accepted Submission(s): 15368

Problem Description

一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?

Input

输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。

Output

输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。

Sample Input

abcde a3 aaaaaa aa #

Sample Output

0 3

Author

qianneng

题目解析:

很水的一个题目,直接暴力就可以过

代码:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int maxn = 1000+100;
  4. char c1[maxn];
  5. char c2[maxn];
  6. int main()
  7. {
  8. while(cin>>c1>>c2)
  9. {
  10. if(c1[0]=='#')
  11. break;
  12. int ans = 0;
  13. int len1 = strlen(c1);
  14. int len2 = strlen(c2);
  15. for(int i=0; i<=len1-len2;)
  16. {
  17. int temp = i;
  18. int flag = 1;
  19. for(int j=0; j<len2;)
  20. {
  21. if(c1[i]==c2[j])
  22. {
  23. i++;
  24. j++;
  25. }
  26. else
  27. {
  28. flag = 0;
  29. break;
  30. }
  31. }
  32. if(flag)
  33. {
  34. ans++;
  35. }
  36. else
  37. i = temp+1;
  38. }
  39. cout<<ans<<endl;
  40. }
  41. return 0;
  42. }

发表评论

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

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

相关阅读