[博弈] LOJ#2471. 「九省联考 2018」一双木棋

别再手动调参了!用Sage-Husa自适应滤波让卡尔曼滤波自己搞定噪声协方差 本文深入探讨了Sage-Husa自适应滤波技术在卡尔曼滤波中的应用,解决了传统手动调参的痛点。通过在线估计噪声协方差矩阵,Sage-Husa滤波实现了自动化参数调整,显著提升了机器人定位和传感器融合的性能。文章详细介绍了其核心原理、实现方法及工程实践中的关键技术,为开发者提供了实用的解决方案。 阅读详情

考虑暴力。

每次枚举放哪个位置,设已经放了棋子的位置集合为 SS,fS 表示当前放置情况为 SS 时,双方采用最优策略后,两个人的权值和的差。

那么如果是菲菲,会选择 fS+ai,j 最大的,牛牛会选择 fS−bi,jfS−bi,j 最小的,然后跑dfs

实际上如果记忆化一下就能过了。

考虑每一种合法的状态,棋子都是放置在左上角,那么放置的棋子的轮廓线就相当于是从左下角走到右上角的一条路径。那么总共只有 O(C(n+m+2,n+1))O(C(n+m+2,n+1)) 种情况。

大力map套vector搞过去

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#define gx(x) ((x)>>4)
#define gy(x) ((x)&15)
#define g(x,y) ((x)<<4|(y))

using namespace std;

const int N=20;

map<vector<int>,int> M;

int n,m,a[N][N],b[N][N],vis[N][N];
vector<int> lst;

inline void fix(vector<int> &x){
  sort(x.begin(),x.end());
  x.erase(unique(x.begin(),x.end()),x.end());
}

int dfs(vector<int> c,int p){
  fix(c);
  if(c==lst)
    return 0;
  if(M.count(c)) return M[c];
  int &ret=M[c];
  if(p) ret=-(1<<30); else ret=1<<30;
  for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++)
      if(!vis[i][j] && (i==1 || vis[i-1][j]) && (j==1 || vis[i][j-1])){
    vector<int> nxt; vis[i][j]=1;
    for(int k=0;k<c.size();k++){
      int x=gx(c[k]),y=gy(c[k]);
      if(x==n || !vis[x+1][y] || y==m || !vis[x][y+1]) nxt.push_back(c[k]);
    }
    nxt.push_back(g(i,j));
    if(p) ret=max(ret,dfs(nxt,p^1)+a[i][j]);
    else ret=min(ret,dfs(nxt,p^1)-b[i][j]);
    vis[i][j]=0;
      }
  return ret;
}

int main(){
  scanf("%d%d",&n,&m);
  for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++) scanf("%d",&a[i][j]);
  for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++) scanf("%d",&b[i][j]);
  vector<int> cur;
  for(int i=1;i<=n;i++) lst.push_back(g(i,m));
  for(int i=1;i<=m;i++) lst.push_back(g(n,i));
  fix(lst);
  printf("%d\n",dfs(cur,1));
  return 0;
}
[九省联考2018] iiidx 给定一颗nnn个点的有根树,和nnn权值d1...dnd1...dnd_1 ... d_n。将每个权值分配个每个节点,要求使父亲的权值小于等于儿子的权值。依次最大化1,2,3...n1,2,3...n1, 2, 3...n号点的权值,输出方案。 n≤600000n≤600000n \leq 600000 从111号点开始枚举,由于我们要使一个点最大,所以我们每次都要求出当前符合要求的最大的... 阅读详情

相关推荐

Unity ProBuilder(自己创建斜面、拐角)

ProBuilder基础实例

weixin_56537692的博客 1551

【BZOJ5249】【九省联考2018】IIIDX(线段树)

Description 他需要给正在制作中的游戏《IIIDX》安排曲目的解锁顺序。游戏内共有n首曲目,每首曲目都会有一个难度d,游戏内第i首曲目会在玩家Pass第trunc(i/k)首曲目后解锁(x为下取整符号)若trunc(i/k)=0,则说明这首曲目无需解锁。举个例子:当k=2时,第1首曲目是无需解锁的(trunc(1/2)=0),第7首曲目需要玩家Pass第trunc(7/2)=3首曲目才...

დ♂Hany01's Blog Space♂ღ 400

一代测序、二代测序以及三代测序的优缺点及应用对比?

一、初现庐山真面目 一代测序:又称Sanger测序(多分子,单克隆) 历史:第一代DNA测序技术(又称Sanger测序)在1975年,由Sanger等人开创,并在1977年完成第一个基因组序列(噬菌体X174),全长5375个碱基。研究人员经过30年的实践并对技术及测序策略的不断改进(如使用了不同策略的作图法、鸟枪法),2001年完成的首个人类基因组图谱就是以改进了的Sanger法为其测序基础。 原理:在4个DNA合成反应体系(含dNTP)中分别加入一定比例带有标记的ddNTP(分为:ddATP...

wangprince2017 3万+

[九省联考 2018] 一双木棋 chess

我的第一道轮廓线dp。

pyx寄居地 302

UE5 SplineMesh与StaticMesh性能对比:生成1000米路径的帧率与内存实测

本文深度对比了UE5中SplineMesh与StaticMesh在生成1000米路径时的性能差异,包括帧率、内存占用及实现复杂度。实测数据显示,SplineMesh在Draw Call优化和动态变形场景中表现更优,而StaticMesh适合需要复杂材质变化的场景。文章还提供了优化技巧和选型指南,帮助开发者根据项目需求做出科学决策。

weixin_33976326的博客 315

计算机视觉——SIFT特征匹配

文章目录一、SIFT特征检测原理1.1基本思想1.2二、SIFT特征检测图片兴趣点三、SIFT特征检测描述子匹配四、输入图片检测与之 一、SIFT特征检测原理 1.1基本思想 1.2 二、SIFT特征检测图片兴趣点 代码: 检测结果: 三、SIFT特征检测描述子匹配 四、输入图片检测与之 ...

weixin_43869874的博客 3853

[九省联考2018]一双木棋chess

题目 题目描述 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。 落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子。 棋盘的每个格子上,都写有两个非负整数,从上到下第i 行中从左到右第j 列的格 子上的两个整数记作A_{i,j}A i,j ​ 、B_{i,j}B i,j ​ 。在游戏结束后,菲菲和牛牛会分别计算自己的得分:菲菲的得分是所有有黑棋的格子上的

Brute♂force 458

STM32_WS2811驱动

STM32的WS2811驱动

健身房 2839

[九省联考2018]一双木棋

先分析状态。画几张图你发现,一个合法的状态,它从第一行到第nnn行,每一行上棋子的数量一定是单调不增的,并且棋子一定是从左到右紧密排列。 写个dfsdfsdfs爆搜一下合法状态,最多也就181818万左右。因此可以状压爆搜。 两人都想最优,这种情况一般维护一个差值。即我们维护一个maxmaxmax菲菲−-−maxmaxmax牛牛。 为了两人在求解最值的过程中能互相限制,保证双方都是最优情况,我们...

Destiny 342

用Bus Hound和MIDIOX抓包分析USB MIDI数据流:从硬件接口到软件解析的完整实战

本文详细介绍了如何使用Bus Hound和MIDIOX工具抓包分析USB MIDI数据流,从硬件接口到软件解析的完整实战过程。通过解析MIDI协议、捕获Note On/Off事件、控制变更消息等实例,帮助开发者深入理解音乐数字接口的底层通信机制,并提供了常见问题的解决方案和调试技巧。

weixin_42692935的博客 404

090、Sensor上电时序与帧同步的驱动级实现——以索尼IMX766为例的AVDD/DVDD/IOVDD时序调优

摘要: 本文以索尼IMX766传感器为例,深入探讨了传感器上电时序与帧同步的驱动级实现问题。通过分析某车载项目量产中的高温黑屏故障,揭示了AVDD/DVDD/IOVDD时序偏差导致传感器内部状态机异常的根源。文章详细解读了IMX766三路电源的时序约束(如AVDD与DVDD需在1ms内同步至90%),并提供了驱动代码级实现方案,包括电源使能顺序、延时控制及帧同步配置。针对多摄同步场景,强调了曝光时间寄存器写入一致性的重要性。最后结合产线问题定位经验,提出通过示波器抓取电源波形验证时序合规性的方法。全文聚焦硬

zzfmlxs的博客 256

P4363 [九省联考2018]一双木棋chess

题目链接 题目描述 菲菲和牛牛在一块 nnn 行 mmm 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。 落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子。 棋盘的每个格子上,都写有两个非负整数,从上到下第 iii 行中从左到右第 jjj 列的格子上的两个整数记作 ai,ja_{i,j}ai,j​ 和 bi,jb_{i,j}bi,j​。 在游戏结束后,菲菲和牛牛会分别计算自己的得分

sky123博客 417

5.1 rocr-runtime libhsakmt event 机制全景—从 Doorbell 到 Signal

本文介绍了ROCm/KFD中的Event机制架构,主要解决GPU异步计算中的反馈问题。Event机制分为三层:硬件层触发事件,内核层管理事件通知,用户态接收处理。事件类型分为三大类:同步类事件(如SIGNAL、QUEUE_EVENT)用于任务完成通知,异常类事件(如MEMORY、HW_EXCEPTION)报告错误,拓扑类事件(如NODECHANGE)处理设备变更。该机制通过共享内存和中断实现高效通信,避免CPU轮询开销。后续文章将深入内核实现、Thunk层封装和多队列完成检测实战。

图形/计算GPU的驱动与虚拟化技术分享园地 1295

[贪心 线段树] LOJ#2472. 「九省联考 2018」IIIDX

从1到n枚举,逐位确定。 首先可以把关系树建出来,一个点的权值要大于等于父节点的权值。 如果没有相同数字的,第 iii 以及它子树种的点会选择 [n−sizei+1,n][n−sizei+1,n][n-size_i+1,n] 这个区间里的数,选完后把这个区间删去,继续考虑 i+1i+1i+1 如果有重复的数字,那么第 iii 个点会选择第 n−sizei+1n−sizei+1n-size_i...

CE玩家 685

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

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[九省联考 2018] 一双木棋chess

题目描述: 有一个 n∗m的方格, Alice 和 Bob 玩游戏。每次每人可以选择一个格子占领,前提是这个格子未被占领且它左上方的所有格子都已被占领。 第 i行第 j 列的格子若被 Alice 占领则 Alice 获得 Ai,j 分,若被 Bob 占领则 Bob 获得 Bi,j分。 Alice 先手,所有格子都被占领时结束。双方都想最大化自己的得分与对方得分的差。求双方采取最优策略时 Al...

HT008的Blog 732

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[九省联考2018]一双木棋——对抗式记忆化搜索

题目描述: 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。 落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子。 棋盘的每个格子上,都写有两个非负整数,从上到下第i 行中从左到右第j 列的格 子上的两个整数记作Ai,jA_{i,j}Ai,j​...

ylsoi的博客 357

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

九省联考 一双木棋

一双木棋 状压+min-max对抗搜索 说出来丢人,笔者作为高一试水狗这题就滚粗了 我果然什么也不会 本题思路很明确,直接记忆化min-max对抗搜索即可 为啥我没想到 所谓min-max对抗搜索就是双方都采取最优策略,都希望获得最大值/最小值时应该采取的一种搜索方式 可以转化为一方希望得到最大值,一方希望得到最小值的问题 瞎**爆搜就可以了 每次判断一下轮到谁出手,即判断一下应...

assass_cannotin的博客 649

[九省联考2018]一双木棋chess 记忆化搜索

Problem 任意一个时刻的状态是阶梯型的 记忆化搜索即可 注意设置边界 查找的话使用 std::tr1::unordered_map&lt;int,int&gt;会快很多,注意加上 #include&lt;tr1/unordered_map&gt; Code #include&lt;bits/stdc++.h&gt; #define rep(i,a,b) for(int i=(a)...

Shelter 292

【BZOJ5248】【九省联考2018】一双木棋(搜索,哈希)

题面BZOJDescription菲菲和牛牛在一块n行m列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。棋局开始时,棋盘上没有任何棋子, 两人轮流在格子上落子,直到填满棋盘时结束。落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且 这个格子的左侧及上方的所有格子内都有棋子。 棋盘的每个格子上,都写有两个非负整数,从上到下第i行中从左到右第j列的格子上的两个整数记作Aij、Bij。在

小蒟蒻yyb的博客 1039

[九省联考 2018] iiidx

题目描述: 给出一个序列 重新安排序列的下标 使得 di&lt;=di/kdi&lt;=di/kd_ididid_i不相同的情况成立 比如 4 2.0 1 1 1 2 这组样例 用贪心搞出来的是 1 1 1 2 其实正解应该是1 1 2 1 如果权值有重复的,我们要找和第siz大的权值相等的权值中最靠右的那个点,再给子树预定siz-1个,这样做能够让当前点权值尽可能大的前提...

HT008的Blog 757

P4363 [九省联考2018]一双木棋chess(状压dp+记忆化搜索)

qwq 据说这个题有好多种乱搞的做法。 这里主要介绍的是,状压轮廓线的做法。 首先,我们会发现,已经放过的棋子和棋盘的左边界和上边界构成一个轮廓线,如果我们将向上看成是0,向下看成是1的画,那么我们的初始状态就是形如000000111111000000111111000000111111,而目标状态就是形如111111000000111111000000111111000000的一个东西,经过仔细...

y_immortal的博客 QwQ(qdez_ymh) 275

洛谷 P4363 [九省联考2018]一双木棋chess 题解

题目链接:https://www.luogu.org/problemnew/show/P4363 分析: 首先博弈,然后考虑棋盘的规则,因为一个子在落下时它的上面和左面都已经没有空位了,所以棋子的右下的轮廓线一定是个凸包,更具体地,从棋盘的左下沿着棋盘边界或棋子轮廓线走到棋盘右上,所走的路径一定只有向上和向右两种。 代码: #include&lt;cstdio&gt; using namespac...

ShineEternal的笔记小屋 610

洛谷P4363 [九省联考2018]一双木棋chess

题目描述菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子。棋盘的每个格子上,都写有两个非负整数,从上到下第i 行中从左到右第j 列的格 子上的两个整数记作 A_{i,j}Ai,j​ 、 B_{i,j}...

qq_41510496的博客 612

九省联考2018--一双木棋chess

题面: 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。 落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子。 棋盘的每个格子上,都写有两个非负整数,从上到下第i 行中从左到右第j 列的格 子上的两个整数记作A_{i,j}A i,j ​ 、B_...

BIGBIGPPT的博客 362

九省联考2018D1T1 一双木棋

链接可以观察到,整个对局过程中的任意时刻,棋盘总是被一条从左下到右上的轮廓线拆分成有子和无子的两部分。因此,我们可以考虑轮廓线dp,从左下角开始,向上的边为1,向右的边为0。设f[sta]表示当状态为sta时,双方都选择最优方案还能获得的收益,则初始状态(也就是最终对局结果)为f[11...1100...00],最终状态(也就是开始对局的状态)为f[00...0011...11]。状态倒着读,因为...

star_city 464

「九省联考 2018」一双木棋

「九省联考 2018」一双木棋 题目描述 菲菲和牛牛在一块 \(n\) 行 \(m\) 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。落子的规则 是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋 子。 棋盘的每个格子上,都写有两个非负整数,从上到下第 \(i\) 行中从左到右第 ...

weixin_30908707的博客 229
上一篇: [杂题] hihocode1715. 树联通问题
下一篇: [贪心 线段树] LOJ#2472. 「九省联考 2018」IIIDX
LowestJN
博客等级 码龄10年 76粉丝 422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值