zoukankan      html  css  js  c++  java
  • hdu1160 FatMouse'Speed

    /*
    hdu1160 FatMouse'Speed


    肥老鼠跑得慢
    算法分类:
    动态规划基础问题


    算法思路:
    共输入N组数据,那么我们设输入第i组数时,此时的最大子序列中数据的个数f(i)应该是:
    f(i)=max{f(j)|1<=j<i AND mouse[i].weight>mouse[j].weight AND mouse[i].speed<mouse[j].speed}+1;
    这个式子的意思就是包含第i项的前i组数据中的最大子序列中元素的个数。
    而我们要求的是这个{f(i)|1<=i<=N}中的最大值并求出这个最大值时的各个元素的下标。

    */

    #include<stdio.h>
    #include<string.h>
    
    typedef struct mouse
    {
    	int w;			//weight
    	int s;			//speed
    	int i;			//在原数组中的下标
    }mouse;
    mouse m[1002];      //至多1000组数据
    typedef struct list
    {
    	int sub[1002];  //定义子序列下标数组映射m
    	int count;      //定义子序列中元素个数
    }list;
    list l[1002];
    void f(int i)
    {
    	mouse M=m[i];
    	int max=0,j,li=0,temp;		//li表示最大组在list中的下标
    	for(j=0;j<i;j++)
    	{
    		temp=l[j].sub[l[j].count-1];
    		if(l[j].count>max&&m[temp].w<M.w&&m[temp].s>M.s)
    		{
    			max=l[j].count;
    			li=j;
    		}
    	}
    	max++;
    	l[i].count=max;
    	for(j=0;j<l[i].count-1;j++)
    	{
    		l[i].sub[j]=l[li].sub[j];
    	}
    	l[i].sub[max-1]=i;
    }
    int main()
    {
    
    	int n=0,i,j,max=0,q;
    	mouse temp;
    	memset(l,0,sizeof(l));
    	//freopen("input.txt","r",stdin);
    	//freopen("output.txt","w",stdout);
    	while(scanf("%d %d",&m[n].w,&m[n].s)!=EOF)
    	{	
    		m[n].i=n;
    		n++;   //将数据存入m数组中,l为输入数据的总数;
    	}
    	for(i=0;i<n;i++)			//按weight升序排序;
    	{
    		for(j=i+1;j<n;j++)
    		{
    			if(m[i].w>m[j].w)
    			{
    				temp=m[j];
    				m[j]=m[i];
    				m[i]=temp;
    			}
    		}
    	}
    	for(i=0;i<n;i++)
    	{
    		f(i);
    		if(l[i].count>max)
    		{
    			max=l[i].count;
    			q=i;
    		}
    	}
    	printf("%d\n",l[q].count);
    	for(i=0;i<l[q].count;i++)
    	{
    		printf("%d\n",m[l[q].sub[i]].i+1);
    	}
    }
    



  • 相关阅读:
    selector
    c# word 转pdf 导出失败,因为此功能尚未安装
    Jquery
    Enter
    获取当前地址的参数值
    无法向会话状态服务器发出会话状态请求。
    Ajax 跨域请求
    JsonResult 处理时间格式
    VS2013打开项目提示"Asp.net4.5未在web服务器上注册
    死锁
  • 原文地址:https://www.cnblogs.com/leejuen/p/5547497.html
Copyright © 2011-2022 走看看