CF 1900A Cover in Water 学习笔记

原题链接

传送门

题意

给定多个细胞,细胞有两种情况,一种情况是空的,另一种情况是阻塞的,可以往空的细胞里面装水,可以把装水细胞里面的水转移到另一个细胞里面,阻塞的细胞不能进行任何操作,如果一个空的细胞左右两边的细胞都有水,该细胞也会有水(大概类似于渗透作用),问需要多少水可以使得所有的空细胞里面装满水

代码

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		int n;
		scanf("%d",&n);
		string s;
		cin>>s;
		
		int length=s.size();
		bool flag=false;
		int cnt=0;
		for(int i=0;i<length;i++)
		{
			if(s[i]=='.'&&s[i+1]=='.'&&s[i+2]=='.')	
			{
				flag=true;
				break;
			}
			if(s[i]=='.')	cnt++;
		}
		
		if(flag==true)	printf("2\n");
		else	printf("%d\n",cnt);
	}
	
	return 0;
}

总结

1.遍历所有细胞,发现有连续的三个空细胞,可以把第一个和第三个空细胞装满水,中间的空细胞会因为类似渗透作用的原因充满水,然后把中间的空细胞的水取走,转移到其他空细胞,中间的空细胞又会因为渗透作用充满水,也就是说拥有了源源不断的水,只要出现连续的三个空细胞,只需要两份水,可以满足任意多的空细胞的要求

2.如果没有连续的三个空细胞,有多少个空细胞就需要多少份水

3.字符串长度使用s.zize()来计算

相关推荐
机智的叉烧43 分钟前
前沿重器[57] | sigir24:大模型推荐系统的文本ID对齐学习
人工智能·学习·机器学习
量子-Alex2 小时前
【多模态聚类】用于无标记视频自监督学习的多模态聚类网络
学习·音视频·聚类
吉大一菜鸡2 小时前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
CCSBRIDGE4 小时前
Magento2项目部署笔记
笔记
爱吃西瓜的小菜鸡4 小时前
【C语言】判断回文
c语言·学习·算法
小A1595 小时前
STM32完全学习——SPI接口的FLASH(DMA模式)
stm32·嵌入式硬件·学习
亦枫Leonlew5 小时前
微积分复习笔记 Calculus Volume 2 - 5.1 Sequences
笔记·数学·微积分
岁岁岁平安5 小时前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA5 小时前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
qq_589568105 小时前
数据可视化echarts学习笔记
学习·信息可视化·echarts