poj1065 wooden sticks

来源:互联网 发布:java互联网必读 编辑:程序博客网 时间:2024/05/17 18:23
#include <iostream>#include<cstdio>#include<algorithm>#include<string.h>using namespace std;struct node{    int w;    int l;}a[10005];int dp[10005];int cmp(node f,node s){    if(f.l==s.l)    {        return f.w<s.w;    }    return f.l<s.l;}int main(){    int T,n;    scanf("%d",&T);    while(T--)    {        scanf("%d",&n);        for(int i=0;i<n;i++)            scanf("%d%d",&a[i].l,&a[i].w);        sort(a,a+n,cmp);        memset(dp,0,sizeof(dp));        int c=1,flag;        dp[0]=a[0].w;        for(int i=1;i<n;i++)        {            flag=0;            for(int j=0;j<c;j++)            {                if(a[i].w>=dp[j])                {                    dp[j]=a[i].w;                    flag=1;                    break;                }            }            if(flag==0)            {                dp[c]=a[i].w;                c++;            }        }        printf("%d\n",c);    }    return 0;}
简单的动态规划
0 0
原创粉丝点击