CodeForces 625B War of the Corporations

暴力匹配+一点判断

#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <queue>
#include <stack>
#include <map>
#include <vector>
using namespace std;

const int maxn=100000+50;
char s[maxn];
char t[35];
struct Seg
{
    int l,r;
    Seg(int a,int b){l=a;r=b;}
};
vector<Seg>v;
int L,R;

bool CMP(int pos)
{
    bool flag=1;

    for(int i=0;t[i];i++)
    {
        if(t[i]!=s[i+pos]) {flag=0;break;}
    }
    return flag;
}

int main()
{
    scanf("%s",s);
    scanf("%s",t);
    v.clear();

    int lens=strlen(s);
    int lent=strlen(t);

    for(int i=0;i<lens;i++)
    {
        if(CMP(i))
        {
            Seg seg(i,i+lent-1);
            v.push_back(seg);
        }
    }
    int ans;
    if(v.size()==0) ans=0;
    else
    {
        ans=1;
        L=v[0].l,R=v[0].r;
        for(int i=1;i<v.size();i++)
        {
            if(v[i].l<=R) L=v[i].l;
            else
            {
                ans++;
                L=v[i].l;
                R=v[i].r;
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}
时间: 2024-11-05 09:18:56

CodeForces 625B War of the Corporations的相关文章

hiho 1015 KMP算法 &amp;&amp; CF 625 B. War of the Corporations

#1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一只河蟹,于是河蟹就向小Hi和小Ho提出了那个经典的问题:“小Hi和小Ho,你们能不能够判断一段文字(原串)里面是不是存在那么一些……特殊……的文字(模式串)?” 小Hi和小Ho仔细思考了一下,觉得只能想到很简单的做法,但是又觉得既然河蟹先生这么说了,就

Codeforces Round #342 (Div. 2) B. War of the Corporations(贪心)

传送门 Description A long time ago, in a galaxy far far away two giant IT-corporations Pineapple and Gogol continue their fierce competition. Crucial moment is just around the corner: Gogol is ready to release it's new tablet Lastus 3000. This new devic

CodeForces 625B 字符串模拟+思维

题意 给出字符串a与b 可以将a中的单个字符改为# 问最少改多少次 a中就找不到b了 一开始想的是用strstr 因为如果找到 可以将strstr(a,b)-a+1改成# 即改首字母 用while循环strstr来做题 然而改第一个字母不行 因为有可能重叠 比如在lll之中找ll 改了第一个还能找出来 但是其实只改一个就可以了 之后又想是不是能改最后一个 但是用strstr不会... 所以最后想出了暴力扫一遍的神奇解法..因为最多 a是五次方 b是30 最多是3乘十的六次方..结果46ms就好了

Codeforces Round #342 (Div. 2)

怒A三题.虽然有点水 A. Guest From the Past 题意:就说一个人去喝酒,有n块钱,塑料瓶装的就是a块钱一瓶,玻璃瓶装酒是b块钱一瓶,一个玻璃瓶又可以换c块钱,问最多能喝到多少瓶酒 思路:很经典的模拟问题,类那个猴子吃桃,多少核桃又可以换一个桃那种题,不过这个题目有个坑点,看代码把 1 #include<iostream> 2 #include<algorithm> 3 #include<cmath> 4 using namespace std; 5

Codeforces Gym 100002 E &quot;Evacuation Plan&quot; 费用流

"Evacuation Plan" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100002 Description The City has a number of municipal buildings and a number of fallout shelters that were build specially to hide municipal workers in case 

Codeforces Round #304 (Div. 2) -----CF546

A. Soldier and Bananas A soldier wants to buy w bananas in the shop. He has to pay k dollars for the first banana, 2k dollars for the second one and so on (in other words, he has to pay i·k dollars for the i-th banana). He has n dollars. How many dol

CodeForces - 1201B

CodeForces - 1201B 首先和是偶数,最大的数要小于总和的一半 #include <iostream> #include <cstdio> #include <queue> #include <algorithm> #include <cmath> #include <cstring> #define inf 2147483647 #define N 1000010 #define p(a) putchar(a) #de

【codeforces 718E】E. Matvey&#39;s Birthday

题目大意&链接: http://codeforces.com/problemset/problem/718/E 给一个长为n(n<=100 000)的只包含‘a’~‘h’8个字符的字符串s.两个位置i,j(i!=j)存在一条边,当且仅当|i-j|==1或s[i]==s[j].求这个无向图的直径,以及直径数量. 题解:  命题1:任意位置之间距离不会大于15. 证明:对于任意两个位置i,j之间,其所经过每种字符不会超过2个(因为相同字符会连边),所以i,j经过节点至多为16,也就意味着边数至多

weblogic部署war

[HTTP:101216]Servlet: "DispatcherServlet" failed to preload on startup in Web application: "Ldzc.war". org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.neusoft.biz.Impl.BookBizImpl] for bean with n