HDU 4293 Groups (线性dp)

HDU 4293 Groups (线性dp)

OJ题目:click here~~

题目分析:n个人分为若干组 , 每一个人描写叙述其所在的组前面的人数和后面的人数。求这n个描写叙述中,最多正确的个数。

设dp[ i ] 为前i个人的描写叙述中最多正确的个数,则dp[ n ] 为要求的。num[ i ][ j ]  保存说前面有i个人 , 后面有j个人的人数,显然num[ i ][ j ]不超过n – i – j;

转移方程dp[ i ] = max(dp[ i ] , dp[ j ]  + num[ j ][ n – i ])  ,详解见代码凝视。

AC_CODE

int num[502][502];
int dp[502];
int main()
{
    //freopen("in.txt","r",stdin);
    int n;
    while(cin >> n){
        memset(num , 0 , sizeof(num));
        memset(dp , 0 , sizeof(dp));
        int i , j , a , b;
        for(i = 1;i <= n;i++){
            scanf("%d%d",&a,&b);
            if(a+b < n && num[a][b] < (n - a - b)) num[a][b]++;
        }
        for(i = 1;i <= n;i++)//对于第i个人
            for(j = 0;j < i;j++)//他可能表述为前面有j个人,j在[0 i-1],所以是dp[j] + num[j][]
            dp[i] = max(dp[i] , dp[j] + num[j][n-i]);//为什么num的二维表示成[n-i]?这样能够保证2个for下来遍历全部该遍历的num[i][j]!!!
        cout << dp[n] << endl;
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119078.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux内核版本_linux最新版本是多少

    Linux内核版本_linux最新版本是多少Linux版本linux版本分为两类:内核版本:免费的,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等,并不给用户提供各种工具和应用软件; 发行版本:不一定免费,出了操作系统核心外,还包含一套强大的软件,例如:C/C++编译器和库等1、内核版本:1.1)内核版本命名:Linux内核版本号由3组数字组成:第一个组数字.第二组数字.第三组数字第一个组数字:目前发布的内核主版本。 第二个组数字:偶数表示稳定版本;奇数表示开发中版本。 第三个组数字:错误修补的次数。可以使

    2022年8月23日
    7
  • C语言多线程运行时间计算

    C语言多线程运行时间计算C语言多线程运行时间计算单线程下的运行时间可以使用clock()进行计算clock()计算的是theCPUtimeusedsofar,即占用的CPU时间而多线程和单线程不同的是,多线程会占用更多的CPU时间(多个线程同时运行),因此,多线程下使用clock()会造成结果过大使用clock_gettime来获取多线程下每个线程的运行时间intclock_gettime(clockid_tclk_id,structtimespec*tp);第一个参数要输入一个宏,一般使用的有:

    2022年10月19日
    0
  • Pycharm+Django之Django学习(1)(初学者)

    Pycharm+Django之Django学习(1)(初学者)教学属于博主的自学记录,适合刚学习Django的同学,如果比较熟的就不用look了!!!以下都是讲在windows上的部署情况;准备:1、Python+pycharm(下面是博主使用的版本,可自行安装)链接:https://pan.baidu.com/s/1th08XXTqf30Oh0-s7QgL1w密码:r6tc2、安装Django(可以到官网下载,也可使用Python自带…

    2022年9月4日
    2
  • window.location.href的用法

    window.location.href的用法javascript中的location.href有很多种用法,主要如下。self.location.href="/url"当前页面打开URL页面location.href=&

    2022年7月4日
    22
  • mysql添加唯一索引语句_mysql自动创建索引

    mysql添加唯一索引语句_mysql自动创建索引查看索引showindexfrom数据库表名altertable数据库addindex索引名称(数据库字段名称)PRIMARYKEY(主键索引)ALTERTABLE`table_name`ADDPRIMARYKEY(`column`)UNIQUE(唯一索引)ALTERTABLE`table_name`ADDUNIQUE(`column`)INDEX(普…

    2025年6月2日
    0
  • 如何在Linux系统下的IntelliJ IDEA 2018.3.5下载与安装以及激活教程

    如何在Linux系统下的IntelliJIDEA2018.3.5下载与安装以及激活教程作者:张国军_Suger开发工具与关键技术:VMwareWorkstationPro、Linux系统(Debian8.6.0)操作系统:debian-live-8.6.0-amd64-xfce-desktop       &n…

    2022年4月9日
    179

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号