题目



总结与思考

这一道经典模拟题,对于模拟题,尤其是长度较长的模拟题,一定要仔细读题,把每一个细节都照顾到,这个代码刚开始交了很多遍都是90,后来才发现题目中在查询的时候 #后面的字符大小心敏感,而我都按照不敏感处理;另外,由于代码中有较多的for循环,一定要注意内侧for循环的索引值不能与外侧索引值相同,容易发生一些奇怪的错误。

代码实现

#include<bits/stdc++.h>
using namespace std;
int n,m;
char ch;
struct node{string label;string id;int l;
}a[109];
vector<string> demands;
void split_(string c,vector<string>&v)
{v.clear();int last=0;for(int t=0;t<c.length();t++){if(c[t]==' '){v.push_back(c.substr(last,t-last));last=t+1;}}v.push_back(c.substr(last,c.length()-last));
}
int main()
{freopen("a.txt","r",stdin);cin>>n>>m;getchar();for(int i=0;i<n;i++){int tcnt=0;bool flag=false;while((ch=getchar())!='\n'){if(ch=='#'){string _tt;cin>>_tt;getchar();a[i].label=ch+_tt;break;}else if(ch=='.') tcnt++;else{a[i].id+=tolower(ch);while((ch=getchar())!=' '){if(ch=='\n'){flag=true;break;}a[i].id+=tolower(ch);} }if(flag) break;}a[i].l=tcnt/2; }for(int i=0;i<m;i++){string com;vector<int> ans;getline(cin,com);split_(com,demands);for(int j=0;j<demands.size();j++){if(demands[j][0]=='#') continue;for(int k=0;k<demands[j].length();k++)demands[j][k]=tolower(demands[j][k]);} if(demands.size()==1){for(int k=0;k<n;k++){if(a[k].id==demands[0] || a[k].label==demands[0])ans.push_back(k);}}else{for(int k=0;k<n;k++){int len=demands.size()-1;if(a[k].label==demands[len] || a[k].id==demands[len]){len--;for(int j=k-1;j>=0&&a[j].l<=a[k].l;j--){if(a[j].l<a[k].l){if(a[j].label==demands[len] || a[j].id==demands[len]){len--;if(len==-1) break;}}}}if(len==-1) ans.push_back(k);}} cout<<ans.size()<<" ";for(int y=0;y<ans.size();y++) cout<<ans[y]+1<<" ";cout<<endl; }return 0;
} 

CSP 201809-3 元素选择器相关推荐

  1. csp官网题目——元素选择器

    元素选择器 思路 开始想用一个栈来进行存储以及判断,后来发现没有必要,数据也不大,我们直接顺序找所有点即可. 存储时存储.的个数,之后的判断层数就根据点的多少来直接判断. 对于一个查找,找到与最后一个 ...

  2. CSS复合选择器(后代选择器、子元素选择器、并集选择器、伪类选择器、:focus伪类选择器)

    复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的. 1. 后代选择器 后代选择器又称为包含选择器 作用:用来选择元素或元素组的子孙后代 其写法就是把外层标签写在前面,内层标签写在后面,中间 ...

  3. css元素捕捉,css元素选择器

    CSS 元素选择器 最常见的 CSS 选择器是元素选择器.换句话说,文档的元素就是最基本的选择器. 如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p.h1.em.a,甚至可以是 ...

  4. 通用兄弟元素选择器 E ~ F

    版本:CSS3 继承性:无 语法: E ~ F : {attribute} 说明: 匹配E元素之后的F元素 兼容性: 类型 Internet Explorer Firefox Chrome Opera ...

  5. CSS3之伪元素选择器和伪类选择器

    伪类选择器,和一般的DOM中的元素样式不一样,它并不改变任何DOM内容.只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见.伪类的效果可以通过添加一个实际的类来达到. ...

  6. 015_CSS伪元素选择器

    1. 伪元素选择器是通过双冒号(::)加上特定的具有某种含义的单词来确定所选元素. 2. 伪元素/伪对象: 不存在在DOM文档中, 是虚拟的元素, 是创建的新元素.这个新元素(伪元素)是某个元素的子元 ...

  7. 011_CSS子元素选择器

    1. 与后代选择器相比, 子元素选择器(Child selectors)只能选择作为某元素的子元素. 2. 选择子元素 2.1. 如果您不希望选择任意的后代元素, 而是希望缩小范围, 只选择某个元素的 ...

  8. 004_CSS元素选择器

    1. CSS选择器用于"查找"(或选取)要设置样式的html元素. 2. CSS元素选择器/类型选择器 2.1. 元素选择器匹配文档元素的名称.元素选择器匹配文档树中该元素名称的每 ...

  9. CSS基本选择器(元素选择器、类选择器、id选择器)

    一.元素选择器 <!DOCTYPE html> <html><head><meta charset="UTF-8"><titl ...

  10. web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡

    https://www.bilibili.com/video/BV1pE411q7FU?p=276 文章目录 html5新特性 html5新增语义化标签 header头部 nav导航 article内 ...

最新文章

  1. uniapp实现页面左右滑动,上下滑动事件
  2. 计算机二级常见知识点语言,计算机等级考试二级C语言常见知识点总结
  3. 微信系列研究之-----资源文件保护的小把戏
  4. 戴尔optiplex3020主板接线_戴尔的售后都是这样的么
  5. Java数据结构习题_算法分析
  6. 数学--矩阵快速幂详解
  7. 潘淳的苏州.NET俱乐部成立有感!附我的录音
  8. java 读取 xmltype_java操作XMLType的几种方法
  9. svn怎么检出两个地址项目_svn 检出项目报错
  10. Spring之IOC快速入门(一)
  11. 自动生成html_服务搭建篇二·Jenkins+Jmeter+Gitlab持续集成实现接口流程自动化
  12. sicily 1282. Computer Game
  13. 中国各个省市区(县)级联数据
  14. 浙江省2021年高新技术企业认定补贴奖励查询及优惠政策,国高达60万
  15. vue - weath
  16. 9. Simulink系统仿真
  17. maven依赖本地宝
  18. 查看电脑的真实Ip(可连接访问的IP)
  19. SPSS统计软件学习
  20. 炒股,你必须弄明白这9个问题

热门文章

  1. 新生研讨课:利用OpenCV处理带有水印的图片的调研报告
  2. u盘自动挂载 树莓派_再推荐一个备份树莓派系统的脚本
  3. python妹子图软件下载_python3下载妹子图,你懂的。
  4. 来自19位科技大亨的励志箴言(绝对值得收藏)
  5. 灵遁者哲学书籍《 重构世界》:意识是物质逆熵存在的本征
  6. python识别图像中的物体_OpenCV+Python 指定物体识别
  7. 域名注册_申请证书\SSL证书\tls证书
  8. java监听鼠标双击_java鼠标双击事件 java鼠标双击监听
  9. 2023最新自助下单彩虹云商城系统源码+免授权无后
  10. 射线法进行地理空间坐标计算