codeforces round 425 div2
A. Sasha and Sticks
水题,判断一下次数的奇和偶就可以的。
B. Petya and Exam
赛上的时候没有写出来,orz,记录一下吧。
题意:给出一个模式串,可能会有?和*两种符号,*最多有一个。?可以被好的字符代替,*可以被空串,坏的字符,坏的字符串代替,现在给出n个字符串,问这些字符串是否满足要求。好的字符在开头已经给出。
思路:
对于不包含*的串,直接判断?位置的是否都为好字符就ok了。
对于包含*的串,做如下处理,首先把*代表的bad串提取出来,再把模式串中的*擦除,然后将bad串插入模式串中,将现在的模式串与输入的串进行比较。提取bad串所用的方法,不是判断坏字符,因为原字符串可能全是坏字符,而是利用原字符串与现在的字符串的长度的差来从*位置开始提取。这其中用到了string的很多黑科技。
代码:
#include <stdio.h>
#include <string.h>
#include <string>
#include <vector>
#include <iostream>
using namespace std; bool a[]; int pos[]; int main()
{
string s; cin >> s; for (int i = ;i < s.size();i++)
{
a[s[i]-'a'] = ;
} string pa; cin >> pa; int cnt = ; int mark = -; for (int i = ;i < pa.size();i++)
{
if (pa[i] == '?')
{
pos[cnt++] = i;
} if (pa[i] == '*')
{
mark = i;
}
} int n; scanf("%d",&n); if (mark == -)
{
for (int i = ;i < n;i++)
{
bool f = ; string t; string tpa = pa; cin >> t; for (int j = ;j < cnt;j++)
{
if (f) break; int id = t[pos[j]] - 'a'; if (!a[id]) f = ;
else tpa[pos[j]] = t[pos[j]];
} if (tpa != t) f = ; if (f) cout << "NO\n";
else printf("YES\n");
}
}
else
{
for (int i = ;i < n;i++)
{
string t; cin >> t; string tmp = pa; tmp.erase(mark,); int des = t.size() - tmp.size(); if (des < ) cout << "NO\n";
else if (des == )
{
bool f = ; for (int j = ;j < t.size();j++)
{
if (tmp[j] == '?')
{
char c = t[j]; if (!a[c-'a'])
{
f = ;
break;
}
}
else if (tmp[j] != t[j])
{
f = ;
break;
}
} if (f) cout << "NO\n";
else cout << "YES\n";
}
else
{
string bad; bool f = ; for (int j = ;j < des;j++)
{
char c = t[mark+j]; if (a[c-'a'])
{
f = ;
break;
}
else bad.push_back(c);
} if (!f)
tmp.insert(mark,bad); //cout << bad << " " << tmp << endl;; for (int j = ;j < t.size();j++)
{
if (tmp[j] == '?')
{
char c = t[j]; if (!a[c-'a'])
{
f = ;
break;
}
}
else if (tmp[j] != t[j])
{
f = ;
break;
}
} if (f) cout << "NO\n";
else cout << "YES\n";
}
} } return ;
}
codeforces round 425 div2的更多相关文章
- Codeforces Round #539 div2
Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...
- 【前行】◇第3站◇ Codeforces Round #512 Div2
[第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...
- Codeforces Round#320 Div2 解题报告
Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...
- Codeforces Round #564(div2)
Codeforces Round #564(div2) 本来以为是送分场,结果成了送命场. 菜是原罪 A SB题,上来读不懂题就交WA了一发,代码就不粘了 B 简单构造 很明显,\(n*n\)的矩阵可 ...
- Codeforces Round #361 div2
ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...
- Codeforces Round #626 Div2 D,E
比赛链接: Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics) D.Present 题意: 给定大 ...
- CodeForces Round 192 Div2
This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...
- Codeforces Round #359 div2
Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...
- Codeforces Round #360 div2
Problem_A(CodeForces 688A): 题意: 有d天, n个人.如果这n个人同时出现, 那么你就赢不了他们所有的人, 除此之外, 你可以赢他们所有到场的人. 到场人数为0也算赢. 现 ...
随机推荐
- 为什么会有可恶的腾讯电脑管家&怎么干掉它-电脑开机出现腾讯电脑管家-无法卸载腾讯电脑管家
为什么会有可恶的腾讯电脑管家 怎么干掉它 电脑开机出现腾讯电脑管家 无法卸载腾讯电脑管家 某天,趁空闲,升级了一些常用软件,其中就升了新版电脑qq,晚上玩完电脑后关机睡觉,第二天早上开机.出现了图一: ...
- Node的前端化工具
1.页面实时更新 browser-sync start --server --files "css/*.css, *.html,js/*.js"
- 10分钟快速入门Redis
Redis安装 来源:https://github.com/jaywcjlove/handbook 官方编译安装 $ wget http://download.redis.io/releases/re ...
- Java 多线程并发编程之 Synchronized 关键字
synchronized 关键字解析 同步锁依赖于对象,每个对象都有一个同步锁. 现有一成员变量 Test,当线程 A 调用 Test 的 synchronized 方法,线程 A 获得 Test 的 ...
- 云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障
3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月 ...
- Json转model对象,model转json,解析json字符串
GitHub链接: https://github.com/mozhenhau/D3Json D3Json 通过swift的反射特性,把json数据转换为model对象,本类最主要是解决了其他一般jso ...
- 团队作业4——第一次项目冲刺(Alpha版本)2017.11.16
第一次会议:2017-11-16 大家的任务完成的不错^_^,继续努力了. 上图: 忘记照了,额....... 会议主要内容: 1.登录功能的讨论 2. 代码统一 具体分工: 成员 计划任务 遇见难题 ...
- python第三方库requests详解
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...
- 【iOS】Swift GCD-上
尽管Grand Central Dispatch(GCD)已经存在一段时间了,但并非每个人都知道怎么使用它.这是情有可原的,因为并发很棘手,而且GCD本身基于C的API在Swift世界中很刺眼. 在这 ...
- 使用Google 的 gson方式解析json
gson支持解析的类型还是比较全面的,包括JavaBean,List<JavaBean>,List<String>,Map等,使用起来也是比较方便,下面根据代码示例给出总结: ...