游览浏览

其次行3个平头n,表示风景点个数。

3
2
1 2 2
2 3 3
2

输入:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int f[101][101],c[101][101];
int n,m,k;
int main()
{
        freopen(“view.in”,”r”,stdin);
        freopen(“view.out”,”w”,stdout);
        scanf(“%d”,&n);scanf(“%d”,&m);
        memset(c,0,sizeof(c));
        int x,y,v;
        for (int t=1;t<=m;t++)
        {
                scanf(“%d%d%d”,&x,&y,&v);
                for (int i=1;i<=x;i++)
                        for (int j=y;j<=n;j++)
                                c[i][j]+=v;
        }
        scanf(“%d”,&k);
        memset(f,128,sizeof(f));
        f[0][0]=0;
        for (int i=1;i<=n;i++)
                for (int j=1;j<=k;j++)
                        for (int l=0;l<=i-1;l++)
                                if (f[i][j]<f[l][j-1]+c[l+1][i])
                                        f[真珠美学,i][j]=f[l][j-1]+c[l+1][i];
        printf(“%d\n”,f[n][k]);
        return 0;
}

一条大街被分为m格(1<=m<=100),还有n个景点(一<=n<=拾0),分布在大街上。种种景点可以占据接二连三的若干格,并且有三个美学值v(0<v<=100)。现要协会k个人调查那么些街道(1<=k<=m),每一个人观看比赛的区域是三番五次的若干格(不可为0格),且随意多人考察的区域不得相交,也不足有三个格子无人观看比赛。对于随意1人,尽管它侦察的区域中有1个风景点(风景点必须完整的位于这么些区域),则它就获取了那么些风景点的分值(美学值)。

 

 

【输入文件】

未来n行,每行描述贰个风景点,四个整数x、y和v,表示该风景点是从第x个格子到第y个格子,美学值为v。

 

【输入输出样例】

您的天职是将街道的m个格子分给k个人去观察,使得总的分值最大。

末尾壹行二个平头k,表示考察的人头。

【输出文件】

输出:
3

二个平头,表示最大能够收获的分值。

 

首先行一个整数m,表示街道的尺寸。

【参考程序】: