2019-02-25-方格取数(1)-HDU1565-dp-状态压缩

插头DP——从不会到入门(POJ 2411,HDU 1565,HDU 2167,HDU 1693,Ural 1519) #include #include #include #include using namespace std; #define LL long long const int maxn=100037; // 可能的最大状态数 struct Node { int H[maxn]; // 哈希 int S[maxn]; // 状态 LL N[maxn]; // 状态对应的数量 in 阅读详情

HDU-1565-方格取数(1)

Problem Description

给你一个n*n的格子的棋盘,每个格子里面有一个非负数。
从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。


Input

包括多个测试实例,每个测试实例包括一个整数n 和n*n个非负数(n<=20)

Output

对于每个测试实例,输出可能取得的最大的和


Sample Input

3

75 15 21

75 15 28

34 70 5

Sample Output

188

题目简述

利用状态压缩,把每一行的一种取数方法压缩到一个二进制数,然后对于每行的cnt种取数方法,从第1行到第n行进行dp求解

每一行的dp最大值都和上一行的各种取数情况下的dp值有关

状态压缩:每一行有n个格子,将其对应于2^{n}个数,转换成二进制后每一位上,1表示取该数,0表示不取该数。

位运算:a&b,如果某一位上都为1,则结果中该位也为1,否则为0

states[M]:每一种状态对应的取数方法(对于确定的i,states也是确定的)

andans[N][M]:第i行第j种情况下,第i行的总值

dp[N][M]:第i行第j种情况下,第1行到第i行的总值

状态转移方程:dp[i][j]=max(dp[i][j],dp[i-1][k]+andans[i][j])

重要雷区:运算优先级!!! (a&b)==0和a&b==0不一样!!!

条目检索:dp(动态规划),状态压缩,位运算

输入输出

输入:无难点

输出:无难点

使用模板(无)

AC代码

#include<iostream>
#include<cstdio>
#include<cstring>
#define N 22
#define M 30000
using namespace std;
int states[M];
int andans[N][M];
int dp[N][M];
int mp[N][N];
int cnts;
void find_states(int n){    //寻找每个n对应的情况总数,并把相应可选的情况记入数组
	int sum=1<<n;           //相当于2^n
	cnts=1;
	for(int i=0;i<sum;i++){
		if((i&(i<<1))==0){  //如果情况i中没有两个相邻数位都是1的情况,就记入数组
			states[cnts++]=i;
		}
	}
}
void read(int n){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			scanf("%d",&mp[i][j]);
		}
	}
}
void init(){
	memset(states,0,sizeof(states));
	memset(dp,0,sizeof(dp));
	memset(andans,0,sizeof(andans));
}
void sum_row_states(int n,int cnt){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=cnt;j++){            //对每种情况遍历
			int sum=n;
			for(int k=1;k<(1<<n);k=(k<<1)){
				if((k&states[j])!=0){       //如果第sum位上是1,则把值加入andans[i][j]中
					andans[i][j]+=mp[i][sum];
				}
				sum--;
			}
		}
	}
}
int dp_f(int n,int cnt){                    //主算法
	for(int i=1;i<=cnt;i++)dp[1][i]=andans[1][i];
	for(int i=2;i<=n;i++){
		for(int j=1;j<=cnt;j++){
			for(int k=1;k<=cnt;k++){
				if((states[j]&states[k])==0){     //第i行的j情况和i-1行的k情况符合条件
					dp[i][j]=max(dp[i][j],dp[i-1][k]+andans[i][j]);
				}
			}
		}
	}
	int sum=0;
	for(int i=1;i<=cnt;i++){
		sum=max(sum,dp[n][i]);
	}
	return sum;
}
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
        //预处理
		init();
		find_states(n);
		read(n);
		sum_row_states(n,cnts);
        //计算
		int ans=dp_f(n,cnts);
		printf("%d\n",ans);
	}
	return 0;
}

参考链接

https://blog.youkuaiyun.com/u011077606/article/details/43487421

https://blog.youkuaiyun.com/a1046765624/article/details/78767347

newman的使用 Newman是一个基于Node.js的postman命令行工具,用于运行和测试PostmanAPI 请求的集合。它允许用户在命令行环境中执行Postman的JSON文件,从而实现接口自动化测试和持续集成,同时支持用户进行自动化测试、批量执行请求、生成报告等操作。 阅读详情

相关推荐

EAST算法(Efficient and Accuracy Scene Text))

1.EAST模型简介 本文介绍的文本检测模型EAST,便简化了中间的过程步骤,直接实现端到端文本检测,优雅简洁,检测的准确性和速度都有了进一步的提升。如下图: 其中,(a)、(b)、(c)、(d)是几种常见的文本检测过程,典型的检测过程包括候选框提取、候选框过滤、bouding box回归、候选框合并等阶段,中间过程比较冗长。而(e)即是本文介绍的EAST模型检测过程,从上图可看出,其过程简化为只有FCN阶段(全卷积网络)、NMS阶段(非极大抑制),中间过程大大缩减,而且输出结果支持文本行、单词的多个角度

博客 9578

题目35:国际象棋盘中,假设在第1格中放1粒米,第2格放2粒米,第3格放4粒米,第4格放8粒米,第5格放16粒米,…。问在第n个格子能放多少粒米?

Python 国际象棋盘中,假设在第1格中放1粒米,第2格放2粒米,第3格放4粒米,第4格放8粒米,第5格放16粒米,…。问在第n个格子能放多少粒米?

run_noob_vip的博客 2234

Windows Server+SqlServer Always On实战:5步搞定高可用集群搭建

本文详细介绍了在Windows Server环境中,通过5个关键步骤搭建SQL Server Always On高可用集群的实战指南。内容涵盖从底层故障转移集群配置、SQL Server实例启用Always On功能,到创建可用性组和侦听器的完整流程,并提供了核心运维与故障排查思路,帮助企业构建稳定可靠的数据库高可用架构。

milk5的博客 857

输出n个格子需要的麦粒数

输入要求 输入一个整数n代表棋盘的格子,该数字大于1且小于等于64。如输入2,则表示有2个格子,第一个格子放1粒,第二个格子放2粒,则2个格子一共需要3粒麦子。第一个小格是1粒麦子,第二个小格是2粒,第三个小格是4粒,以后每一小格都比前一个小格的麦子增加一倍。 输出要求 输出n个格子需要的麦粒数 输入、输出样例 9 511 #include <stdio.h> #include <math.h> int main() { int n, i, a; unsig

RuanDongc的博客 1972

OCTF2016--piapiapia

知识点: php反序列化长度变化尾部字符串逃逸 目录扫描发现www.zip,下载得到源码 源码有index.php,输入账号密码后会进入profile.php,还有register.php、updata.php、class.php和config.php flag值在config.php中,想办法访问到其内容 通过seay代码审计找到一点线索 看到profile.php中存在任意文件读取漏洞,前面还有反序列化 现在我们有个大体思路了,update.php中有一个$prof..

Oavinci的博客 473

72、海洋地理信息系统:电子海图的全面解析

本文全面解析了海洋地理信息系统中的电子海图技术,从AIS数据的应用、电子海图数据的存储与显示,到电子导航的发展趋势和S-100通用水文数据模型的推广,系统地阐述了电子海图在现代航海中的核心作用及其未来发展方向。

hhh00的博客 251

斐波那契数列

什么是斐波那契数列 数学中有个著名的斐波那契数列(Fibonacci sequence),又称黄金分割数列,数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,这个数列中第一个数为0,第二个数为1,其后的每一个数都可由前两个数相加得到,如下所示: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … 在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,

qq_47425627的博客 1140

Python爬虫实战:基于Playwright与异步技术的专利数据抓取系统

专利数据是企业技术创新、市场竞争分析和行业趋势预测的关键情报来源。然而,专利数据通常分散在各个国家的专利局网站,数据结构复杂,反爬机制严格,使得高效抓取成为技术挑战。本文将详细介绍如何构建一个基于最新Python技术的专利数据抓取系统,涵盖Selenium的现代化替代方案Playwright、异步编程、智能代理轮换等高级技术。

2201_76125261的博客 1562

python初学fighting

文章目录一.怎样算阶乘二.三级目录 一.怎样算阶乘 1.什么叫阶乘? 3!=3×2×1这就叫阶乘 2.算10!,就是1×2×…×10的积 3.程序如下: 4.然后想算1到n的阶乘之和,可以采用下面这种方法 5.初次学习,勿喷 二. 三级目录 ...

m0_62491747的博客 773

Python的单元测试之unittest

是一个功能类似 unittest 的库,它集合众家标准测试库之所长,和 unittest 相比,功能更为强大,使用更为简单,OpenStack 广泛的利用它编写单元测试。unittest 提供了自动匹配发现并执行测试用例的功能,随着项目代码结构越发庞大,势必有多个测试文件,自动匹配发现并测试用例的功能在此就显得非常有用,只要满足。unittest 提供了丰富的命令行入口,可以根据需要执行某些特定的用例。的测试用例都会被 unittest 发现并执行,测试用例文件的默认匹配规则为 test*.py。

1、测试博主技术知识分享 2、pos行业知识技术分享 3、java后端技术知识分享 4、嵌入式技术知识分享 5、运维部署相关知识分享 281

Python办公自动化 2.1开发环境搭建:PyCharm社区版配置Anaconda开发环境

本篇文章主要讲述了如何在windows主机上配置 PyCharm + Anaconda开发环境、以及了如何配置 PyQt界面开发环境,安装过程超级详细,初学者可以照着一步一步来!

超级大洋葱的博客 2583

Python 实验3 函数

Python 实验3 函数 根据输入参数(行数)不同,输出下面图形 代码 n = int(input("请输入一个整型参数:")) for i in range(1, n + 1): for k in range(2 * (n - i)): print("", end=" ") for j in range(1, 2 * i): print("*", end=" ") print() 运行截图 编写函数,接收一个包含若干整数的列表参数lst

玖柒IT 1万+

Python中的字典(Dictionary)学习

上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合。而我们在讲列表(list)的时候,我们用了列表(list) 来存储用户的姓名。那么如果我们为了方便联系这些童鞋,要把电话号码也添加进去,该怎么做呢?但是这样很不方便,我们把电话号码记录下来,就是为了有什么事能及时联系上这些童鞋。如果用列表来存储这些,列表越长,我们查找起来耗时就越长。

热情、奔放、快乐编程! 502

HDU-1565-方格取数(1)

HDU-1565-方格取数(1) http://acm.hdu.edu.cn/showproblem.php?pid=1565 我的第一个状态压缩DP 给你一个n*n的格子的棋盘,每个格子里面有一个非负数,从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大 3 75 15 21 75 15 28 34 70 5 1

菜鸟的程序人生 3306

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

状态压缩DP——hdu 1565 方格取数1

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1565 题目大意: 中文题目,不解释 解题思路: 由于每行最多是20个格子,取的格子不能相邻,最多的状态数在18000左右,可以用状态压缩来做。 状态转移方程:  dp[i][j]=max(dp[i-1][k]+date[i][j],dp[i][j]); dp[

sanmingzi3344的专栏 734

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

HDU 1565,1569,3657,3280,4307方格取数各种版本

大神 夏天的风 的网络流题集http://blog.youkuaiyun.com/shahdza/article/details/7779537 hdu 1565\1569属于比较简单的方格取数,二分图中:最大点权独立集 = 点权数 - 最大流(最小割)。另外1565也可以状态压缩DP做。 hdu 3657\4307 同属于公式化解类型 【hdu 3657 题意】N*M的方格里,每个数...

dechi5213的博客 574

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

hdu 1565 方格取数(1) (状态压缩DP)

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

Coding A World 845

HDU 1565 方格取数(1) (状态压缩DP)

HDU 1565 方格取数(1) (状态压缩DP) ACM 题目地址:  HDU 1565 方格取数(1) 题意:  中文。 分析:  dp[i][j]表示前i行状态j的最优解。  先预处理出符合条件的数,17000+个(n在20以内)。  不过感觉复杂度挺高的会T,但是却能A。  这题的正解应该是最小割,回头补下。 代码: /* * Author

水果君の日常 1463

HDU1565:方格取数(1) (状态压缩DP)

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

ACM!荣耀之路! 4442

状态压缩DP 小结

好久没更新博客了~ 最近学了一下状压DP的内容,感觉对状态压缩有一点了解,不过有时候做题的时候总感觉有些吃力。今天做了2道TSP的题,虽然知道套路,但是对细节处理做的还是很不好,主要原因就是因为我对算法的认识还不够深刻吧,有时候碰到没有遇到过的题型的时候,总想着去查资料,没有深入思考过。其实费老强调过这一点。不要题海战术,要以一挡十。以后要改掉这个坏习惯。 言归正传。下面来总结一下,最近学状压D

ww的博客 2136

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

在矩阵中取数字, 要求不能去十字相邻的数字。。 感觉第一次做状态压缩的题目 。。一开始没什么想法就看了别人的解题。 用二进制表示一行中元素是否取, 先枚举出一行取的可能性。 dp[i][j] 表示第i行第j种可能性。 dp[i][j] = dp[i-1][k]+ tmp; 先枚举每一种可能性,然后用for生成一个符合status[j] 的tmp , 然后再枚举每一种可能...

aiezhen1717的博客 156

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

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1565 题意:给你N*N的方格中取数,但不能取相邻的数,(上下左右相邻都不行),求可以取的数之和的最大值。 思路:一道状压dp入门题,因为给的n并不大,我们用一个n位二进制数来表示这一行的n个数取与不取的状态,因为一行之间相邻的不能取,所有我们可以把不符合的数全部筛选除去(i&i>&gt...

HANGANG的博客 448

hdu 1565 方格取数(1)

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

anque1234的博客 158

状态压缩 dp HDU 1565 方格取数(1)

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

窦小雨的小点子 5896

HDU 1565 - 方格取数(1) 数据有些弱...状态压缩DP

题意:                           在n*n(n                  题解:                            状态压缩DP暴力过了...只能说数据太弱了..我自己出了个20*20的...等了半分钟都出不来... Program: #include #include #include #include #include #incl

zzyzzy12 936

hdu 状态压缩dp小集(中低难度)

源自----------------------------------------------------Ice_Crazy hdu3182     状态压缩dp水题。 hdu4568     最短路+状态压缩dp、不难,两部分都较果。 hdu1074     状态压缩dp入门题,关键是输出顺序。 #include"stdio.h" #inc

Ice_Crazy的专栏 3650
上一篇: 2019-02-24-Channel Allocation-POJ1129-图着色问题-四色问题-dfs
下一篇: 2019-02-25-The Stable Marriage Problem-POJ3487-稳定婚姻算法
silzero
博客等级 码龄8年 3粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值