隐藏页面特效

CCF 201809-3 元素选择器

试题编号: 201809-3
试题名称: 元素选择器
时间限制: 1.0s
内存限制: 256.0MB
问题描述:



 

//本代码采用非递归暴力循环匹配 //注意题目 标签大小写不敏感,id大小写敏感 #include<bits/stdc++.h> #define pb emplace_back using namespace std; const int N=1e5+5; struct node{ string name,plus;int dj; node(){} node(string a,string b,int c):name(a),plus(b),dj(c){} }d[105]; string s,at,t;int n,m,sz,cnt,res[N],ans[N];vector<string> v; inline void stdit(string &s){transform(s.begin(),s.end(),s.begin(),::tolower);} void readstable(){ getline(cin,s);at=""; int rk=0,pos=0; rk=s.find_first_not_of('.'); // s.erase(s.find_last_not_of(' ')+1); s=s.substr(rk); rk>>=1; pos=s.find('#'); if(~pos){ stringstream i(s); i>>s; i>>at; } stdit(s); d[++cnt]=node(s,at,++rk); } inline void ins(string s){if(s[0]!='#') stdit(s);v.pb(s);} void split(){ v.clear(); getline(cin,s); // s.erase(s.find_last_not_of(' ')+1); int pos=s.find_first_of(' '); if(~pos){ do{ ins(s.substr(0,pos)); s=s.substr(pos+1); pos=s.find_first_of(' '); }while(~pos); } ins(s); } void dfs(int cur,int cj,int lim=0){ if(cur==sz){ ans[++ans[0]]=res[sz-1]; return ; } for(int j=lim+1;j<=n;j++){ if(d[j].dj<=cj) return ; if(d[j].name==v[cur]||d[j].plus==v[cur]){ res[cur]=j; dfs(cur+1,d[j].dj,j); } } } void query(){ split(); sz=v.size(); int &cnt=ans[0];cnt=0; dfs(0,0,0); sort(ans+1,ans+cnt+1); cnt=unique(ans+1,ans+cnt+1)-(ans+1); if(!cnt){puts("0");return ;} printf("%d ",cnt); for(int i=1;i<=cnt;i++) printf("%d ",ans[i]); puts(""); } int main(){ scanf("%d%d\n",&n,&m); for(int i=0;i<n;i++) readstable(); for(int i=0;i<m;i++) query(); return 0; } /* 11 5 html ..head ....title ..body ....h1 ....p #subtitle ....div #main ......h2 ......p #one ......div ........p #two p #subtitle h3 div p div div p */

 


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/12488771.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(231)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
历史上的今天:
2017-03-13 1516. 棋盘上的车[组合数学][状态压缩]
2017-03-13 [HAOI2012] 容易题[母函数]
2017-03-13 [HAOI2012] 高速公路
2017-03-13 [HAOI2012]Road
点击右上角即可分享
微信分享提示