首页 > 其他分享 >CF1900 A Cover in Water 题解

CF1900 A Cover in Water 题解

时间:2023-11-27 13:00:10浏览次数:29  
标签:ch 格子 int 题解 ret Water CF1900 操作

Link

CF1900 A Cover in Water

Question

给出一个 \(n\) 个格子,有些格子被堵塞了,有些格子是空的,我需要在进行一些操作,使得所有空的格子里面都有水

  • 操作 1:给任意一个格子装上水
  • 操作 2:把一格水从一个地方搬运到另外一个空的格子里

如果一个空的格子的相邻的两个格子都有水,那么这个格子也有水

求把所有格子里面都有水进行的最少操作 1 次数

Solution

如果是 #.# 中间空一个,就只能放一格水,操作 1 次数一次

如果是 #..# 中间空两个,就只能放两格水,操作 1 次数两次

如果是 #...# 中间空大于两个,可以中间空一个放两格水,中间就相当于生成了一个无限生成水的格子,用操作二把这个格子生成的水搬运到别的地方,答案就是二

如果不存在中间空大于两个的格子,就只能一格一格用操作一放水

Code

#include<bits/stdc++.h>
using namespace std;
inline int read(){
    int ret=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-f;ch=getchar();}
    while(ch<='9'&&ch>='0')ret=ret*10+ch-'0',ch=getchar();
    return ret*f;
}

int a[105];
void solve(){
    int N=read(),ans=0;
    for(int i=1;i<=N;i++){
        char ch=getchar();
        while(ch!='.'&&ch!='#') ch=getchar();
        a[i]=(ch=='#');
    }
    a[0]=1;a[N+1]=1;
    for(int i=0;i<=N+1;i++){
        if(a[i]) continue;
        int j=i;
        while(j<=N+1&&a[j]==0) j++;
        if(j-i==1) ans+=1;
        else if(j-i==2)ans+=2;
        else {
            printf("%d\n",2);
            return ;
        }
        i=j;
    }
    printf("%d\n",ans);
    return ;
}
int main(){
    // freopen("A.in","r",stdin);
    int T=read();
    while(T--) solve();
}

标签:ch,格子,int,题解,ret,Water,CF1900,操作
From: https://www.cnblogs.com/martian148/p/17859008.html

相关文章

  • Live Server插件打开浏览器时:该网页无法正常运作,127.0.0.1未发送任何数据的问题解决
    一、问题复现今天使用VsCode写HTML代码时,使用LiveServer打开预览时,发现浏览器显示“该网页无法正常运作,127.0.0.1未发送任何数据”的问题。二、解决办法1.在左侧工具栏找到扩展商店,找到LiveServer,然后点击对应的小齿轮,进入插件设置。2.选择ExtensionSettings3.进入......
  • ABC330 A-E 题解
    ABC330题解AtCoderBeginnerContest330A-CountingPasses思路:枚举一遍,当前数大于\(L\)使\(ans+1\)即可.代码:#include<iostream>#defineintlonglongusingnamespacestd; intn,l,ans;intx; signedmain(){ cin>>n>>l; for(inti=1;i&......
  • Information Graph 题解
    题目链接InformationGraph分析在线并不好做,考虑离线,先将树建出来\(2\)操作时\(x\)节点与当前根节点之间的点都会获得文件当前根节点可以用并查集维护对于查询的节点判断它是否为链上的点即可具体的,若该节点为\(rt\)子树中的点且该节点的子树包含\(x\)节点,它就......
  • P8706 [蓝桥杯 2020 省 AB1] 解码 ( 入门 ) 题解
    题目传送门思路:有一个原串\(t\)。将原串\(t\)转换成简写字符串\(s\)的规则如下:如果有连续的\(2\sim9\)个相同字母,那么可以将它改为字母+数字的格式。如果是单独的字符,也就是与左右两边的字母都不相同,在简写字符串中一模一样。所以,现在告诉我们简写字符串,要我们求出......
  • ICPC2022Xian G Perfect Word 题解
    LinkICPC2022XianGPerfectWordQuestion给出\(n\)个串,我们称\(t\)串是"good"当且仅当\(t\)的所有子串都在\(n\)个串中出现过问最长的"good"的串的长度Solution由于所有串的子串个数为\(L\times(L+1)/2\),\(L\)为串的长度所以”good“串的长度不会大......
  • ICPC2022Xian E Find Maximum 题解
    LinkICPC2022XianEFindMaximumQuestion定义\(f(x)\)求Solution通过打表我们可以发现\(f(x)\)表示三进制表达中有效位数与数码和之和接下来考虑如何获得最大的\(f(x)\)贪心的去考虑,假设答案为\(Ans\),\((Ans)_3\)肯定是前几位和\((R)_3\)的前几位一样,然后某一......
  • Linux_sqlcmd或者是Cloudquery连接SQLSERVER2012的问题解决
    Linux_sqlcmd或者是Cloudquery连接SQLSERVER2012的问题解决背景最近想使用shell脚本给SQLServer数据库插入数据,但是发现了报错同时进行CLoudquery连接SQLServer数据库时也出现了异常.作为笔记记录一下问题和解决方法sqlcmd的问题现象sqlcmd的提示信息第一:安装sudo......
  • Reference and inspiration from China's strategy for addressing water pollution i
     AccordingtoChina'sthreelineonepermitmeasures,webelievethatthishasacertainreferencevalueforwaterpollutionissuesinAfrica.The"threelines"referstotheecologicalprotectionredline,theenvironmentalqualitybottom......
  • warning: Signature not supported. Hash algorithm SHA1 not available 问题解决
    在使用RockyLinux安装服务的时候碰到此问题,记录下解决方法update-crypto-policies--setLEGACY参考资料https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9......
  • 【luogu题解】T378828 位运算
    位运算题目背景题目由daiyulong20120222创作(me)并由QBW1117完善以及数据。题目描述给定两个数\(x,y\),在给定一个位运算符号\(c\)。请你列出\(x,y\)进行\(c\)位运算是的算数竖式式。注:竖式这么列:显示出两个数的完整二进制,包括前导零。32个'-'。显示出......