hdu 1565 状压DP

数字IC物理验证实战 | 从Calibre LVS报告到Innovus定位的Debug全链路解析 本文详细解析了数字IC物理验证中Calibre LVS报告的Debug全流程,从INCORRECT NETS错误的初探到Innovus定位技巧,提供了实战案例和高效工具的使用方法。重点介绍了Calibre高亮功能、Innovus验证命令以及前后端工具联动的关键策略,帮助工程师快速定位和解决LVS问题,提升物理验证效率。 阅读详情

题目链接:hdu 1565

最近真是越来越傻B了,总在输入输出的模块出问题。把二维数组的a【i】【j】变成a【i】了,不提了,真是太傻逼了。

先预处理一下每一行n个数有几种取得情况,(在一行之内两两不相邻),一种情况可以用一个n位的二进制数来表示。

即若第j位上为1,就说明取了第j个数,这样对于每一个i,如果i&i<<1≠0的话,说明i的二进制表示有两个相邻的1,抛弃不要,

否则将i加入状态数组中

然后对于每一个状态j,再预处理出val【i】【j】代表第i行第j种情况所取得的这一行的总值。

dp[i][j]表示第i行第j种情况所取得的最大值。

最后dp,枚举第i行的j状态和i-1行的k状态,如果满足s【j】&s【k】==0,则dp【i】【j】=max(dp【i】【j】,dp【i-1】【k】+val【i】【j】);

#include<iostream>
#include<cstdio>
#include<vector>
#include<set>
#include<map>
#include<string.h>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#define LL long long
#define mod 1000000007
#define inf 0x3f3f3f3f
#define sqr(a) (a)*(a)
#define lan(a,b) memset(a,b,sizeof(a))

using namespace std;

LL dp[30][20010];
LL a[30][30];
LL maxx;
int s[20010];
LL val[30][20010];

int main()
{
    int n;
    int m=0;;
    for(int i=1;i<=(1<<20)-1;i++)
    {
        if(i&i<<1)
            continue;
        s[m++]=i;
    }
    m--;
  //  printf("%d\n",m);
    while(~scanf("%d",&n))
    {
        maxx=0;
        lan(dp,0);
        lan(a,0);
        lan(val,0);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                scanf("%lld",&a[i][j]);

            for(int i=1;i<=n;i++)
                for(int j=0;s[j]<1<<n;j++)
                {
                    int tem=s[j];
                   // printf("tem=%d\n",tem);
                    for(int l=1;l<=n;l++)
                    {
                        if(tem&1)
                        {
                            val[i][j]+=a[i][l];
                     //       printf("ok a%d%d=%lld\n",i,l,a[i][l]);
                        }
                        tem>>=1;
                    }
                    //printf("val=%d\n",val[i][j]);
                }
            for(int j=0;s[j]<1<<n;j++)
            {
                dp[1][j]=val[1][j];
                maxx=max(maxx,dp[1][j]);
               // printf("%d\n",j);
            }
        for(int i=2;i<=n;i++)
        {
                    //printf("-%d \n",i);
             for(int j=0;s[j]<1<<n;j++)
            {
                for(int k=0;s[k]<1<<n;k++)
                {
                    if(s[k]&s[j])
                        continue;
                    int tem=s[j];
                    int sum=0;
                    dp[i][j]=max(dp[i][j],dp[i-1][k]+val[i][j]);
                    maxx=max(maxx,dp[i][j]);
                }
            }
        }

        printf("%lld\n",maxx);
    }
    return 0;
}

BL0910-从零到一:多路交/直流电能计量的实战配置与校准 本文详细介绍了BL0910芯片在多路交直流电能计量中的实战应用。从硬件连接、SPI通信配置,到软件初始化、核心寄存器设置,再到偏置与增益校准,提供了完整的配置与校准指南。文章重点阐述了直流测量模式的切换要点及数据读取的工程化处理,帮助开发者快速实现高精度、多通道的电能监控方案。 阅读详情

相关推荐

英飞凌TC3xx DSADC旋变软解码实战:从示波器波形到VX1000数据,手把手教你避坑

本文详细介绍了英飞凌TC3xx系列微控制器的DSADC模块在电机旋变软解码中的实战应用。从示波器波形分析到VX1000数据采集,提供了一套完整的调试方法论,帮助工程师快速定位和解决常见问题,提升解码精度和系统性能。

weixin_30598225的博客 517

hdu_1565(网络流)

hdu_1565(网络流) 解法一、网络流 相邻的点染不同颜色:   (行数+列数)为奇数的染成白色,(行数+列数)为偶数的染成白色 source = 0, sink = n*n+1. source到每个白点连接,流量为白点的值 黑点到sink连接,流量为...

banggui5839的博客 233

实战分享:如何利用svchost进程绕过360防护(附完整Shellcode注入教程)

本文深入解析系统进程安全防护机制,探讨svchost等关键进程的安全特性与防护策略。详细分析安全软件的行为检测和内存保护技术,提供系统加固与监控实践建议,助力企业构建多层次防御体系,有效应对潜在安全威胁。

weixin_30752699的博客 99

方格取数(1)(HDU-1565)

Problem Description 给你一个n*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。 Input 包括多个测试实例,每个测试实例包括一个整数n 和n*n个非负数(n<=20) Output 对于每个测试实例,输出可能取得的最大的和 Sample In...

Alex_McAvoy的博客 1227

英飞凌 AURIX Development Studio工程移植到Hightec的方法

1. 软件简介 AURIX™ Development Studio是英飞凌针对AURIX TC2XX/TC3XX系列单片机推出了一款免费的软件,集成了iLLD库,内置Tasking compiler和Tasking Debugger,但这两个模块只能用于非商业用途,可供学习和试用。iLLD库是英飞凌为TC2XX和TC3XX Tricore系列单片机提供的底层驱动库,有完善的使用手册,和较好的移植性。 Hightec是一款可以用来开发Aurix系列单片机的编译器,有免费版,可商用,集成GCC编译器,可用UDE

weixin_42967006的博客 7134

使用单片机和电流互感器对非正弦周期电流有效值测定

使用单片机和电流互感器,利用一种高速采样的方法来进行有效值测定

月光绿叶滴水音乐 3944

HDU 1565(状压dp入门)

对状压的重新学习 dp[i][j] :第i行取j种合法取法所能获取的最大值 a[i][j]:第i行第j种取法的和 dp[i][j] = max(dp[i-1][k] + a[i][j]); #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;queue&gt; #include &lt;stack&...

yxmGo 356

主成分分析(PCA)简洁高效MATLAB实现详解

本文介绍了一个简洁高效的PCA算法实现。该实现通过SVD分解计算主成分,避免了显式协方差矩阵计算,支持两种降维方式:固定维度或按能量比例自动选择。核心步骤包括数据中心化、SVD分解和维度选择,代码量少但功能完整,适用于数据预处理、降维和特征提取等任务。实现中考虑了稀疏矩阵转换、默认参数处理等细节,可直接应用于MATLAB环境。

m0_62153576的博客 63

HDU1565 方格取数(1) 题解

算法:轮廓线动态规划

Foliciatarier的博客 971

SAP 52策略测试简介

我们看下下层物料的需求,可以看到物料的需求已经跑出来了,我们双击计划订单,发现是没有办法将计划订单转换为采购申请的,这里是否还记得我们在前面创建主数据的时候独立集中我们填写的是1,所以物料继承了上层物料的策略,所以不能将计划订单进行转换。我们在前面测试了50策略按单生产,创建完计划独立需求后,通过主数据中的独立集中的字段控制下层物料是否能通过计划订单转成生产订单和采购订单。可以看到下层物料的计划订单就可以转采购申请了,到这里可以看到52策略和50策略的计划独立需求完全是一样的。

我小时候很黑的博客 1270

【ArcGIS微课1000例】0118:一文讲清楚tif(geotiff)栅格数据格式

TIFF(Tagged Image File Format)是一种常见的图像文件格式,它被广泛用于存储和传输各种类型的图像数据。图像存储:TIFF格式可以存储多通道的位图图像,包括灰度图、彩色图和透明度图等。它支持不同的像素深度,可以是8位、16位、24位或32位等。因此,TIFF格式非常适合存储高质量的图像数据,包括照片、卫星图像、医学影像等。无损压缩:TIFF格式支持无损压缩,这意味着图像可以被压缩而无需损失任何像素信息。这种压缩方式可以减小文件大小,而不会降低图像的质量。

智慧空间实验室 2819

HDU-1565-方格取数

题目传送门 Problem Description 给你一个n*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。 Input 包括多个测试实例,每个测试实例包括一个整数n 和n*n个非负数(n&amp;amp;amp;lt;=20) Output 对于每个测试实例,输出可能取得的最大的和 Sample Inpu...

qq_42576687的博客 267

5. SAP UI5 视图控制器(Controller)初探

本教程的前一个步骤也就是第四个步骤,我们了解了 SAP UI5 XML 视图的使用方法。在该步骤里,我们在 XML 视图里声明了一个 Text 控件实例,该控件位于 sap.m 这个命名空间内。 本步骤会继续接触 SAP UI5 MVC 框架中三大基石的另一块:C - Controller,即控制器。 先看看本步骤完成之后,我们得到的 SAP UI5 应用能实现一个什么样的效果。 访问如下 url: http://localhost:8080/webapp/index.html 能看到一个 Say Hell

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4595

方格取数(HDU1565)状压dp入门

有详细的注释 #include <bits/stdc++.h> using namespace std; typedef long long int ll; int n, choices[100009], rowsum[100009], totalsum[100009], board[30][30], choicenum; void dfs(int row, int cur_col, int choice, int sum) { //choice用二进制的形式来记录,比如说4*4的棋盘

Snowzhao的博客 221

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

状压dp入门 hdu1565

思路:将数字转化为2进制,表示每一行被选的数字的情况,首先预处理哪些数字是可以取得的合法状态,因为上下行之间没有公共边,可以通过这一条件知道合法状态满足右移或左移以为后&运算的和为0,将所有哥发的存入数组中。 然后直接暴力三重循环,用数组f[i][j]表示前i行的第i行选取状态用j的二进制的表示的最大值,通过dp 更新数组,最后得到结果。 #include <bits/stdc++...

u011612364的博客 309

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hdu1565 状压DP做的

/****** 题意:从一个矩阵中选出一些数,选出的数不能相邻,求能选出的最大的和; 思路:状压DP 也可以用什么流做,不过现在不懂图论 *******/ #include #include #include #include #define INF 0xfffffff using namespace std; int dp[20][17777], a[20][20], cn

w750636248的专栏 733

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

HDU 1565【状压DP】

今天脑袋不清楚了一天。。。TAT。。。这种题还调了那么久。。TAT。。。 之前有想过用贪心,因为每个数都是非负数,那么自然是每行拿的越多越好,就尝试0101或者1010这样的序列就好了,但是可能出现这种情况,上一行拿了0101的序列,这一行拿1010,有可能下一行1010的取值配上上一行0101的取值是最大的情况,或者是这一行01001更佳,所以还是要用状压DP。。 之前忘了初始化。。醉了。。

The Summer, The Winter 547

hdu1565(状压dp)

题意好懂不多说。这题有两种解法,一是网络流,二是状压 这题用状压做要将行压缩,那么就可以按行dp 状态方程:dp[i][j] 第i行状态为j时候的最大值 dp[nowst][j] = max(dp[nowst][j], dp[prest][k] + ans[j]); 分析会发现可以打表把所有状态离散化,因为很多状态是没用的,不过也可以每次都按照数据范围离散化,一个预处理时,一个

ACM之梦 697

hdu1565 状压dp

题目链接:点击打开链接 题意: 给你一个n*n的格子的棋盘,每个格子里面有一个非负数; 从中取出若干个数,使得任意的两个数所在的格子没有公共边; 就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大; 理解: 状态压缩dp; 也可以用网络流做,但是不会; 递推式含义:dp[i][j] 表示第 i 行为 j 状态时的最大值; 递推式:dp[i][v[j]]

追求和名字一样的级别 389

hdu 1565 状压dp

给你一个n*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。 Input包括多个测试实例,每个测试实例包括一个整数n 和n*n个非负数(n&lt;=20) Output对于每个测试实例,输出可能取得的最大的和 Sample Input3 75 15 21 75 15 28 34 7...

DK 267

HDU - 1565 方格取数 状压DP

题意: 在n*n的格子里 取数 且 取得数两两不相邻,求最大的总和 求出一行当中满足两两不相邻的状态->当前状态 & 当前状态左移一位, 如果结果为零则满足条件,否则不满足 存入st数组 例: 101, 1010|11, 110 然后 dp 处理一下 st[j] & st[k] == 0 保证竖直方向不相邻 dp[i][j] += dp[i-1]...

Prince_NYing的博客 325

hdu 1565 方格取数(1)【状压dp】

方格取数(1) Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7585    Accepted Submission(s): 2861 Problem Description 给你一个n*n的格子的棋盘,每个格

mengxiang000000 1331

hdu1565 方格取数(1)(状压dp)

可以状压搞,因为n很小,虽说复杂度到了4亿,但是数据确实水。 #include using namespace std; const int MAXN = 20+5; int n; int tu[MAXN][MAXN]; int dp[2][1<<20]; void get_dp() { //记录两行的状态,每次枚举每一行的格点 for(int i = 0; i < n; +

樱花满地集于我心,楪舞纷飞祈愿相随 386

hdu 1565 方格取数(1) (网络流/状压dp)

方格取数(1)Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8840 Accepted Submission(s): 3377Problem Description给你一个n*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若

阿柟喜欢吃小星星? 522

方格取数(HDU-1565) (状压DP)

给你一个n*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。 Input 包括多个测试实例,每个测试实例包括一个整数n 和n*n个非负数(n<=20) Output 对于每个测试实例,输出可能取得的最大的和 Sample Input 3 75 15 21 75 15...

菜鸡的博客 257

hdu1565 方格取数(1) (状压dp入门)

题目 题解 先预处理所有合法状态(不相邻的) 再预处理所有合法状态的sum值 然后枚举上一行向下一行的转移 其实自己的代码dp[i][state[j]]可以开成dp[i][j]以缩小空间, 毕竟是离散化过的j, n=20的时候cnt=17710不知道是怎么O(n*cnt*cnt)过的…… 代码 #include&lt;iostream&gt; #include&lt;cst...

小衣同学的博客 351
上一篇: hdu 1520 树形DP
下一篇: hdu 5067 状压DP 旅行商问题TSP
Dale_zero
博客等级 码龄9年 10粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值