ZOJ 3755 - Mines (状压DP)

经典状态dp题目 POJ 1185 炮兵阵地 一般这类题目列会很小10左右,我们需要枚举所有行,对于当前行,其放炮的位置只与上一行和上上行有关,我们记当前行状态和上一行状态便可转移了,dp数组开3维即可。 在枚举每一行放炮兵的方法时,可以预处理方便获得所有可能放法。具体细节见代码。总体复杂度O(Row*70*70*70),70是预处理得到的每一行最多放法。打表很容易看出来。 #include #inclu 阅读详情

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5178

题意:

大家都玩过扫雷吧。

给你n*m的扫雷数字。数字都在偶数列上。

也就是说,棋盘是n*(2*m+1)大小。

让你输出最少的雷数。

 

POINT:

n最大是10,暗示我们状压DP。

挺简单的,不阐述了。

#include <stdio.h>
#include <iostream>
const int inf = 0x3f3f3f3f;
int a[11][11];

int one[1027];
int dp[2][1027];

int n,m;

int check(int pre,int to,int j)
{
	for(int i=1;i<=n;i++){
		int num=0;
		if(pre&(1<<i)) num++;
		if(pre&(1<<(i-1))) num++;
		if(pre&(1<<(i-2))) num++;
		if(a[i][j]<num) return -1;
		if(to&(1<<i)) num++;
		if(to&(1<<(i-1))) num++;
		if(to&(1<<(i-2))) num++;
		if(a[i][j]!=num) return 0;
	}
	return 1;

}

int main()
{
	for(int i=1;i<1024;i++){
		one[i]=one[i-(i&-i)]+1;
	}
	while(~scanf("%d%d",&n,&m)){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++)
				scanf("%d",&a[i][j]);
		}
		int k=0;
		for(int i=0;i<(1<<n);i++)
			dp[k][i]=one[i],dp[!k][i]=inf;
		for(int j=1;j<=m;j++){
			for(int pre=0;pre<(1<<n);pre++)
			for(int to=0;to<(1<<n);to++){
				int op=check(pre,to,j);
				if(op==-1) break;
				else if(op){
					dp[!k][to]=std::min(dp[!k][to],dp[k][pre]+one[to]);
				}
			}
			for(int i=0;i<(1<<n);i++)
				dp[k][i]=inf;
			k=!k;
		}
		int ans=inf;
		for(int i=0;i<(1<<n);i++){
			ans=std::min(ans,dp[k][i]);
		}
		printf("%d\n",ans);
	}



}

 

kettle多表数据迁移 点击 文件——新建——作业,在左侧的 核心对象 标签下选择 通用,双击添加一个 start ,一个 转换 ,一个 作业 和一个 成功 到右侧的作业面板,这些作业项都可以改名字。点击文件—新建—转换,在左侧的 核心对象 标签下选择 输入 下的 表输入,双击添加到右侧的转换面板,再选择 作业 下的 复制记录到结果 ,双击添加到右侧的转换面板。新建转换,在左侧的 核心对象 标签下选择 作业 下的 从结果获取记录,双击添加到右侧的转换面板,再选择 作业 下的 设置变量 ,双击添加到右侧的转换面板。 阅读详情

相关推荐

DDR3性能优化实战:如何用Xilinx MIG控制器实现800MHz稳定读写(7系列FPGA版)

本文深入探讨了在Xilinx 7系列FPGA上使用MIG控制器实现DDR3存储器800MHz稳定高速读写的实战优化技巧。文章聚焦于高级时序调优、Bank Machine调度策略、用户接口设计优化以及利用ILA进行信号完整性调试,旨在帮助工程师突破性能瓶颈,实现接近理论峰值的稳定带宽,并为进一步冲刺更高频率提供进阶调参指南。

seed的博客 774

zoj3755 状态压缩dp

很久没有1A了~爽~ 题目也是很常规的状态压缩题目,

creater_X 795

windows中如何将已安装的nodejs高版本降级为低版本

第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑左面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并

weixin_44582077的博客 9万+

ZOJ 3755 Mines(状压dp)

Mines Time Limit:2 Seconds Memory Limit:65536 KB As a small-game fan, Flandre loves playing the Mine-sweeping very much. He spends 23 hours playing the lowest level of Mine-sweeping every day...

LSD20164388的博客 292

Apifox CLI + Claude Skills:将接口自动化测试融入ai

基于 Apifox CLI、Claude Code以及Claude Skills组合,实现自然语言触发接口自动化测试。

wwz_0012的博客 596

团队管理中最棘手的6个问题

研发团队的管理棘手问题,大多集中在。

xiaolyuh的专栏 741

ZOJ 3755 Mines

Mines 参考了队友的代码,大神为啥总是不爱把代码贴出来呢... #include #include #define Mines les[c][i]=mp[c][i]-f(x&bit[i])-f(x&bit[i+1])-f(y&bit[i])-f(y&bit[i+1]) const int N=11,M=1<<11; int n,m,ans; int bit[N],num[

dimhat的专栏 1136

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json

用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的)

永远年轻 1587

ZOJ 3755 Mines 回溯+剪枝

Mines Time Limit: 2 Seconds      Memory Limit: 65536 KB As a small-game fan, Flandre loves playing the Mine-sweeping very much. He spends 23 hours playing the lowest level of Mine-sweeping every

Linfly的专栏 727

【回眸】Tessy集成测试软件使用指南(一)新手使用篇

这个专栏的文章前4篇都在记录如何使用Tessy进行单元测试,集成测试需要有一定单元测试基础,且做集成测试之前,需要做好单元测试,否则将会大幅增加软件单元代码纠错的代价。集成测试所花费的时间通常远远超过单元测试。如果直接从单元测试到系统测试,结果往往是不理想的。集成测试可以检测由于单元相互交互而导致的错误,通常由一组专业的测试人员执行。

啤酒鸭的物联网开发记录博客 5276

机器学习势能(MLPs) 第一章 基础理论与核心概念 第二章 数据生成与训练集构建

密度泛函理论(DFT)作为现代计算材料科学的基石,通过求解Kohn-Sham方程在电子结构层面提供可靠的势能面信息。然而,其计算复杂度随体系电子数呈O(N3) 至O(N4) 增长,对于包含数百个原子的体系,单点计算往往需消耗数小时至数天的计算资源。这一瓶颈严重限制了分子动力学模拟的时间尺度,传统DFT-MD通常仅能覆盖皮秒量级,远不足以观测扩散、相变等慢动力学过程。经验力场通过解析函数形式描述原子间相互作用,实现了经典力学的计算效率,但其参数化过程高度依赖物理直觉与经验调参。

VectorShift的博客 181

ZUFE 1120 trs滑雪(记忆化搜索)

1120: trs滑雪 时间限制: 1 Sec  内存限制: 128 MB 提交: 63  解决: 22 [提交][状态][讨论版] 题目描述         trs喜欢滑雪。他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形。为了得到更快的速度,滑行的路线必须向下倾斜。         例如样例中的那个矩形,可以从某个点滑向上下左右四个相邻的

Mr_Treeeee的博客 672

硅基半导体量子点:单电子自旋量子比特技术手册

现在我们已经了解了从硅片到容错计算的全部环节,让我们用一张总览图把碎片拼成完整拼图。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;important;important;important;color:#000!important;important;important;important;important;color:#000!

VectorShift的博客 365

AtCoder Beginner Contest 082 - D - FT Robot (set||DP)

D - FT Robot Time limit : 2sec / Memory limit : 512MB Score : 500 points Problem Statement A robot is put at the origin in a two-dimensional plane. Initially, the robot is facing in th

Mr_Treeeee的博客 642

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Codeforces Round #513 - E. Sergey and Subway (树形DP)

http://codeforces.com/contest/1060/problem/E 题意: 问你一棵树上的所有点与点之间的距离。 不过可以2步当成1步走。(跳着走)(即如果两个点隔了一个点,就连一条边) POINT: 首先,如果距离为偶数,直接除2, 如果距离为奇数,除2+1。   算出所有点与点之间的距离(不跳的真实距离)。树形DP解决。 可以算每条边被走了几次,边(u,...

Mr_Treeeee的博客 519

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

AtCoder Regular Contest 097 - E - Sorted and Sorted (逆序对)

点击打开链接题意:给你黑白两种1-n编号的球。让你交换相邻的球,让黑i在黑i+1的上面。百i在白i+1的上面。POINT:dp[x][y]代表排好了白1-x和黑1-y 编号的球。dp[x][y]从dp[x-1][y]或dp[x][y-1]推出来。用树状数组算出逆序对。#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;algor...

Mr_Treeeee的博客 497

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

HDU 1231 最大连续子序列 (DP)

最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32448    Accepted Submission(s): 14552 Problem Description 给定K个整数的序列{ N1, N

Mr_Treeeee的博客 483

FZU 2129 子序列个数(计数DP)

Problem 2129 子序列个数 Accept: 282    Submit: 920 Time Limit: 2000 mSec    Memory Limit : 32768 KB  Problem Description 子序列的定义:对于一个序列a=a[1],a[2],......a[n]。则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子

Mr_Treeeee的博客 480

“浪潮杯”山东省第七届ACM大学生程序设计竞赛 - Feed the monkey(记忆化搜索)

链接题意:给你3种水果的数量,和水果分别连续吃的最大天数。问你猴子吃水果有多少种方案。POINT:记忆化搜索,一开始(pre=-1)可以吃3种水果,然后换着吃搜就好了。搜到0 0 0肯定是1。搜到只剩下一种水果了,那就要看看能不能一次吃光了。因为可以剩下的水果会大于 最大连续天数。dp初始化不能为0,可以-1,然后剪枝。因为答案为0的情况挺多的。所以-1比较好,不会超时。我另开了vis数组。#in...

Mr_Treeeee的博客 480

HDU 1284 钱币兑换问题 (法一:计数DP 法二:普通)

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10390    Accepted Submission(s): 6324 Problem Description 在一个国家仅有1分,2分,3分硬币,

Mr_Treeeee的博客 465

HDU1142 A Walk Through the Forest(SPFA+记忆化搜索)

A Walk Through the Forest Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 32   Accepted Submission(s) : 12 Font: Times New Roman | Verda

Mr_Treeeee的博客 433

牛客国庆集训派对Day6 - E Growth (DP+离散化)

https://www.nowcoder.com/acm/contest/206/E POINT: 主要还是离散化,然后map里存,(x,y)这里属性里可以获得多少Z。 add[x][y]代表刚刚到了x,y后,每天可以获得多少z。 DP[x][y]代表刚刚到了x,y后,最多总共获得了多少z。   #include&lt;stdio.h&gt; #include&lt;iostream...

Mr_Treeeee的博客 420

HDU 1003 Max Sum && HDU 1081 To The Max 一维子串最大和& 二维矩阵最大和

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 253528    Accepted Submission(s): 60167 Problem Description Given a sequenc

Mr_Treeeee的博客 417

HDU 6035 Colorful Tree(树形DP)

Colorful Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 1903    Accepted Submission(s): 804 Problem Description There is a

Mr_Treeeee的博客 404

第六届福建省赛 - G - Simple String Problem (状压DP)

题目题意:给你n长的字符串,是由前k个字母组成的。问你挑出两个子串,他们不能拥有相同的字母。问你len(串a)*len(串b)最大是多少。POINT:状压。考虑串长度只有2000。可以用2000*2000的效率算出每个状态最大的长度是多少。然后如果枚举每个状态再和其他状态相比较得出答案,效率是(1&lt;&lt;k)*(1&lt;&lt;k)。显然是不行的所以预处理出dp[i],代表i这个状态和他...

Mr_Treeeee的博客 396

牛客国庆集训派对Day3 - B Tree (树形DP)

https://www.nowcoder.com/acm/contest/203/B   题解     思路差不多,不过没用那个flag。如果碰到dp[u]+1 % mod ==0的时候。直接重新搜一遍。 #include &lt;vector&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;st...

Mr_Treeeee的博客 372
上一篇: ZOJ 3751 - Diagonal (构造)
下一篇: ZOJ 3753 - Simple Equation (数论)
Mr_Treeeee
博客等级 码龄10年 38粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值