• hrbust1841再就业(状态压缩dp)


    本人刚学压缩dp,只能对这些水题写题解 一方面对自己的理解有加深作用 另一方面希望和各位大牛交流交流。。。。。

    如果有对状态dp不太了解的童鞋可以参考入门知识:http://wenku.baidu.com/link?url=AnHFiSXoqPvVCxObtwNYEUCVfPL6_2QeuA9B1zkdmVk59Fy_f-CwZCuHwtHl6Wc9zbMmIyaaOOpSR1sRVvTGff3d-4D4SfhD2k-Gf-ijrOG

    以及我最开始看的状态dp水题:http://poj.org/problem?id=3254

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 int dp[16][1<<17];///表示最大相亲的好感和
     6 void solve(int n,int a[16][16])
     7 {
     8     int w=1<<n;
     9     memset(dp,0,sizeof(dp));///清0,用0表示没有此状态
    10     for(int i=0; i<n; i++)
    11     {
    12         dp[0][1<<i]=a[0][i];///对于出状态进行预处理,即第一行的状态暴力一下
    13     }
    14     for(int i=0; i<n-1; i++)///第一层循环遍历0~n-1行
    15     {
    16         for(int j=0; j<w; j++)///第二层循环遍历0~(1<<n)的状态
    17         {
    18             if(dp[i][j]!=0)///对于非0的状态进行处理
    19                 for(int k=0; k<n; k++)
    20                 {
    21                     if(!(j&(1<<k)))///j里有1<<k的状态
    22                     {
    23                         if(dp[i+1][j+(1<<k)]<=dp[i][j]+a[i+1][k])///求第i+1行的最大值
    24                             dp[i+1][j+(1<<k)]=dp[i][j]+a[i+1][k];
    25                     }
    26                 }
    27         }
    28     }
    29     int ans=0;
    30     for(int i=0; i<w; i++)
    31     {
    32         if(ans<dp[n-1][i])
    33             ans=dp[n-1][i];///对于最后一行的状态遍历求dp
    34     }
    35     printf("%d\n",ans);
    36 }
    37 int main()
    38 {
    39     int a[16][16];
    40     int t;
    41     scanf("%d",&t);
    42     while(t--)
    43     {
    44         int n;
    45         scanf("%d",&n);
    46         for(int i=0; i<n; i++)
    47             for(int j=0; j<n; j++)
    48             {
    49                 scanf("%d",&a[i][j]);
    50             }
    51         solve(n,a);
    52     }
    53 }
  • 相关阅读:
    webpack 构建同时适用于手机和电脑的调试服务器
    自定义事件 js
    浏览器下载本地数据
    .net 获取当前周及根据年和周获取起始结束时间
    实现SQL Server中的切割字符串SplitString函数,返回Table
    WebApi 服务监控
    log4net 记录MVC监控日志
    一致性Hash算法在Redis分布式中的使用
    Redis主从复制配置
    windows平台下redis安装及配置文件介绍
  • 原文地址:https://www.cnblogs.com/guyahan/p/5436580.html
Copyright © 2020-2023  润新知