Description:

  非 * 号的地方可以放A或B,不能AA或BB,一共有a个A,b个B,问你最多放几个

Solution:
  1.模拟一下,找连续空位长度,如果长度为奇数,则我可以有一个位置放任意一个,否则摆放消耗一定,最后放完了判断一下是不是还有剩下的,有剩下的就都放到任意位置
  Code

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 2e5 + 2e2;
char s[maxn];
int main()
{
int n,a,b;
int numa,numb;
while(~scanf("%d%d%d",&n,&a,&b))
{
numa = a;
numb = b;
scanf("%s",s);
s[n] = '*';
s[n+1]='\0';
int last = -1;
int use = 0;
for(int i = 0;i < n + 1;++i)
{
if(s[i] == '*')
{
int len = i - last - 1;
if(len & 1)use++;
a -= len / 2;
b -= len / 2;
last = i;
}
}
int ret = 0;
if(a <= 0)
{
ret += numa;
a = 0;
}
else ret += numa - a;
if(b <= 0)
{
ret += numb;
b = 0;
}
else ret += numb - b;
ret += min(a+b,use);
printf("%d\n",ret);
}
return 0;
}

  2.小贪心,按位置模拟,能放的时候就先放个数最多,直到结束

  code

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 2e5 + 2e2;
char s[maxn];
int main()
{
    int n,a,b;
    while(~scanf("%d%d%d",&n,&a,&b))
    {
        scanf("%s",s);
        int ret = 0;         for(int i = 0;i < n;++i)
        {
            if(a < b)
                swap(a,b);
            while(s[i] == '.' && i < n)
            {
                if(a > 0)ret++;
                a--;
                swap(a,b);
                i++;
            }
        }
        printf("%d\n",ret);
    }
    return 0;
}

[ 10.05 ]CF每日一题系列—— 962B贪心和思维?的更多相关文章

  1. [ 10.03 ]CF每日一题系列—— 534B贪心

    Descripe: 贪心,贪在哪里呢…… 给你初始速度,结尾速度,行驶秒数,每秒速度可变化的范围,问你行驶秒数内最远可以行驶多少距离 Solution: 贪心,我是否加速,就是看剩下的时间能不能减到原 ...

  2. [ 10.08 ]CF每日一题系列—— 602B

    Description: 一个数组,保证相邻两个元素值得差小于1,问题,最大值和最小值的差 < 1的区间长度最长是多少 Solution: 还是卡了一下,本来以为是模拟就好了,但是卡时间,想来想 ...

  3. [ 10.4 ]CF每日一题系列—— 486C

    Description: 给你一个指针,可以左右移动,指向的小写字母可以,改变,但都是有花费的a - b 和 a - z花费1,指针移动也要花费,一个单位花费1,问你把当前字符串变成回文串的最小化费是 ...

  4. [ 9.10 ]CF每日一题系列—— 186A模拟处理字符串

    Description: 跟你两个不相同的字符串,问你能否将第一个字符串任意两个字母交换一次使得两字符串相同,YES or NO Solution: 一维模拟就好了 #include <iost ...

  5. [ 9.9 ]CF每日一题系列—— 259A黑白棋盘检查问题

    http://codeforces.com/problemset/problem/259/A PS9.8日做了但是忘了发博客,所以坚持3天了呦~ 终于读懂了这个题了,心累 Describe: 给你8 ...

  6. [ 9.29 ]CF每日一题系列—— 765B字符串规律

    Description: 遇到了ogo可以变成***如果ogo后面有go统统忽略,输出结果 Solution: 哎如果我一开始对题意的解读如上的话,就不会被整的那么麻烦了 Code: #include ...

  7. [ 9.24 ]CF每日一题系列—— 468A构造递推

    Description: 1 - n个数问你能否经过加减乘除这些运算n -1次的操作得到24 Solutrion: 一开始想暴力递推,发现n的范围太大直接否决,也否决了我的跑dfs,后来就像肯定有个递 ...

  8. [ 9.22 ]CF每日一题系列—— 484A Bits

    Description: 给你一个l,r的区间让你找一个最小的x并且其二进制数要包含最多的1位,输出它的十进制 Solution: 我本来就是贪心,但是贪大了,想1一直往上添加1,但是忘记了0在中间的 ...

  9. [ 9.28 ]CF每日一题系列—— 940A规律构造

    Description: 输入a,b,x,给你a个0,b个1,你要给出一个组合,让这个组合里存在x位,使得这x为和其x+1位不相等 Solution: 因为肯定有一个正确的答案,所以钻了一下空子,贪心 ...

随机推荐

  1. MySQL8.0.15安装教程(Windows)

    下载 第一步 去官网下载社区版本(GPL版本) 第二步 不登录,直接选下方的跳过 下载解压后 配置系统环境变量 复制解压后的mysql到C盘或者其他磁盘下 我们去系统的环境变量的path里添加一个my ...

  2. 对webdriver-driver句柄的理解

    先贴代码: from selenium import webdriver    //首先导入selenium(webdriver)相关模块 driver = webdriver.Firefox()  ...

  3. nio实现原理

    nio是事件驱动,当soket有消息过来时才开启线程,bio每当有连接时,就开启一个线程,长连接的话,就有太多的空闲连接占用线程内存 nio是非阻塞长连接 ServerSocketChannel:饭店 ...

  4. 怎么清理Linux系统磁盘空间占用大:/dev/xvda1

    1.首先查看磁盘占用情况 df -h Filesystem      Size  Used Avail Use% Mounted on/dev/xvda1       20G   18G  621M  ...

  5. jmeter的各种调用

    1. 开发将dubbo协议的接口转化成了webservices后,jmeter直接添加http请求,输入网址就好,但是这种需要增加开发测试页面的工作量 2.jmeter自身无法调用zk连接服务器(Jm ...

  6. Webmagic 爬虫框架 爬取马蜂窝、携程旅游、汽车之家游记信息

    WebMagic学习 遇到的问题 Log4j错误 解决:在src目录下添加配置文件 log4j.properties log4j.rootLogger=INFO, stdout, file log4j ...

  7. ECMA262学习笔记(一)

    Question1:怎样理解ECMAScript对象? Answer:ECMAScript对象是属性的集合,每个属性又有零个或者多个特性(如:writable).属性是持有其他对象.原始值.函数的容器 ...

  8. ABB机器人设置安全区(案例版)

    ABB机器人设置安全区.中断(案例版) 1.概述 在如今机器人中普遍会设置机器人的安全区域,也可以理解为工作范围.主要目的是为了机器人运行时的安全性和可靠性.ABB机器人也不例外,下面我们就讲讲ABB ...

  9. 00.pt-toolkit 目录

    一. 好用便利的工具,常用 pt-align 对齐文本格式pt-archiver 循序渐进的归档表,删除表,迁移数据pt-config-diff 对比不同配置文件.服务器配置参数pt-diskstat ...

  10. skyline开发——读取Shapefile要素属性

    double len; IFeatures66 features = featureLayer.FeatureGroups.Polyline.GetCurrentFeatures(); foreach ...