8.14比赛j题 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87813#overview

就我个人来说我觉得这道题其实不用写题解,只是因为做的时候错了一次,如果不是队友细心,我根本会错下去,所以我感觉自己必须强大#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<queue>
#include<algorithm>
using namespace std;
#define N 300100

int n, m, cnt;
char str[N];
int v[N];
void solve(int a, char b);

int main()
{
    while(scanf("%d%d", &n, &m)!=EOF)
    {
        cnt=0;
        getchar();
        gets(str);
        memset(v, 0, sizeof(v));

        for(int j=1; j<n; j++)
        {
            if(str[j]==‘.‘&&str[j-1]==‘.‘)
            {
                v[j]++;
            }
            cnt+=v[j];
        }

        while(m--)
        {
            int a;
            char b;
            scanf("%d %c", &a, &b);
            solve(a, b);
        }
    }
}

void solve(int a, char b)
{
    int ans=0;
    int i=a-1;
    if(b!=‘.‘&&str[i]==‘.‘)
    {
        str[i]=b;
        if(str[i-1]==‘.‘)
            cnt-=1;//v[i]-=1;
        if(str[i+1]==‘.‘)
            cnt-=1;//v[i+1]-=1;
    }
    else if(b==‘.‘&&str[i]!=‘.‘)
    {
        str[i]=b;
        if(str[i-1]==‘.‘)
            cnt+=1;//v[i]+=1;
        if(str[i+1]==‘.‘)
            cnt+=1;//v[i+1]+=1;
    }
    ans=cnt;
    printf("%d\n", ans);
}
时间: 2024-10-09 05:44:28

8.14比赛j题 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87813#overview的相关文章

暑假集训第一周比赛C题http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83146#problem/C

C - 学 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表四张卡片上的数字(0<=数字<=9),如

暑假集训第一周比赛G题http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83146#problem/G

G - 向 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果. Input 每行包含一个

POJ-3126 暑假集训-搜索进阶F题http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/F

经验就是要认真细心,要深刻理解.num #include<iostream>#include<algorithm>#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#include<ctype.h>#include<queue>using namespace std;#define N 11000 typedef struc

POJ3156 暑假集训-最短路H题floyd http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82829#rank

  http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82829#rank#include<iostream> #include<algorithm> #include<string.h> #include<stdio.h> #include<stdlib.h> #include<ctype.h> #include<limits.h> #include<mat

HDU5120 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93642#problem/I

这题求的是圆环相交的面积,画图可知  圆环相交面积=大交大-2×大交小+小交小 这题需要用到圆的相交面积公式 AC代码: 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #include <algorithm> 5 #define exp 1e-10 6 #define PI 3.141592654 7 using namespace std; 8 typedef long l

HDU2612 -暑假集训-搜索进阶N http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/N

这两天总是因为一些小错误耽误时间,我希望自己可以细心点.珍惜时间,珍爱生命!#include<iostream> #include<algorithm> #include<string.h> #include<ctype.h> #include<stdio.h> #include<stdlib.h> #include<math.h> #include<limits.h> #include<queue>

http://acm.hust.edu.cn/vjudge/contest/125771#problem/B 很水的01

Description Farmer John recently bought another bookshelf for the cow library, but the shelf is getting filled up quite quickly, and now the only available space is at the top. FJ has N cows (1 ≤ N ≤ 20) each with some height of Hi (1 ≤ Hi ≤ 1,000,00

http://acm.hust.edu.cn/vjudge/contest/125771#problem/F 动态01背包

Description Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了.要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的.Speakless没有多少钱,总共只攒了n万美元.他将在m个学校中选择若干的(当然要在他的经济承受范围内).每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b.不同学校之间是否得到offer不会互相影响.“I NEED A OFFER”,他大叫一

KMP(http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&amp;problemid=2772)

#include <stdio.h>#include <string.h>#include <stdlib.h>char a[1000001],b[1000001];int next[1000001];int l,l2;void Getnext(){ int i=0; int j=-1; next[0]=-1; while(i<l2) { if(-1==j||b[i]==b[j]) { i++; j++; next[i]=j; } else j=next[j];