zoukankan      html  css  js  c++  java
  • 小明买了一些彩色的气球用绳子串在一条线上,想要装饰房间,每个气球都染上了一种颜色,每个气球的形状都是各不相同的。我们用1到9一共9个数字表示不同的颜色,如12345则表示一串5个颜色各不相同的气球串。但小明希望得到不出现重复颜色的气球串,那么现在小明需要将这个气球串剪成多个较短的气球串,小明一共有多少种剪法?如原气球串12345的一种是剪法是剪成12和345两个气球串。

    include "stdafx.h"

    #include<iostream>  
    #include<vector>  
    #include<string>
    #include<algorithm>
    #include<math.h>
    #include<iomanip>
    #include<numeric>
    #include<list>
    #include<deque>
    #include<queue>
    
    using namespace std;
    
    
    int main()
    {
    	int n;
    	while (cin>>n)
    	{
    		vector <int> numVec; //存储气球的个数
    		vector <int> colors; //存储颜色
    
    		int num;
    		cin >> num;
    		colors.push_back(num);
    
    		numVec.push_back(1);//当有零个气球时
    		numVec.push_back(1);//当有一个气球时
    	
    
    		for (int i = 1;i < n;i++)
    		{
    			int num;
    			cin >> num;
    			
    			int cp = colors.size()-1;
    			int np = numVec.size()-1;
    			long long p = numVec[np];
    		//	cout << "概率:" << p << endl;
    
    			for (int j = colors.size()- 1;j >= 0;j--)
    			{
    				if (colors[j] != num)
    				{
    					bool flag = true;
    
    					for (int k = j+1;k < colors.size();k++)//前面有任何一个气球和j相等则不能把气球j和后面的气球分成一组
    					{
    						if (colors[k] == colors[j])
    						{
    							flag = false;
    						}
    					}
    					if (flag == true)
    					{
    						p += numVec[np - cp + j - 1];
    					}
    					else
    					{
    						break;
    					}
    					
    				}
    				else
    				{
    					break;
    				}
    			}
    				
    			numVec.push_back(p%1000000007);//不要忘了取余数!!!!!!
    		//	cout << "概率:" << p << endl;
    			colors.push_back(num);
    		
    		}
    		cout << numVec[numVec.size() - 1] << endl;
    	}
    	return 0;
    }
  • 相关阅读:
    CF896C Willem, Chtholly and Seniorious 珂朵莉树
    LG2495 「SDOI2011」消耗战 虚树
    20191102 「HZOJ NOIP2019 Round #12」20191102模拟
    LG1345 「USACO5.4」Telecowmunication 最小割
    LG1344 「USACO4.4」Pollutant Control 最小割
    POJ1741 Tree 点分治
    [BZOJ2143]飞飞侠 并查集优化最短路
    [NOI.AC#41]最短路 线性基
    [NOI.AC#40]Erlang
    [BZOJ2238]Mst 最小生成树+树链剖分/并查集
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6597050.html
Copyright © 2011-2022 走看看