贪心算法举例

1

/*有m位数,要求删除n位,使得删除后的数最小

例如:576397987456677811111111111,删除576998使得删除后的数最小*/

原创代码:

#include 
//#include //可以用来编写C
using namespace std;
void Read (char a[])
{   
	char c;
	int i=0;
	int x;
	cout<<"请输入这些数:"<a[k])
		{
				a[i]=-1;
				w++;
		}
		for(n=0;na[k])
			{
					a[n]=-1;
					w++;
			}
		k++;
	}
		if(k==x)//该部分是指如果数列是按照顺序排序的话,则应该从后开始删除
			for(int q=1,i=x-1;a[i]!=-1&&q<=(j-w);)
			{
					a[i]=-1;
					i--;
					q++;
			}

	
	cout<<"删除后的最小序列是:"<>n;
	Detele(a,m,n);
	
	return 0;
}


参考:
#include
void main()
{
	char a[1000];
	int i,j,k,n;
	int l;
	scanf("%s",a);
	l=0;
	i=0;
	while(a[i++]!='\0')
		l++;//长度
	scanf("%d",&n);
	while(n--)
	{
		for(i=0;ia[j])
				{
					a[i]='*';
					break;
				}
		}
	}
		printf("\n");
	for(i=0;i
2./*有一魔法师在森林中,森林中有n瓶药水,每个药水都有一定的浓度,只有药水浓度p不大于所给的参考浓度时,药水才有效,每瓶药水
必须用完,配药水,问最大体积是多少*/
*参考数据:
输入3//三组数据                                    输出:
1 100 10//1为一瓶浓度 100为体积 10为参考浓度        0
100//所给的一瓶药水的浓度                    
2 100 24                                            100
20 30                
3 100 24                                            300
20 30 30 */

#include 
using namespace std; 
#define M 10
void sort(int a[],int n)
{
    int k,i;
    for(i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
            if(a[j]>N;
    for(i=1;i>n;
        cin>>v;
        cin>>w;
        cout<<"请输入所给的药水各自的浓度:"<>a[i];
        sort(a,n);
    for(i=1;i<=n;i++)
        if(a[i]w)
            {
                cout<<"最大体积为:"<




 
  

 
 

你可能感兴趣的:(贪心)