E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
SCOI2005
[
SCOI2005
]骑士精神(启发式搜索)
题目描述在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士,且有一个空位。在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空位上。给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘:为了体现出骑士精神,他们必须以最少的步数完成任务。输入输出格式输入格式:第一行有一个正整数T(T#include#include
白衣菌
·
2020-08-03 22:38
各省省选
搜索
c++
套路数学——扫雷
一想自己扫雷很厉害,果断选择要a这道题先来看题:P2327[
SCOI2005
]扫雷输入输出格式输入格式:第一行为N,第二行有N个数,依次为第二列的格子中的数。
l961983207
·
2020-07-16 01:28
c++数论
P1896 [
SCOI2005
]互不侵犯-动态规划,状压dp
在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。https://www.luogu.org/problemnew/show/P1896#include#include#include#definelllonglongusingnamespacestd;lln,k,cnt,ans;boola[1>1
LingFengNJT
·
2020-07-08 02:03
动态规划-状压
noip历年省选
BZOJ1083: [
SCOI2005
]繁忙的都市
题意给定一张图,求其最小生成树中权值最大的边要是学习过最小生成树的相关概念,就会发现这道题就是直接考察的最小生成树,只不过题目没有问你最小生成树的边权和,而是让你输出最小生成树有几条边(点数-1)和权值最大的那条边的权值。那么什么是生成树呢?Inthemathematicalfieldofgraphtheory,aspanningtreeTofanundirectedgraphGisasubgra
小火小火车车车
·
2020-06-23 23:01
【BZOJ1087】[
SCOI2005
] 互不侵犯King(状压DP)
点此看题面大致题意:在N×NN×NN×N的棋盘里面放KKK个国王,使他们互不攻击,共有多少种摆放方案(国王能攻击到它周围的8个格子)。状压DPDPDP一看到这道题我就想到了经典的八皇后问题,但是,这道题其实可以用状压DP来做。我们可以发现,影响该行国王摆放方法的只有上一行国王的摆放方式,因此,对于第iii行,我们只需要知道第i−1i-1i−1行的国王的摆放方式即可。所以,我们可以用f[i][j]f
chenxiaoran666
·
2020-06-22 22:16
BZOJ
动态规划
状压DP
BZOJ-1084: [
SCOI2005
]最大子矩阵(DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1084开始是以为是什么神题,后来发现m#include#includeusingnamespacestd;#definerep(i,x)for(inti=0;i++
AmadeusChan
·
2020-04-08 02:54
题解 [
SCOI2005
] 互不侵犯King (状压DP)
ChthollyNotaSeniorious题目描述在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。输入输出格式输入格式只有一行,包含两个数N,K(1#include#include#includeusingnamespacestd;typedeflonglongll;lln,cnt,k;//cn
Ricardo_Y_Li
·
2020-02-21 14:25
[模板A*][
SCOI2005
]骑士精神(A*,IDA*)
输入格式第一行有一个正整数T(Tusingnamespacestd;intstandard[5][5]={{1,1,1,1,1},{0,1,1,1,1},{0,0,-1,1,1},{0,0,0,0,1},{0,0,0,0,0}},tu[5][5],f[8][2]={{-2,-1},{-2,1},{1,2},{1,-2},{-1,2},{-1,-2},{2,-1},{2,1}},is,t,xx,yy
ezoi_ly
·
2019-12-28 10:00
题解 [
SCOI2005
]最大子矩阵
题目描述这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。输入输出格式输入格式第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中的每个元素的分值(每个元素的分值的绝对值不超过32767)。输出格式只有一行为k个子矩阵分值之和最大为多少。输入输出样例输入样例#13221-323-23输出样例#19
Ricardo_Y_Li
·
2019-12-25 01:37
P2330 [
SCOI2005
]繁忙的都市
最小生成树模板题#includeusingnamespacestd;structnode{intu;intv;intw;}a[100005];intfa[305],n,m,ans=0,tot=1;boolcmp(nodex,nodey){returnx.w>n>>m;for(inti=1;i>a[i].u>>a[i].v>>a[i].w;}kruskal();cout<
机房里的划水冠军
·
2019-12-06 21:00
[
SCOI2005
]骑士精神
题面传送门我们发现只有25个格子,应该是可以用爆搜过掉这道题的。但是裸的dfs时间复杂度过高,我们要进行相应的优化。首先,由于马的数量过多,我们应该选择让空格“走”。接下来我们发现这道题又很明显的一个限制条件,最多不能超过15步,所以我们可以使用迭代加深进行优化,所谓的迭代加深搜索,本质上还是dfs,但是它每次会设置一个深度上限maxdep,使得搜索树的深度不超过maxdep,这样做可以让它遍历更
szmssf
·
2019-10-24 07:00
【
SCOI2005
】互不侵犯
在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子说实话,之前就一直想写状压的博客了,奈何一直没有时间搞互不侵犯应该是最经典的状压题目了状压的本质就是用一个二进制串表示当前行的状态所以我们枚举二进制串,判断它是否合法boolcheck(inti){return(!(i&(i#definelllonglo
tqr06
·
2019-10-09 09:00
P1896 [
SCOI2005
]互不侵犯
知识点:状压DP原题面发现\(n,m\le9\),又要求方案数,就知道这必然是个状压了.分析题意:一些性质:对于每一行的棋子摆放情况,只会被相邻的两行棋子所影响对于两行棋子能否相邻,处理方式较麻烦但是\(n,m\le9\),状态数较少,可以预处理出所有单行状态,及他们能相邻的其他单行状态算法实现:先预处理出单行的合法状态.(即没有左右相邻的国王的状态)并记录此单行状态的国王个数.再预处理出能直接相
Luckyblock
·
2019-10-08 14:00
P2324-[
SCOI2005
]骑士精神
1#include2#define_for(i,a,b)for(inti=(a);ib;i--)4#defineINF0x3f3f3f3f5#defineMOD10000000076#definemaxn107typedeflonglongll;8usingnamespacestd;910inlinellread()11{12llans=0;13charch=getchar(),last='';1
Asurudo
·
2019-10-02 10:00
Luogu-P1896 [
SCOI2005
]互不侵犯
题目题目链接测试得分:100主要算法:状压DP(二进制优化)题干:状压DP板子分析1.对于国王这道题,有点类似于八皇后问题,但是这个点限制条件少一些,简单地说就是一次筛选的点较少,所以会导致搜索的超时2.那可不可以用多维DP呢?,对于每一行,我们知道它只于前一行与自身有关,满足了DP的无后效性原则,对于答案,是前面答案的汇总,通俗的讲就是满足最优子结构原理,所以yongDP3.但是对于DP状态转移
SeanOcean
·
2019-08-14 20:00
【
SCOI2005
】骑士精神(IDA*)
IDA*=迭代加深+估价函数A*=BFS(优先队列)+估价函数迭代加深通常用于:1.在有一定的限制条件时使用(例如本题中“如果能在15步以内到达目标状态,则输出步数,否则输出-1“)。2.题目中说输出所有中的任何一组解。相当于对于一颗很深的搜索树,我们限制它的层数,类似于广搜,尽可能遍历更多的分支。evaluate:估价函数,本题中是将目标棋盘与当前棋盘作比较,注意估价函数表示的是“最优情况下(即
Patrickpwq
·
2019-06-21 23:32
【BZOJ】1085: [
SCOI2005
]骑士精神-A*搜索
传送门:bzoj1085题解A*状态xxx估值f(x)=g(x)+h(x)f(x)=g(x)+h(x)f(x)=g(x)+h(x),g(x)g(x)g(x)为已用代价,h(x)h(x)h(x)为预计还需花费的最少代价枚举次数limlimlim搜索,每次只走f(x)≤limf(x)\leqlimf(x)≤lim的代码#includeusingnamespacestd;constintN=5;intt
ccosi
·
2019-04-08 21:09
A*算法
DP(动态规划)进阶
•指数级复杂度,适用于数据范围较小的题目•通常会出现在棋盘问题中:•比如说:[
SCOI2005
]互不侵犯、[NOI20
聆回
·
2019-03-02 22:36
算法
【BZOJ1088】[
SCOI2005
] 扫雷Mine(分类讨论)
点此看题面大致题意:给你一个2∗n2*n2∗n的扫雷棋盘,现让你根据第二列的信息确定第一列有多少种摆法。扫雷性质听说这是一道动态规划+数学题。其实,根据扫雷游戏的某个性质,只要确定了第一个格子是否有雷,就可以确定整列雷的分布情况!因此,最多只可能有两种摆法。这样一来,只要对第一个格子是否有雷分类讨论即可,遇到合法的情况就将ansansans加$1。如何确定整列雷的分布情况我们再来说一下应如何根据第
chenxiaoran666
·
2018-10-20 13:02
BZOJ
【洛谷】P2324 [
SCOI2005
]骑士精神
IDA*练习题1、IDA*=IdDfs+A*1.1、IdDfs用于单层“无限”情况但是解层数很少,这时可以限制Dfs层数,Id为每次的层数限制1.2、A*具有估价函数,用于Bfs快速求解IDA*就是将估价函数用于层数限制的Dfs中,如果具有层数的Dfs仍然无法满足时间限制,那么可以考虑题目性质进行估价函数的剪枝,其实估价函数基本随缘,就是已经干了的和最小还需要干的加起来,进行贪心考虑,如果最小还不
Jerry_wang119
·
2018-10-11 00:00
A*
IDA*
IDDFS
【洛谷2324】[
SCOI2005
]骑士精神 IDA*
[
SCOI2005
]骑士精神描述在一个\(5×5\)的棋盘上有\(12\)个白色的骑士和\(12\)个黑色的骑士,且有一个空位。
ZAGER
·
2018-10-10 18:00
SCOI2005
互不侵犯 - 状压DP
考虑如何划分阶段,如何确定决策及转移阶段就是子问题的规模,对于这道题,可以说“更小的棋盘,更少的king”算是子问题,但是我们难以表示“更小的棋盘”,难道要表示出行列吗?我们可以灵活变换状态,更小的棋盘,并不代表我非要按相似比缩小棋盘,如果仅仅是“更小”,只要满足更小的要求,完全可以设计一个小的更加特殊的状态:按行来划分阶段,棋盘宽不变,小的仅仅是行,这样也满足“更小”的约定。虽然我没法改变需要更
Zolrk
·
2018-08-08 10:56
NOIP
动态规划
状态压缩
BZOJ1087&&洛谷P1869[
SCOI2005
]互不侵犯
人生中的第一道状压dp(照着题解写的(捂脸))先dfs预处理出每种情况下的二进制(状压不是用01描轮廓吗),然后枚举每行的选哪个,不用考虑他的上一行,因为这行是从上一行转移下来的,我们只需要判断和下一行冲不冲突,不冲突就累加答案初始化时第一行的美种情况的方案数都是1,最后去最后一层累加答案代码(从头到尾抄了一遍,虽然不是直接交的题解,但是还是好羞耻(捂脸))//ByAcerMo#include#i
AcerMo
·
2018-07-04 16:10
动态规划
BZOJ1085
SCOI2005
骑士精神【IDA* 启发式迭代加深】
BZOJ1085SCOI2005骑士精神Description在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士,且有一个空位。在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空位上。给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘:为了体现出骑士精神,他们必须以最少的步数完成任务。Input第一行有一个正
Dream_Maker_yangkai
·
2018-06-02 18:38
c++
BZOJ
IDA*
算法
[
SCOI2005
]繁忙的都市,洛谷之提高历练地,最小生成树
正题第二题:[
SCOI2005
]繁忙的都市这题十分的明显,就是求边权最大的最小值,而最小生成树又可以满足这个性质。所以就是跑一边最小生成树即可。
Deep_Kevin
·
2018-04-11 09:24
[
SCOI2005
]扫雷,洛谷之提高历练地,其他数学问题
正文第七题:[
SCOI2005
]扫雷这道题有两种做法,一种是递推,一种是贪心。先讲Dp,设一个f[i][j][k],表示第i位的当前和下一个的状态。
Deep_Kevin
·
2018-04-09 10:08
bzoj1085 [
SCOI2005
]骑士精神(A*搜索)
估值函数为:当前棋盘与目标棋盘不同的位置数量-1易知一个棋盘最少需要这么多的步数才能达成目标棋盘若当前步数+估值函数大于最大深度则剪枝#include#include#include#includeusingnamespacestd;#definelllonglong#defineinf0x3f3f3f3finlineintread(){intx=0,f=1;charch=getchar();wh
Icefox_zhx
·
2018-04-06 20:45
bzoj
搜索
A*
A*入门两题——第k短路问题 && [
SCOI2005
]骑士精神
A*算法网上有很多资料,在这里不想写…最主要的是估价函数f,估的是当前状态到最终状态的代价。设f′为真正的代价ff′,有可能搜不到最优解,但是跑得快。第k短路问题:其核心在于预处理出所有点到终点的最短路h。设g为起点到这个点的长度。f=g+h按f的大小从小到大取,用堆维护。每次取出来就将它相邻的点更新。这样的正确性你可以想象是把小于(和一部分等于)第k短路长度的路径全部找了出来,复杂度取决于这个再
Cold_Chair
·
2018-03-09 20:27
华丽搜索
最短路径
A*
[bzoj1085][
SCOI2005
]骑士精神【暴力】
【题目链接】http://www.lydsy.com/JudgeOnline/problem.php?id=1085【题解】dfs+剪枝即可。剪枝的方法是,若当前状态与目标状态有kk个不同。那么至少还要使用k−1k−1步。若当前步数+k−1≥当前步数+k−1≥ans则直接退出。/*--------------userVanisherproblembzoj-1085----------------*
VanishD
·
2018-03-07 18:38
【暴力】
[bzoj1088][
SCOI2005
]扫雷Mine【乱搞】
【题目链接】http://www.lydsy.com/JudgeOnline/problem.php?id=1088【题解】很水的一道题,有很多种解法。笔者用的是,枚举最边上两个是不是雷,然后接下来的雷的分布方式就唯一了,按位确定并判断是否可行就行了。/*--------------userVanisherproblembzoj-1088----------------*/#include#def
VanishD
·
2018-03-06 19:34
【乱搞】
[bzoj1087][
SCOI2005
]互不侵犯King【dp】
【题目描述】http://www.lydsy.com/JudgeOnline/problem.php?id=1087【题解】状压dp不解释/*--------------userVanisherproblembzoj-1087----------------*/#include#definelllonglong#defineinf0x3f3f3f3f#defineN11usingnamespace
VanishD
·
2018-03-06 19:15
BZOJ1084: [
SCOI2005
]最大子矩阵
题解:这题显然是DP。定义f[i][j][k]表示前i行j列里有k个矩阵的最大元素总和。因为m#include#includeusingnamespacestd;constintmaxn=105,maxk=15;intn,m,n1,ans,a[maxn][3],f[maxn][maxn][maxk],s[maxn],sum[maxn][2],f1[maxn][maxk];intmain(){sca
DYT_B
·
2018-01-19 23:01
题解
BZOJ题解
【bzoj1083】[
SCOI2005
]繁忙的都市 kruskal
1083:[
SCOI2005
]繁忙的都市TimeLimit:10SecMemoryLimit:162MBSubmit:3684Solved:2309[Submit][Status][Discuss]Description
Mininda
·
2017-11-09 17:17
bzoj
bzoj
图论-kruskal
在OI中不断奋力前行
【bzoj1085】【 [
SCOI2005
]骑士精神】启发式剪枝+迭代加深搜索
(上不了p站我要死了,侵权度娘背锅)如果这就是启发式搜索的话,那启发式搜索也不是什么高级玩意嘛。。(啪啪打脸)Description在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士,且有一个空位。在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空位上。给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘:为了
LinnBlanc
·
2017-10-26 16:18
题目总结
搜索
BZOJ1085-骑士精神(A*搜索)
BZOJ1085-骑士精神(A*搜索) 1085:[
SCOI2005
]骑士精神
Anonymous_jacklovecj
·
2017-09-10 22:40
BZOJ
A-搜索
启发式搜索
搜索
bzoj1085 [
SCOI2005
]骑士精神 【迭代加深搜索】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1085解题思路很容易想到广搜,但空间会超,而深搜又会超时,所以我们用迭代加深搜索,它比广搜慢,比深搜快,但空间和深搜一样,所以可以接受。估价函数least(v)表示从当前状态v到目标状态所需的最小步数,显然是还未归位的棋子数减一;首先枚举所需步数dep,再dfs,若step(v)+least
Neo__Z
·
2017-09-06 21:49
bzoj
SCOI
迭代加深搜索
折半搜索
洛谷 P2324 [
SCOI2005
]骑士精神
传送门开始怼网络流24题所以发的比较晚,学习一下A*搜索,A*其实就是加入评估函数对有限步数或能估价有效的剪枝,对于A*一般只有dfs(bfs被成为最愚蠢的A*)。这题的估价函数:当前棋盘与目标棋盘不同的位置数量-1(评估函数是当前状态到目标状态的距离),所以就有:当前不相同的骑士个数+当前步数#includeusingnamespacestd;chargraph[7][7]={"000000",
Leo_Riddle
·
2017-07-13 00:00
搜索
bzoj
启发式搜索
[IDA*] BZOJ1085: [
SCOI2005
]骑士精神
题意给定一个初始状态,用最少步数变成如下图案,如果超过15步输出-1。题解IDA*经典题。显然是个搜索题,看到”超过15步输出-1”,就能想到迭代加深搞,IDA*特别适合这题。估价函数很简单,统计一下几个位置上不是正确的颜色即可。如果把中间是否是空白也加入统计的话,要注意估价结果可能会大于实际代价(最后一步之前h=2>1),所以需要减一。#include#includeusingnamespace
Lynstery
·
2017-05-21 19:25
A*
bzoj 1083: [
SCOI2005
]繁忙的都市 (最小生成树)
题目描述传送门题解最小生成树代码#include#include#include#include#include#defineN1000003usingnamespacestd;intfa[N],n,m;structdata{intu,v,c;}e[N];intcmp(dataa,datab){returna.c
clover_hxy
·
2017-05-03 14:10
图论
并查集
[BZOJ1083][
SCOI2005
]繁忙的都市(二分+并查集)
题目描述传送门题目大意:给出n个点m条边的无向图,每一条边有一个边权,要求选出一些边,将n个点连通,并且边的数量最少,并且边权的最大值最小。题解首先二分答案,然后并查集判定这些边是否能将n个点连通边数最少必然是一棵树啊代码#include#include#include#include#includeusingnamespacestd;#defineN305intn,m,Max,ans;intf[
Clove_unique
·
2017-05-02 21:30
题解
并查集
省选
二分
bzoj 1082: [
SCOI2005
]栅栏 (二分+dfs)
1082:[
SCOI2005
]栅栏TimeLimit:10SecMemoryLimit:162MBSubmit:1942Solved:826[Submit][Status][Discuss]Description
clover_hxy
·
2016-11-10 18:43
二分
dfs
BZOJ【1083】繁忙的都市
1083:[
SCOI2005
]繁忙的都市TimeLimit:10SecMemoryLimit:162MBDescription城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造
LJH_KOQI
·
2016-08-29 15:54
大视野
最小生成树
萌新OI成长经历
BZOJ【1082】栅栏
1082:[
SCOI2005
]栅栏TimeLimit:10SecMemoryLimit:162MBDescription农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材。
LJH_KOQI
·
2016-08-29 15:24
大视野
二分
萌新OI成长经历
BZOJ【1081】超级格雷码
1081:[
SCOI2005
]超级格雷码TimeLimit:10SecMemoryLimit:162MBDescription著名的格雷码是指2n个不同n位二进制数(即0~2n-1,不足n位在前补零)的一个排列
LJH_KOQI
·
2016-08-29 10:45
大视野
杂题
萌新OI成长经历
BZOJ[1088]扫雷MINE
1088:[
SCOI2005
]扫雷MineTimeLimit:10SecMemoryLimit:162MBDescription相信大家都玩过扫雷的游戏。
LJH_KOQI
·
2016-08-26 14:21
大视野
DP
萌新OI成长经历
BZOJ【1085】骑士精神
1085:[
SCOI2005
]骑士精神TimeLimit:10SecMemoryLimit:162MBDescription在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士,且有一个空位。
LJH_KOQI
·
2016-08-26 08:29
大视野
搜索
萌新OI成长经历
【bzoj1085】[
SCOI2005
]骑士精神
[
SCOI2005
]骑士精神Description在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士,且有一个空位。
Miao__HD
·
2016-08-25 20:04
[
SCOI2005
]骑士精神
提交:bzoj1085题目↑↑这道题的做法就是搜索,但是一般的搜索只能对三到四个点==所以我们要用特殊的方法^_^A*算法!!!!!刚开始,我还不知道这是啥。。。经过大神的讲解,终于明白。。A*算法的好处就是:预判当前递归到结束得到的值,从而判断是否进入递归,部分判断PS:用了之后,很快很快很快。。。代码↓↓#include#include#include#includeusingnamespac
Nick_hhlab
·
2016-08-25 15:31
BZOJ
bzoj 1086: [
SCOI2005
]王室联邦(树上分块)
1086:[
SCOI2005
]王室联邦TimeLimit: 10Sec MemoryLimit: 162MBSec SpecialJudgeSubmit: 1107 Solved: 662[Submit
clover_hxy
·
2016-05-09 17:00
【bzoj 1087】[
SCOI2005
]互不侵犯King
1087:[
SCOI2005
]互不侵犯KingTimeLimit:10SecMemoryLimit:162MBSubmit:2641Solved:1558[Submit][Status][Discuss
reverie_mjp
·
2016-05-07 15:00
bzoj
状压dp
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他