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也算赢. 现 ...
随机推荐
- NGUI_Font
三.NGUI中的UI字体制作 1.概述: 系统中提供的字体 比较少,而UI字体又是使用最为频繁的,不能因为单一的字体而损失用户量,则这个时候我们就可以通过Font Maker进行字体的制作. 2.动态 ...
- org.hibernate.PersistentObjectException: detached entity passed to persist
简单地来看,将一个游离的对象要被持久化(save)时报错. 我们知道要持久化对象时候,通常Hibernate会根据ID生成策略自动生成ID值,但是这个对象ID已经有值,所有抛错.这个错误会出现在配置如 ...
- 使用git将本地代码传到github
方法可能有些小小的差别,但是最终的结果都是一样的 在github上新建代码仓库 确定之后会显示一个仓库的url,复制下来 在本地找一个作为本地仓库的文件夹右键Git Bash Here打开git 把g ...
- postman简单教程-环境变量,全局变量的设置及作用
讲postman环境变量设置之前,先讲一个小插曲,环境变量.全局变量的区别在于Globals,只能用一组,而Environmen可以设置多组,所以我更喜欢设置环境变量 1.环境变量-Environme ...
- /etc/nginx/nginx.conf配置文件详解
user nginx; #数值和cpu核数个数一致worker_processes 8; #worker与cpu绑定 worker_cpu_affinity 0001 0010 0100 1000 1 ...
- vue-axios基本用法
废话不多说,直接搞事搞事. 首先安装axios: 1):npm install 2):npm install vue-axios --save 3):npm install qs.js --save ...
- JS常见操作,日期操作,字符串操作,表单验证等
复制代码 //第一篇博文,希望大家多多支持 /***** BasePage.js 公共的 脚本文件 部分方法需引用jquery库 *****/ //#region 日期操作 //字符串转化为时间. f ...
- Leetcode 27——Remove Element
Given an array and a value, remove all instances of that value in-place and return the new length. D ...
- [高级软件工程教学]团队Beta阶段成绩汇总
一.作业地址: https://edu.cnblogs.com/campus/fzu/AdvancedSoftwareEngineering/homework/1501 二.Beta冲刺课堂答辩 1. ...
- C语言嵌套循环作业
一.PTA实验作业 题目1:7-4 换硬币 1. 本题PTA提交列表 2. 设计思路 1.定义fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量,co ...