【题解】炮兵阵地

【题解】炮兵阵地

luogu

题解

暴力状压记录上一行和上上行信息,暴力判断是否存在不合法的阵地,暴力滚动数组,暴力统计,暴力转移即可。

看了yyb代码,我感觉我不曾写过代码...

加入说不要那么暴力也可以,可以知道真正有用的状态是很少了的,可以直接搜索加剪枝,本身这类问题就是NP的。

//@winlere
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>using namespace std;  typedef long long ll;
inline int qr(){register int ret=0,f=0;register char c=getchar();while(c<48||c>57)f|=c==45,c=getchar();while(c>=48&&c<=57) ret=ret*10+c-48,c=getchar();return f?-ret:ret;
}
int f[2][1<<10][1<<10];
int n,m,way[110],ans;
int nex[1<<10];
int main(){n=qr();m=qr();char ch[50];for(register int i=1;i<=n;++i){scanf("%s",ch+1);for(int j=1;j<=m;++j)way[i]|=(ch[j]=='P')<<(j-1);}for(register int t=(1<<m)-1,last=-1;t>=0;--t){if(((t<<1)|(t<<2)|(t>>1)|(t>>2))&t)continue;nex[t]=last;last=t;}for(register int i=1;i<=n;++i){for(register int t=0;t<1<<10;++t)for(register int k=0;k<1<<10;++k)f[i&1][t][k]=0;for(register int j=0;j!=-1;j=nex[j]){if(i==1&&j!=0)break;if(i!=1&&i!=2)if((j&way[i-2])!=j)continue;for(register int k=0;k!=-1;k=nex[k]){if(k&j)continue;if(i!=1&&(k&way[i-1])!=k)continue;for(register int l=0;l!=-1;l=nex[l]){if((k|j)&l)continue;if((l&way[i])!=l)continue;register int tol=0,temp=l;while(temp)tol++,temp-=temp&(-temp);ans=max(ans,f[i&1][k][l]=max(f[i&1][k][l],f[(i-1)&1][j][k]+tol));}}}}cout<<ans<<endl;return 0;
}

转载于:https://www.cnblogs.com/winlere/p/10990786.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab reshape矩阵维度变换

B reshape(A,m,n) 将矩阵A的元素返回到一个mn的矩阵B。如果A中没有mn个元素则返回一个错误。 B reshape(A,m,n,p,...) or B reshape(A,[m n p ...]) 把A中元素进行重塑成mnp…的矩阵&#xff0c;特别地&#xff0c;指定的维数mnp…的积必须与prod(size(A))相同。 …

使用Arquillian测试Spring Data + Spring Boot应用程序(第2部分)

在上一篇文章中 &#xff0c;我写了关于如何使用Arquillian Cube和 Docker一起测试Spring Data应用程序的信息。 测试看起来像&#xff1a; RunWith(SpringRunner.class) SpringBootTest(classes PingPongController.class, webEnvironment RANDOM_PORT) ContextConfigurati…

OpenCV circle图像上画圆

OpenCV中circle与rectangle函数显示&#xff0c;只不过rectangle在图像中画矩形&#xff0c;circle在图像中画圆。 void circle(Mat img, Point center, int radius, Scalar color, int thickness1, int lineType8, int shift0) img为源图像 center为画圆的圆心坐标 radius…

如何得到长整数逆序后的整数

目录 一 如何得到长整数逆序后的整数注&#xff1a;原创不易&#xff0c;转载请务必注明原作者和出处&#xff0c;感谢支持&#xff01; 一 如何得到长整数逆序后的整数 最近在写代码遇到这样一个问题&#xff1a;如何得到得到一个长整型数逆序后的长整型数&#xff1f;比如输入…

python网页表格读取_是否可以读取网页html表格数据?

我目前正在考虑一些自动读取网页数据。因此&#xff0c;有没有可能从网页中读取以下类型的表格&#xff1a;excel应该有一个值name of condion,Operator and Expressions。在编辑>>> from urllib import urlopen>>> from bs4 import BeautifulSoup>>&g…

matlab exist()判断目录文件是否存在

if exist(abc.doc,file)0error(display(文件不存在));end判断当前目录中是否存在x文件夹&#xff0c;若不存在则创建if exist(x,dir)0mkdir(x);end

20190608笔试题のCSS-属性继承

以下的CSS属性哪些可以继承&#xff1f;&#xff08;单选&#xff09; A. font-sizeB. marginC. widthD. padding emmm&#xff0c;这题答案是A&#xff0c;看到这题我是能选对的&#xff0c;但又不由让我想到一件事情&#xff0c;在全部的CSS属性里有哪些是不可被继承…

群晖套件来源_群晖安装IPKG包管理器及第三方社区安装包步骤

运行环境为群晖DS1517&#xff0c;系统版本为DSM6.2.3。群晖虽然是基于Linux开发的&#xff0c;但与Red Hat或者Ubuntu这样的公开发行版不同&#xff0c;群晖除了官方的图形化包管理器外&#xff0c;并没有提供类似yum或者apt-get等类似包管理器。为了通过命令行安装诸如nano 等…

tf.app.flags和tf.app.run的使用

tf.app.flags和tf.app.run的使用 tf.app.flags主要用于处理命令行参数的解析工作&#xff0c;其实可以理解为一个封装好了的argparse包&#xff08;argparse是一种结构化的数据存储格式&#xff0c;类似于Json、XML&#xff09;。 我们通过tf.app.flags来调用这个flags.py文件…

redis 持久化性能_高性能持久消息

redis 持久化性能总览 尽管有许多可用于Java的高性能消息传递系统&#xff0c;但大多数都避免引用基准&#xff0c;包括持久消息传递和消息的序列化/反序列化。 这样做有多种原因。 1&#xff09;您并不总是需要或想要持久消息2&#xff09;您希望使用自己的序列化选项。 避免使…

python标签使用教程_怎样用Python做标签云

怎样用Python做标签云标签云是比较直观的频率分布表现方式&#xff0c;很多网站和APP在年度盘点和总结时会使用。Python生成标签云有一个比较易用的库 pytagcloud。Python做标签云的具体方法如下&#xff1a;1、导入头文件from pytagcloud import create_tag_image, make_tagsf…

057-while循环

<?php$x1; //初始化变量while($x<5){ //执行while循环echo "$x<br />";$x;} ?> 转载于:https://www.cnblogs.com/tianpan2019/p/10995180.html

OpenCV显示中文汉字,未使用CvxText和FreeType库

OpenCV显示中文汉字&#xff0c;未使用CvxText和FreeType库 采用windows的GDI显示系统的TrueType字体&#xff0c;没有封装&#xff0c;就两个函数&#xff0c;分成了h和cpp文件&#xff0c;可以自己编辑文件名和函数名&#xff0c;亦可以直接将cpp的代码复制到你需要的程序中…

使用Arquillian测试Spring Data + Spring Boot应用程序(第1部分)

Spring Data的使命是为数据访问提供一个熟悉且一致的&#xff0c;基于Spring的编程模型&#xff0c;同时仍保留基础数据存储的特​​殊特征。 它提供了与一些后端技术的集成&#xff0c;例如JPA&#xff0c;Rest&#xff0c;MongoDB&#xff0c;Neo4J或Redis。 因此&#xff0…

生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...

经常听到小伙伴问到生日祝福视频怎么做&#xff0c;当然我想既然要为他人做生日祝福视频&#xff0c;那么这个人必定是自己身边比较重要的人&#xff0c;而生日又是每个人都是非常重要的&#xff0c;在这种充满意义的时刻&#xff0c;我们想给自己极其重要的人送上一份祝福&…

putty WinScp 免密登录远程 Linux

该方法的原理是预先生成一对公钥和私钥&#xff0c;私钥以文件的形式保存在本地&#xff0c;公钥保存在远程机器上。这样每次登录只需指定私钥文件&#xff0c;远程机器通过比对公钥和私钥来验证登录的合法性。 Putty 免密登录 第一步 生成公钥/私钥对 使用 putty 安装目录中的…

tensorflow log 日志级别设置

log 日志级别设置 import os os.environ["TF_CPP_MIN_LOG_LEVEL"]1 # 这是默认的显示等级&#xff0c;显示所有信息 os.environ["TF_CPP_MIN_LOG_LEVEL"]2 # 只显示 warning 和 Error os.environ["TF_CPP_MIN_LOG_LEVEL"]3 # 只显示 Error

springcloud微服务实战--笔记--1、基础知识

微服务的问题&#xff1a; 分布式事务和数据一致性。 由于分布式事务本身第实现难度就非常大&#xff0c;所以在微服务架构中&#xff0c;我们更强调在各服务之间进行无事务第调用&#xff0c;而对于数据一致性&#xff0c;只要求数据在最后第处理状态是一致第即可&#xff1b;…

OpenCV imwrite

imwrite(const string& filename, InputArray img, const vector<int>& paramsvector<int>() ) 1、filename:需要写入的文件名&#xff0c;会自己创建&#xff08;像imwrite("1.jpeg",src);这样&#xff09; 2、img:要保存的图像 3、pa…

配置Jenkins以连续交付Spring Boot应用程序

在我以前的文章中&#xff0c;我描述了如何使用一个简单的命令启动连续交付堆栈 。 下一步是准备堆栈&#xff0c;以自动方式构建和部署应用程序。 在这篇文章中&#xff0c;我描述了如何配置堆栈&#xff0c;以便准备处理简单的Spring Boot应用程序 。 尽管我将这些组件作为Do…