COCI2021-2022#1 Kamenčići

P7928 [COCI2021-2022#1] Kamenčići

题目大意

A A A和小 B B B在玩游戏。在他们面前,有 n n n块石头排成一行,石头有红和蓝两种颜色。

A A A先手,每次每人从两段中的一段取出一块石头,谁先取出 k k k块石头谁就输。

A A A和小 B B B都采用最优策略,问最后谁能获胜。

输入中 C C C表示红色石头, P P P表示蓝色石头。

如果小 A A A获胜,则输出 D A DA DA;否则,输出 N E NE NE

1 ≤ k ≤ n ≤ 350 1\leq k\leq n\leq 350 1kn350,红色石头至少出现 2 k − 1 2k-1 2k1次。


题解

可以看出这道题要用区间 D P DP DP

f i , j , v f_{i,j,v} fi,j,v表示当前这段石头是原来 n n n个石头的第 i i i个到第 j j j个,且小 B B B手中有 v v v块红色石头,最后是否是小 A A A获胜。因为在确定左右边界的情况下,被拿走的红色石头的数量是一定的,所以小 A A A手中的红色石头可以由被拿走的红色石头减去小 B B B手中的红色石头得出,是确定的,不需要记录状态。

直接 D P DP DP好像不太方便,我们考虑记忆化搜索。求 f i , j , v f_{i,j,v} fi,j,v的时候,去搜索下一步的结果,在以此来得出 f i , j , v f_{i,j,v} fi,j,v的值。当小 A A A或小 B B B手中的红色石头为 k k k时,胜负就已经确定,不需要再向下搜索了,所以 v ≤ k v\leq k vk

最多会搜索到 n 2 k n^2k n2k种状态,所以时间复杂度为 O ( n 2 k ) O(n^2k) O(n2k)

注意因为这题的空间为 128 M B 128MB 128MB,所以直接开 35 0 3 350^3 3503的数组会 M L E MLE MLE。依题意, 2 k − 1 ≤ n 2k-1\leq n 2k1n,即 k ≤ 175 k\leq 175 k175,开 350 × 350 × 200 350\times 350\times 200 350×350×200的数组就可以了。

code

#include<bits/stdc++.h>
using namespace std;
int n,k,f[355][355][205];
char s[355];
bool dfs(int l,int r,int v1,int v2,int fl){if(f[l][r][v2]!=-1) return f[l][r][v2];if(v1>=k) return f[l][r][v2]=0;if(v2>=k) return f[l][r][v2]=1;if(fl==1){if(l==r) return f[l][r][v2]=0;if(dfs(l+1,r,v1+(s[l]=='C'),v2,2)||dfs(l,r-1,v1+(s[r]=='C'),v2,2)) return f[l][r][v2]=1;else return f[l][r][v2]=0;}else{if(l==r) return f[l][r][v2]=0;if(!dfs(l+1,r,v1,v2+(s[l]=='C'),1)||!dfs(l,r-1,v1,v2+(s[r]=='C'),1)) return f[l][r][v2]=0;else return f[l][r][v2]=1;}
}
int main()
{scanf("%d%d",&n,&k);scanf("%s",s+1);memset(f,-1,sizeof(f));if(dfs(1,n,0,0,1)) printf("DA");else printf("NE");return 0;
}

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

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

相关文章

【已验证】微信小程序开发-绑定数据23.10.09

四. 绑定数据 WXML页面里的动态数据都是来自.js 文件Page的data&#xff0c;数据绑定就是通过双大 括号&#xff08;{{}}&#xff09;将变量包起来&#xff0c;在WXML页面 里将数据值显示出来。 <!--pages/product/product.wxml--> <view> {{ message }} </vi…

GG-Net: 超声图像中乳腺病变分割的全局指导网络

ATTransUNet 期刊分析摘要贡献方法整体框架1. Global Guidance Block2. Spatial-wise Global Guidance Block3. Channel-wise Global Guidance Block4. Breast Lesion Boundary Detection Module 实验1. 对比实验2. 消融实验2.1 Ablation Analysis of our GG-Net2.2 Ablation A…

用vscode进行远程主机开发

文章目录 插件操作步骤FQA 插件 Remote - SSH - 通过使用 SSH 打开远程计算机或者VM上的文件夹&#xff0c;来连接到任何位置。 操作步骤 使用Vscode利用Remote进行远端开发必须现在Vscode内安装插件 安装完成后&#xff0c;底部工具栏会出现一个绿色按钮&#xff0c;如下…

git命令笔记

git命令笔记 前言&#xff1a;git对于软件开发和协作的重要性不言而喻&#xff0c;在企业开发中&#xff0c;git命令和linux命令的使用同样重要。作为开发者&#xff0c;需要牢记并熟练使用常见的git命令 git工作流程图 命令如下&#xff1a; clone&#xff08;克隆&#xf…

2023旅游产业内容营销洞察报告:如何升级经营模式,适配社媒新链路

2023年我国旅游业强劲复苏&#xff0c;上半年旅游消费增长显著&#xff0c;政府出台一系列文旅扶持政策后&#xff0c;旅游业也在积极寻求数字化转型的升级方式。 上半年以旅游消费为代表的服务业对经济的增长贡献率超过60%&#xff0c;旅游企业普遍实现经营好转&#xff0c;企…

Java中使用C代码

开发工具: Intellij Idea 与 Visual Studio使用方式: Visual生成.dll文件(Windows .dll文件, Linux .so文件); jdk添加.dll文件, Idea java 采用native方式注册与使用c代码.1. 如下图, 打开idea,新建class Demo, 通过命令行生成Demo.h public class Demo {public native voi…

Oracle 云服务即将支持 PostgreSQL!

2023 年 9 月 19 日&#xff0c;Oracle 产品团队发布了一篇文章&#xff0c;宣布 Oracle 云基础架构&#xff08;OCI&#xff09;开始提供 PostgreSQL 服务。目前支持的版本为 PostgreSQL 14.9&#xff0c;提供有限支持&#xff0c;12 月份将会提供正式版本。 众所周知&#x…

案例解读【淘宝API接口的运用:抓取用户数据从而驱动精准营销

我国网络购物用户规模8.12亿占网民整体80.3%&#xff08;来源&#xff1a;中商产业研究院&#xff09;。由此可见&#xff0c;网络购物逐渐成为人们普遍选择的一种消费方式。作为连接买卖双方的服务方&#xff0c;电商平台掌握了海量的用户数据&#xff0c;用户数据作为一种宝贵…

Mac navicat连接mysql出现1045 - Access denied for user ‘root‘

Mac navicat连接mysql出现1045 - Access denied for user ‘root’ 前提&#xff1a;如果你的mac每次开navicat都连接不上&#xff0c;推荐试试我这个方法 1.打开设置–>找到左下角最下面的MySQL–>点击Stop MySQL Server 2.开启一个终端&#xff0c;依次输入以下命令&a…

将conda虚拟环境打包并集成到singularity镜像中

1. 使用yml文件打包 conda activate your_env conda env export > environment.yml编写cond.def文件 Bootstrap: dockerFrom: continuumio/miniconda3%filesenvironment.yml%post/opt/conda/bin/conda env create -f environment.yml%runscriptexec /opt/conda/envs/$(hea…

京东数据接口|电商运营中数据分析的重要性

在电商运营中&#xff0c;数据分析是非常重要的一环&#xff0c;它可以帮助电商企业更好地了解市场、了解消费者、了解产品、了解销售渠道等各种信息&#xff0c;从而制定更为科学有效的运营策略&#xff0c;提高销售效益。 数据方面用户可以直接选择使用数据接口来获取&#…

VMvare虚拟机安装国产麒麟V10桌面操作系统

一、系统下载 进入银河麒麟官网&#xff1a;https://www.kylinos.cn/ 选择桌面操作系统&#xff0c;然后进入操作系统版本选择页面&#xff0c;选择银河麒麟桌面操作系统V10 选择后&#xff0c;进入系统介绍页面&#xff0c;然后点击申请试用 点击后进入申请页面&#xf…

mysql基础语法速成版

mysql基础语法速成版 一、前言二、基础语法2.1 数据库操作2.2 MySQL数据类型2.3 表操作2.3.1 表的创建、删除&#xff0c;及表结构的改变2.3.2表数据的增删改查2.3.4 like模糊查询2.3.5 UNION 操作符2.3.6 order by排序2.3.7 group by分组2.3.8 join连接2.3.9 null处理2.3.10 m…

zabbix自定义监控内容和自动发现

6 目录 一、自定义监控内容&#xff1a; 1.明确需要执行的 linux 命令 2.创建 zabbix 的监控项配置文件&#xff0c;用于自定义 key&#xff1a; 3. 在 Web 页面创建自定义监控项模板&#xff1a; 3.1 创建模板&#xff1a; 3.2 创建监控项&#xff1a; 3.3 创建触发器&#…

pdf怎么转成jpg图片格式

pdf怎么转成jpg图片格式&#xff1f;对于大家平时在工作或者生活中的图片使用习惯&#xff0c;经常需要将各种格式的文件转换成易于浏览和使用的JPG格式图片以便保存。如今&#xff0c;因为pdf文件具有更强的稳定性和设备兼容性&#xff0c;PDF文件在平时的电脑使用过程中可以说…

图论第3天----第841题、第463题

# 图论第3天----第841题、第463题 文章目录 一、第841题--钥匙和房间二、第463题--岛屿的周长 ​ 又继续开始修行&#xff0c;把图论这块补上&#xff0c;估计要个5-6天时间。 一、第841题–钥匙和房间 ​ 有向图的遍历。dfs遍历3部曲做&#xff0c;思路也较顺----访问过的&a…

数据结构与算法之堆: Leetcode 313. 超级丑数 (Typescript版)

超级丑数 https://leetcode.cn/problems/super-ugly-number/ 描述 超级丑数 是一个正整数&#xff0c;并满足其所有质因数都出现在质数数组 primes 中。给你一个整数 n 和一个整数数组 primes &#xff0c;返回第 n 个 超级丑数 。题目数据保证第 n 个 超级丑数 在 32-bit 带…

用ffmpeg删除视频的音轨,让视频静音

ffmpeg -i ~/video/video.mp4 -an -vcodec copy ~/video/muteVideo.mp4 删除以后我们查看muteVideo的文件信息&#xff0c;只有一个Stream&#xff1a;video信息了。 再对比看一下video.mp4的信息&#xff0c;是有两个Stream信息&#xff0c;一个video&#xff0c;一个audio。…

【一周安全资讯1007】多项信息安全国家标准10月1日起实施;GitLab发布紧急安全补丁修复高危漏洞

要闻速览 1.以下信息安全国家标准10月1日起实施 2.GitLab发布紧急安全补丁修复高危漏洞 3.主流显卡全中招&#xff01;GPU.zip侧信道攻击可泄漏敏感数据 4.MOVEit漏洞导致美国900所院校学生信息发生大规模泄露 5.法国太空和国防供应商Exail遭黑客攻击&#xff0c;泄露大量敏感…

Java并发编程之ReentrantLock重入锁原理解析

Java并发编程之ReentrantLock重入锁原理解析 在多线程编程中&#xff0c;同步是一种重要的技术&#xff0c;用于控制对共享资源的并发访问。ReentrantLock是Java并发编程库中的一个重要工具&#xff0c;用于实现互斥访问共享资源的目的。ReentrantLock可以理解为一个可重入的互…