博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces 906C
阅读量:5116 次
发布时间:2019-06-13

本文共 1617 字,大约阅读时间需要 5 分钟。

codeforces 906C

introduction

这道题要充分理解题意和输入的意思。

method

可以用集合的思想的做

集合\(A\)表示可行的字母,初始是\(26\)个字母
集合\(B\)表示每一句操作的字符的集合
集合\(C\)表示猜过的字符的集合
每读入一个动作,
如果\(|A|>1\)我们做如下操作:
\[ A= \begin{cases} A\cap B, & \text{if $op$ is !} \\ A\setminus B, & \text{if $op$ is .}\\ update \ C, A\setminus C,&\text{if $op$ is ?} \end{cases}\\ op \in \{!, . , ?\} \]
如果\(|A|=1\):
统计多余的次数

tips

  • set的初始化方法
  • set_intersectionset_difference的用法
  • 关闭cinstdio的同步
  • cin接受行末的\n

Q&A

conclusion

做这道题学到了很多新的知识,尝试使用STL中的set来解决问题。

如果WA是因为思路有问题,那么可以查看别人AC的代码的测试数据,可以作为判断问题的依据。为codeforces打call。

reference

code

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define DEBUG(x) cout<<#x<<" = "<
<
input;set
cndt;set
ask;void fillcndt(){ for(int i=0;i<26 ;i++ ){ cndt.insert('a'+i); }}int main(){// freopen("in.txt","r",stdin); ios::sync_with_stdio(false); cin.tie(0); fillcndt(); int n; (cin>>n).get(); for(int ii=0;ii
tmp; set
strst{input[ii].begin()+2,input[ii].end()}; char &c=input[ii][0]; if(cndt.size()>1){ if(c=='!')set_intersection(cndt.begin(),cndt.end() ,strst.begin(),strst.end(), inserter(tmp,tmp.begin())); else if(c=='.')set_difference(cndt.begin(),cndt.end() ,strst.begin(),strst.end(), inserter(tmp,tmp.begin())); else if(c=='?'){ ask.insert(input[ii][2]); set_difference(cndt.begin(),cndt.end() ,ask.begin(),ask.end(), inserter(tmp,tmp.begin())); } cndt=tmp; } else if(c=='!'||c=='?'){ assert(cndt.size()!=0); ans++; } } cout<

转载于:https://www.cnblogs.com/MalcolmMeng/p/10260657.html

你可能感兴趣的文章
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>
红黑树 c++ 实现
查看>>
Android 获取网络链接类型
查看>>
linux中启动与终止lnmp的脚本
查看>>
gdb中信号的处理[转]
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如何在Access2007中使用日期类型查询数据
查看>>
Jzoj4757 树上摩托
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>
第一个Java Web程序
查看>>
树状数组_一维
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
嵌入式软件设计第8次实验报告
查看>>
算法和数据结构(三)
查看>>
Ubuntu下的eclipse安装subclipse遇到没有javahl的问题...(2天解决了)
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>