【Gym 101775】 H. H. Mr. Panda and Birthday Song(动态规划,分类讨论)

LwIP 之六 详解内存池(memp.c/h)动态内存管理策略 对于嵌入式开发来说,内存管理及使用是至关重要的,内存的使用多少、内存泄漏等时刻需要注意!合理的内存管理策略将从根本上决定内存分配和回收效率,最终决定系统的整体性能。LwIP 就提供了 动态内存堆管理(heap)和 动态内存池管理(pool)两种简单却又高效的动态内存管理机制。 阅读详情

https://codeforc.es/gym/101775/problem/H

题意

  1. 连续出现元音长度 >= x || 连续出现辅音长度 >= y ,输出DISLIKE。
  2. 连续出现元音长度 < x && 连续出现辅音长度 <y,输出LIKE。
  3. 即满足1又满足2,输出SURPRISE。

题解

对于1,直接贪心求最大的连续元音/辅音次数,即遇到?时,元/辅音都+1。

对于2,采用dp。
0: 元音,1:辅音
设 d p [ i ] [ 0 / 1 ] dp[i][0/1] dp[i][0/1]:到第i位时连续的元/辅音最小长度。
状态转移:

  1. ch == 元音
    d p [ i ] [ 0 ] = d p [ i − 1 ] [ 0 ] + 1 , d p [ i ] [ 1 ] = 0 dp[i][0] = dp[i-1][0]+1,dp[i][1] = 0 dp[i][0]=dp[i−1][0]+1,dp[i][1]=0
  2. ch == 辅音
    d p [ i ] [ 1 ] = d p [ i − 1 ] [ 1 ] + 1 , d p [ i ] [ 0 ] = 0 dp[i][1] = dp[i-1][1]+1,dp[i][0] = 0 dp[i][1]=dp[i−1][1]+1,dp[i][0]=0
  3. ch == ?
    如果dp[i-1][0]+1 < x,那么便可以把?变成元音
    d p [ i ] [ 0 ] = d p [ i − 1 ] [ 0 ] + 1 , d p [ i ] [ 1 ] = 0 dp[i][0] = dp[i-1][0]+1,dp[i][1] = 0 dp[i][0]=dp[i−1][0]+1,dp[i][1]=0
    否则
    只能是辅音 d p [ i ] [ 1 ] = 1 dp[i][1] = 1 dp[i][1]=1
    如果dp[i-1][1]+1 < y,那么便可以把?变成辅音
    d p [ i ] [ 1 ] = m i n ( d p [ i ] [ 1 ] , d p [ i − 1 ] [ 1 ] + 1 ) , d p [ i ] [ 0 ] = 0 dp[i][1] = min(dp[i][1],dp[i-1][1]+1),dp[i][0] = 0 dp[i][1]=min(dp[i][1],dp[i−1][1]+1),dp[i][0]=0
    否则
    只能是元音 d p [ i ] [ 0 ] = 1 dp[i][0] = 1 dp[i][0]=1

只要遇到 d p [ i ] [ 1 ] &gt; = y dp[i][1] &gt;= y dp[i][1]>=y && d p [ i ] [ 0 ] &gt; = x dp[i][0] &gt;= x dp[i][0]>=x,那就不可行。

代码

#include <bits/stdc++.h>
using namespace std;
#define FOR0(a,b) for(int i = a; i < b; ++i)
#define FORE(a,b) for(int i = a; i <= b; ++i)
typedef long long ll;
typedef pair<int,int> pii;
/*
0: 元音 1: 辅音
dp[i][0/1]:  到第i位为止连续 元音/辅音 最小的个数

if(ch == 元音) {
	dp[i][0] = dp[i-1][0]+1;
	dp[i][1] = 0;
}
if(ch == 辅音) {
	dp[i][1] = dp[i-1][1]+1;
	dp[i][0] = 0;
}
if(ch == ?) {
	if(dp[i-1][0]+1 < x) {
		dp[i][0] = dp[i-1]+1
		dp[i][1] = 0;
	} else 
		dp[i][1] = 1;
	if(dp[i-1][1]+1 < y) {
		dp[i][1] = min(dp[i][1],dp[i-1][1]+1);
		dp[i][0] = 0;
	} else 
		dp[i][0] = 1;
}
*/
const int maxn = 1e6+5;
char s[maxn];
int dp[maxn][2];

bool ok(char ch) {
	return ch == 'a' || ch == 'e' || ch == 'i' || ch =='o' || ch == 'u';
}
int main() {
	int T;
	scanf("%d", &T);
	for(int kas = 1; kas <= T; ++kas) {
		scanf("%s", s+1);
		int n = strlen(s+1);
		int x,y;
		scanf("%d%d", &x, &y);
		int yuan = 0, fu = 0;
		int my = 0, mf = 0;
		bool dislike = false, like = true;
		for(int i = 1; i <= n; ++i) {
			if(s[i] == '?') {
				yuan++; fu++;
			} else if(ok(s[i])) {
				yuan++; fu = 0;
			} else {
				fu++; yuan = 0;
			}
			my = max(my,yuan);
			mf = max(mf,fu);
		}
		if(my >= x || mf >= y) dislike = true;
		memset(dp, 0x3f3f3f3f,sizeof dp);
		dp[0][0] = dp[0][1] = 0;
		for(int i = 1; i <= n; ++i) {
			if(s[i] == '?') {
				if(dp[i-1][0]+1 < x) {
					dp[i][0] = dp[i-1][0]+1;
					dp[i][1] = 0;
				} else 
					dp[i][1] = 1;
				if(dp[i-1][1]+1 < y) {
					dp[i][1] = min(dp[i][1],dp[i-1][1]+1);
					dp[i][0] = 0;
				} else 
					dp[i][0] = 1;
			} else if(ok(s[i])) {
				dp[i][0] = dp[i-1][0]+1;
				dp[i][1] = 0;
			} else {
				dp[i][1] = dp[i-1][1]+1;
				dp[i][0] = 0;
			}
			if(dp[i][0] >= x || dp[i][1] >= y) {
				like = false;
				break;
			}
		}
		printf("Case #%d: ", kas);
		if(dislike && like) 
			puts("SURPRISE");
		else if(dislike)
			puts("DISLIKE");
		else if(like) 
			puts("LIKE");
	}
	return 0;
}
存内计算路线再获加持,清华存内芯片登Science 通过这种方法,可以比较有效的控制二氧化铪忆阻层中的微观变化,以及内部的温度和电场,使得器件具有非常优异的电学特性,而且可以在工厂里大规模生产,推动了高性能忆阻器阵列的诞生。团队搭建了全硬件构成的完整存算一体系统,如下图7所示,在系统里集成了多个忆阻器阵列,并在该系统上高效运行了卷积神经网络算法,成功验证了图像识别功能,证明了存算一体架构全硬件实现的可行性,并且成功实现了以更小的功耗和更低的硬件成本完成复杂的计算[6]。根据测试,在一般神经网络中权重更新的最后阶段,调整步长非常接近0,如图9(C)所示, 阅读详情

相关推荐

沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第六章 接收端结构及功能说明

总目录在这哦~ https://blog.csdn.net/z123canghai/article/details/107700878 第六章 接收端结构及功能说明 子目录 6.1 RX的模拟前端 6.2 RX的OOB信号 6.3 RX的均衡器 6.4 RX的CDR 时钟数据恢复 6.5 RX时钟输出结构 6.6 RX 的极性控制 6.7 RX 的PRBS 6.8 Rx字节、字的对齐功能 6.9 Rx接收弹性缓冲区 6.10 Rx的时钟纠正 6.11 Rx接收通道绑定 6...

滄海的博客 1万+

动态库编写 头文件.h注意事项

比如 log.h log.c 其中log.h 就几个函数的定义,用到的头文件很少。 但是log.c文件里面会有很多函数的实现,用到比如 #include <string.h> #include <time.h> #include <limits.h> #include <signal.h> #include <unistd....

奋斗在路上的博客 4193

商店销售预测(回归&随机森林)

通过准备线性回归的数据,我们发现了一些有趣的见解,包括周末的销售增长,公共部门支付工资时的销售增长,以及11月和12月的销售增长。如果我们选择包括这些,我们可能会得到更好的结果,但在这个时候,我们不会用它来做任何预测,而是将转向另一种可能给我们更好的结果的技术。在Kaggle竞赛中,要求我们应用时间序列预测,根据厄瓜多尔大型杂货零售商Corporación Favorita的数据预测商店销售情况,建立一个模型,准确地预测在不同商店销售的商品的单位销量。在快速查看我们的训练数据集之后,我们可以看到有很多零。

qq_45791012的博客 4749

【tensorrt】——dimensions not compatible for elementwise

tensorrt, dynamic shape 1. 问题 trtexec对onnx动态H,W的模型转换时的报错。 Resize_53 [Resize] inputs: [715 -> (-1, 128, -1, -1)], [454 -> ()], [455 -> ()], [453 -> (4)], [09/10/2021-10:49:20] [V] [TRT] ImporterContext.hpp:154: Registering layer: Resize_53 fo.

怡宝2号 1684

FRM模型五:Brinson业绩归因

利用Brinson对基金组合业绩进行归因分析。

stonesssssss的博客 3003

ads传统功放设计笔记(3)

传统功放设计的流程一般包括以下这些步骤: 1、明确设计目标 2、选择功放管子 3、确定静态工作点 4、设计偏置电路 5、判断稳定性 6、负载与源牵引 7、输入输出阻抗匹配 8、原理图优化 9、大信号仿真 10、版图设计 11、版图联合仿真 12、pcb设计 第二节我们设计仿真了功放的原理图。之后我们需要对版图进行设计和仿真。 10、版图设计 首先将S参数控件都打叉,还要去掉电源、源负载阻抗、地、芯片、电容。在原先电容和芯片的位置加上gap,设置好长度和间隔。之后在电源引脚、输入输出引脚和隔离的两端加上端口。

qq_40995480的博客 6025

2017-2018 ACM-ICPC Asia East Continent League Final H - Mr. Panda and Birthday Song(DP)

题意 给定一个串,需要把???改成任意小写字母,形成新的串sss 连续出现元音长度 >= x || 连续出现辅音长度 >= y ,输出DISLIKE。 连续出现元音长度 < x && 连续出现辅音长度 <y,输出LIKE。 即满足1又满足2,输出SURPRISE。 考虑每个位置要么是元音要么是辅音 我们可以得到为元音时的最短连续长度和为辅音的最短连续长度 这样就可以分开dpdpdp作决策 f[i][0/1]f[i][0/1]f[i][0/1]表示以iii结尾的最短连

jziwjxjd的博客 442

esp32c6 开发实战:低功耗蓝牙(BLE)开发

蓝牙栈在此程序流程中已经启动并运行,但是应用程序的功能尚未定义。功能的定义是通过响应事件来实现的,当其他设备尝试读取或写入参数以及建立连接时就会触发事件回调函数处理。BT控制器在控制器端实现主机控制器接口(HCI),链路层(LL)和物理层(PHY)。BT控制器对用户应用程序不可见,并处理BLE堆栈的较低层。蓝牙堆栈(Bluedroid stack)定义了经典蓝牙(BT Classic)和低功耗蓝牙(BLE)的通用定义和API。的判断)等对于启动低功耗蓝牙来说不重要的代码,函数初始化和启用BT控制器。

月入鱼饵的博客 2740

C++动态内存管理

stdlib.h动态内存管理 //=================================================================================== 1.1.概念: 1) 栈:在函数内部声明的所有变量都将占用栈内存。 2) 堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。 //=========================...

tcy-阿春 484

IEEE论文投稿必看:PDF eXpress报错font not embedded的3种修复方法(附Adobe Acrobat DC操作截图)

本文针对IEEE论文投稿时PDF eXpress系统常见的“font not embedded”报错,提供了三种核心修复方案。首先,详细解析了使用Adobe Acrobat DC进行专业修复的完整操作流程与关键技巧。其次,介绍了无需付费软件的开源与免费工具链(如Ghostscript)解决方案。最后,从源头出发,指导LaTeX和Microsoft Word用户在生成PDF时正确设置以确保字体自动嵌入,帮助研究者彻底解决格式问题,确保投稿顺利。

ujm56789012的博客 516

嵌入式工程师成长之路(3)——PCB设计

带有目的的学:要知道,PCB板子做出来需要我们给厂家哪些东西,我们设计板子的时候,需要遵循哪些设计规范,防止画好也是块废板子。然后再逐步开始学习画板。

云轩阁 8万+

动态规划入门H - 合唱队形 (最优子序列的另一个应用,这里是最优递增和最优递减子序列的结合)...

题目:H - 合唱队形 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > ...

weixin_33742618的博客 463

AIGC算法工程师-面试八股文-2025年版本-算法八股文/工程八股文/开放式问题

​两年前整理了《AIGC算法工程师 面试八股文》,全网一共有100w读者看过,收到了很多小伙伴的催更。Diffusion的技术发展非常快,博主特意整理了最近两年最新的八股文,内容非常全面,涵盖算法八股文/工程八股文/开放式问题三个大类,希望能为求职的读者们带来帮助。

沉迷单车的追风少年 4181

Mr. Panda and Birthday Song Gym - 101775H

https://cn.vjudge.net/problem/Gym-101775H #include <iostream> #include <cstring> #include <queue> #include <vector> #include <algorithm> #include <cstdio> #inclu...

newhonor 221

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

精雕软件(JDpaint) 5.5 绿色版

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

gym 101775 H - Mr. Panda and Birthday Song

题解:          ①我们要找到是否存在一种(连续元音字母的长度&gt;=x的填字母的方法,或者连续辅音字母的长度&gt;=y的方法)满足一种就存在一种DISLIKE的songs。这种情况直接贪心就好,‘?’的地方全填元音,或者全填辅音。         ②我们还要找到一种情况(连续的元音字母的长度&lt;x并且连续的辅音字母的长度&lt;y)这种填字母方式要同时满足两种情况。 考虑到...

qq_18869763的博客 642

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

动态GIF库gif-h的使用教程

`gif-h` 是一个简单的C++单头文件库,用于创建从图像数据生成的动画GIF。该项目由Charlie Tangora开发,旨在提供一个轻量级且易于集成的方式来让程序输出动画。目前只支持输入RGBA8格式(虽然alpha通道被忽略)。通过调用几个关键函数,你可以轻松地管理GIF的创建过程。 ## 2. 项目快速启动 首先,确保你已经将`gif-h`库克隆到本地: ```bash git c

gitblog_01189的博客 1272

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mysql.h 动态编译命令_Apache静态编译与动态编译详解

Apache拥有4层结构,从核心到外层的module。而外层的module可以用通过静态和动态两种方式与Apache共同工作。这也就引入下文的“动态”和“静态”两种编译安装方式:静态编译:编译的时候,所有的模块自己编译进httpd这个文件中,启动Apache的时候这些模块就已经加载进来了,可以直接来使用,而不用再 httpd.conf 中在 LoadModule 来加载,只要在 中来配置就可...

weixin_34146759的博客 1123

2019 CCPC final

文章目录比赛分析题目分析A题:Kick StartB题:Infimum of PathsC题:Mr. Panda and TypewriterD题:Pulse NovaE题 Non-Maximum SuppressionF题:FerryG题:Game on the TreeH题 Mr. Panda and SADI题:Mr. Panda and BlocksJ题:Wire-compatible Protocol bufferK题:Russian Dolls on the Christmas TreeL题:.

bleak_dream的博客 1054

Gym 101775H(dp)

传送门 题面: H. Mr. Panda and Birthday Song time limit per test 3.0 s memory limit per test 256 MB input standard input output standard output Mrs. Panda’s birthday is coming. Mr. P...

weixin_30539835的博客 215

mysql.h 动态编译命令_Linux下gcc编译生成动态连接库*.so文件并调用它

Linux下gcc编译生成动态连接库*.so文件并调用它node动态库*.so在linux下用c和c++编程时常常会碰到,最近在网站找了几篇文章介绍动态库的编译和连接,总算搞懂了这个以前一直不太了解得东东,这里作个笔记,也为其它正为动态库连接库而苦恼的兄弟们提供一点帮助。1、动态库的编译下面经过一个例子来介绍如何生成一个动态库。这里有一个头文件:so_test.h,三个.c文件:test_a.c、...

weixin_32819265的博客 1314

vue中的h

h是一个 JavaScript 函数,用来创建虚拟 DOM 节点。它通常作为render函数的一部分被使用,可以代替 Vue 的模板语法进行视图渲染。h的全称是,它的参数可以是组件、元素类型、属性和子节点。hh函数是 Vue 3 中构建虚拟 DOM 的重要工具,能够让开发者更细致地控制 Vue 组件的渲染。通过h,你可以更灵活地创建元素、传递属性和子节点,以及在运行时动态决定渲染内容。虽然通常 Vue 的模板语法已经足够方便,但在某些情况下,使用h可以提供更强的控制力,尤其是在需要动态渲染复杂内容时。

motoudi的博客 1136

gif-h动态GIF生成终极指南:三行代码搞定专业动画

还在为生成动态GIF而头疼吗?gif-h库让你用最简单的方式创建专业的动画效果。这个轻量级的C++单头文件库,专为程序化生成动画而生,无论你是开发可视化工具、制作演示动画,还是游戏截图功能,都能轻松应对。 ## 使用场景:什么时候需要动态GIF生成 想象一下这些实际应用场景:你的程序需要生成操作步骤演示、游戏画面录制、数据可视化动画,甚至是简单的加载动画。传统的视频格式过于复杂,而静态图片又无

gitblog_00635的博客 1457

动态图(黑色)

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=hand; this.alt=点击查看大图; this.title=点击查看大图;}" src="http://p9.images22.51img1.com/6000/ndyali/98a33475b1ad423dc5

小小的素材库 1097

探索GitCode上的GIF-H: 一个高效动态图处理工具

是一个由 Ginsweater 开发的轻量级工具,专注于优化和处理动态图像(GIF)。对于需要频繁处理动画效果或在网络应用中使用GIF的开发者来说,它提供了一个简单易用、高性能的解决方案。 ## 技术分析 GIF-H 底层基于 Rust 编程语言,这使得它在处理速度和资源占用上具有显著优势。Rust 的内存安全特性和并发能力确保了 GIF-H 在处理大量数据时的稳定性和效率。项目使用了 [im

gitblog_00072的博客 1308

【LeetCode】不同的子序列 [H](动态规划)

LeetCode 115:给定两个字符串S和T,返回S的所有子序列中有多少个子序列的字面值等于T。采用动态规划求解。

小七的博客 499

Hbase之动态切换HMaster

node01机器上有hbase主节点和Namenode,随着数据的增加,node01负载现在处于90%的状态内存也处于90%左右。 现在要求`不重启切换一下Hbase主节点`,切换到负载低的机器上

南风知我意 1317
上一篇: 【Gym 101775】Problem L SOS(博弈)
下一篇: 【2018 ccpc-final Gym 102055】B.Balance of the Force(枚举最大值)
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值