题目描述

某地临时居民想获得长期居住权就必须申请拿到红牌。获得红牌的过程是相当复杂 ,一共包括NNN个步骤。每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件。为了加快进程,每一步政府都派了MMM个工作人员来检查材料。不幸的是,并不是每一个工作人员效率都很高。尽管如此,为了体现“公开政府”的政策,政府部门把每一个工作人员的处理一个申请所花天数都对外界公开。

为了防止所有申请人都到效率高的工作人员去申请。这M×NM \times NM×N个工作人员被分成MMM个小组。每一组在每一步都有一个工作人员。申请人可以选择任意一个小组也可以更换小组。但是更换小组是很严格的,一定要相邻两个步骤之间来更换,而不能在某一步骤已经开始但还没结束的时候提出更换,并且也只能从原来的小组I更换到小组I+1I+1I+1,当然从小组MMM可以更换到小组111。对更换小组的次数没有限制。

例如:下面是333个小组,每个小组444个步骤工作天数:

小组111 : 2,6,1,82, 6 ,1 ,82,6,1,8

小组222 : 3,6,2,63,6, 2, 63,6,2,6

小组333 : 4,2,3,6 4, 2 ,3 ,64,2,3,6

例子中,可以选择小组111来完成整个过程一共花了2+6+1+8=172+6+1+8=172+6+1+8=17天,也可以从小组222开始第一步,然后第二步更换到小组3,第三步到小组111,第四步再到小组222,这样一共花了3+2+1+6=123+2+1+6=123+2+1+6=12天。你可以发现没有比这样效率更高的选择。

你的任务是求出完成申请所花最少天数。

输入格式

第一行是两个正整数NNN和MMM,表示步数和小组数。接下来有MMM行,每行NNN个非负整数,第i+1(1≤i≤M)i+1(1 \le i \le M)i+1(1≤i≤M)行的第j个数表示小组iii完成第j步所花的天数,天数都不超过100000010000001000000。

输出格式

一个正整数,为完成所有步所需最少天数。。

输入输出样例

输入 #1

4 3
2 6 1 8
3 6 2 6
4 2 3 6
输出 #1

12
简单DP,注意一层层更新。
#include <bits/stdc++.h>
using namespace std;
int a[][]={};
int dp[][]={};//dp[i][j]表示在第i组完成第j项所花费的最少时间 dp[i][j]=min(dp[i][j-1]+a[i][j],dp[i-1][j-1]+a[i][j])//前提是i-1>0
int n,m;
int main()
{
scanf("%d%d",&n,&m);
int i,j;
for(i=;i<=m;i++)
{
for(j=;j<=n;j++)
{
scanf("%d",&a[i][j]);
}
dp[i][]=a[i][];
}
int ans=0x3f3f3f3f;
for(j=;j<=n;j++)
{
for(i=;i<=m;i++)
{
if(i==)
{
dp[i][j]=min(dp[i][j-]+a[i][j],dp[m][j-]+a[i][j]);
}
else dp[i][j]=min(dp[i][j-]+a[i][j],dp[i-][j-]+a[i][j]); }
}
for(i=;i<=m;i++)ans=min(ans,dp[i][n]);
cout<<ans;
return ;
}

洛谷P1130红牌(简单DP)的更多相关文章

  1. 洛谷 P1130 红牌

    P1130 红牌 题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括N个步骤.每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件.为了加快进程 ...

  2. 洛谷P1130 红牌

    题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括N个步骤.每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件.为了加快进程,每一步政府都派了 ...

  3. 洛谷——P1130 红牌

    题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括N个步骤.每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件.为了加快进程,每一步政府都派了 ...

  4. 洛谷 - P2335 - 位图 - 简单dp

    https://www.luogu.org/problemnew/show/P2335 假如我们使用dp的话,每次求出一个点的左上方.右上方.左下方.右下方的最近的白点的距离.那么只是n²的复杂度.这 ...

  5. 洛谷 - P1044 - 栈 - 简单dp

    https://www.luogu.org/problemnew/show/P1044 由于是用标签搜索进来的,所以这道题一定是有dp的解法. 很显然规定每次加入元素之前可以从栈中清理出任意数量的元素 ...

  6. 洛谷P1244 青蛙过河 DP/思路

    又是一道奇奇怪怪的DP(其实是思路题). 原文戳>>https://www.luogu.org/problem/show?pid=1244<< 这题的意思给的挺模糊,需要一定的 ...

  7. 洛谷1387 二维dp 不是特别简略的题解 智商题

    洛谷1387 dp题目,刚开始写的时候使用了前缀和加搜索,复杂度大概在O(n ^ 3)级别,感觉这么写还是比较对得起普及/提高-的难度的..后来看了题解区各位大神的题解,开始一脸mb,之后备受启发. ...

  8. 洛谷 P2657 (数位DP)

    ### 洛谷 P2657 题目链接 ### 题目大意:给你一个数的范围 [A,B] ,问你这段区间内,有几个数满足如下条件: 1.两个相邻数位上的数的差值至少为 2 . 2.不包含前导零. 很简单的数 ...

  9. 洛谷 P3049 Landscaping ( 贪心 || DP)

    题意 : 有n块土地,每块有A[i]泥土,现把其改造成B[i]泥土,有3种操作:(1)花费X向任意土地增加1泥土:(2)花费Y向任意土地减少1泥土:(3)花费Z*|i-j|把土地i的1泥土运到土地j. ...

随机推荐

  1. PP: Sequence to sequence learning with neural networks

    From google institution; 1. Before this, DNN cannot be used to map sequences to sequences. In this p ...

  2. vue 报错碰到的一些问题及其规范

    报错信息:Expected error to be handled(需要处理的错误) 这是因为回调函数里面的参数error没有运用到,所以可以不设置参数,或者在回调函数内console.log(err ...

  3. -bash: mysqld: command not found

    网址:https://blog.csdn.net/zq199692288/article/details/78863737

  4. 占位 RK

    占位 RK include: RK403 RK404

  5. 解决lucene更新删除无效的问题

    个人博客 地址:http://www.wenhaofan.com/article/20180921233809 问题描述 在使用deleteDocuments,updateDocument方法根据id ...

  6. MFC使用LoadBitmap方法加载位图文件失败解决方案(转)

    用如下方法在原项目中使用LoadBitmap方法加载已有的位图资源作为背景没有问题,但放在别的项目中总是加载不出来,该函数返回NULL HBITMAP hBitmap=LoadBitmap((HINS ...

  7. day28 rsync服务端配置和客户端

    2. rsync守护进程部署方式 客户端---服务端 上厕所 4 rsync守护进程服务端配置: 第一个历程: 下载安装软件 rpm -qa|grep rsync yum install -y rsy ...

  8. java-判断年份是不是闰年

    if ((year%4==0)&&(year%100!=0)||(year%400==0)) {//是闰年 leapYear = true; }

  9. 一则关于控制文件全部丢失后如何重新编目RMAN元数据的简单实验

    主题:一则简单的RMAN元数据编目实验,来自于博客园AskScuti. 场景:RMAN备份完整情况下,未使用Catalog目录库.删除了所有的控制文件,在手工重建后,导致记录在控制文件中的RMAN备份 ...

  10. php设计模式之责任链模式实现举报功能实例代码

    html <html> <head> <meta charset="UTF-8"> <title>责任链模式</title&g ...