#include #include#include#include#include#include#include&..._燃气灶气球房間繩子">
当前位置:   article > 正文

小明买了一些彩色的气球用绳子串在一条线上,想要装饰房间,每个气球都染上了一种颜色,每个气球的形状都是各不相同的。我们用1到9一共9个数字表示不同的颜色,如12345则表示一串5个颜色各不相同的气球串。...

燃气灶气球房間繩子

include "stdafx.h"

  1. #include<iostream>
  2. #include<vector>
  3. #include<string>
  4. #include<algorithm>
  5. #include<math.h>
  6. #include<iomanip>
  7. #include<numeric>
  8. #include<list>
  9. #include<deque>
  10. #include<queue>
  11. using namespace std;
  12. int main()
  13. {
  14. int n;
  15. while (cin>>n)
  16. {
  17. vector <int> numVec; //存储气球的个数
  18. vector <int> colors; //存储颜色
  19. int num;
  20. cin >> num;
  21. colors.push_back(num);
  22. numVec.push_back(1);//当有零个气球时
  23. numVec.push_back(1);//当有一个气球时
  24. for (int i = 1;i < n;i++)
  25. {
  26. int num;
  27. cin >> num;
  28. int cp = colors.size()-1;
  29. int np = numVec.size()-1;
  30. long long p = numVec[np];
  31. // cout << "概率:" << p << endl;
  32. for (int j = colors.size()- 1;j >= 0;j--)
  33. {
  34. if (colors[j] != num)
  35. {
  36. bool flag = true;
  37. for (int k = j+1;k < colors.size();k++)//前面有任何一个气球和j相等则不能把气球j和后面的气球分成一组
  38. {
  39. if (colors[k] == colors[j])
  40. {
  41. flag = false;
  42. }
  43. }
  44. if (flag == true)
  45. {
  46. p += numVec[np - cp + j - 1];
  47. }
  48. else
  49. {
  50. break;
  51. }
  52. }
  53. else
  54. {
  55. break;
  56. }
  57. }
  58. numVec.push_back(p%1000000007);//不要忘了取余数!!!!!!
  59. // cout << "概率:" << p << endl;
  60. colors.push_back(num);
  61. }
  62. cout << numVec[numVec.size() - 1] << endl;
  63. }
  64. return 0;
  65. }

转载于:https://www.cnblogs.com/wdan2016/p/6597050.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/717798
推荐阅读
相关标签