CSP 201809-3 元素选择器
题目
总结与思考
这一道经典模拟题,对于模拟题,尤其是长度较长的模拟题,一定要仔细读题,把每一个细节都照顾到,这个代码刚开始交了很多遍都是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 元素选择器相关推荐
- csp官网题目——元素选择器
元素选择器 思路 开始想用一个栈来进行存储以及判断,后来发现没有必要,数据也不大,我们直接顺序找所有点即可. 存储时存储.的个数,之后的判断层数就根据点的多少来直接判断. 对于一个查找,找到与最后一个 ...
- CSS复合选择器(后代选择器、子元素选择器、并集选择器、伪类选择器、:focus伪类选择器)
复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的. 1. 后代选择器 后代选择器又称为包含选择器 作用:用来选择元素或元素组的子孙后代 其写法就是把外层标签写在前面,内层标签写在后面,中间 ...
- css元素捕捉,css元素选择器
CSS 元素选择器 最常见的 CSS 选择器是元素选择器.换句话说,文档的元素就是最基本的选择器. 如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p.h1.em.a,甚至可以是 ...
- 通用兄弟元素选择器 E ~ F
版本:CSS3 继承性:无 语法: E ~ F : {attribute} 说明: 匹配E元素之后的F元素 兼容性: 类型 Internet Explorer Firefox Chrome Opera ...
- CSS3之伪元素选择器和伪类选择器
伪类选择器,和一般的DOM中的元素样式不一样,它并不改变任何DOM内容.只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见.伪类的效果可以通过添加一个实际的类来达到. ...
- 015_CSS伪元素选择器
1. 伪元素选择器是通过双冒号(::)加上特定的具有某种含义的单词来确定所选元素. 2. 伪元素/伪对象: 不存在在DOM文档中, 是虚拟的元素, 是创建的新元素.这个新元素(伪元素)是某个元素的子元 ...
- 011_CSS子元素选择器
1. 与后代选择器相比, 子元素选择器(Child selectors)只能选择作为某元素的子元素. 2. 选择子元素 2.1. 如果您不希望选择任意的后代元素, 而是希望缩小范围, 只选择某个元素的 ...
- 004_CSS元素选择器
1. CSS选择器用于"查找"(或选取)要设置样式的html元素. 2. CSS元素选择器/类型选择器 2.1. 元素选择器匹配文档元素的名称.元素选择器匹配文档树中该元素名称的每 ...
- CSS基本选择器(元素选择器、类选择器、id选择器)
一.元素选择器 <!DOCTYPE html> <html><head><meta charset="UTF-8"><titl ...
- web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡
https://www.bilibili.com/video/BV1pE411q7FU?p=276 文章目录 html5新特性 html5新增语义化标签 header头部 nav导航 article内 ...
最新文章
- uniapp实现页面左右滑动,上下滑动事件
- 计算机二级常见知识点语言,计算机等级考试二级C语言常见知识点总结
- 微信系列研究之-----资源文件保护的小把戏
- 戴尔optiplex3020主板接线_戴尔的售后都是这样的么
- Java数据结构习题_算法分析
- 数学--矩阵快速幂详解
- 潘淳的苏州.NET俱乐部成立有感!附我的录音
- java 读取 xmltype_java操作XMLType的几种方法
- svn怎么检出两个地址项目_svn 检出项目报错
- Spring之IOC快速入门(一)
- 自动生成html_服务搭建篇二·Jenkins+Jmeter+Gitlab持续集成实现接口流程自动化
- sicily 1282. Computer Game
- 中国各个省市区(县)级联数据
- 浙江省2021年高新技术企业认定补贴奖励查询及优惠政策,国高达60万
- vue - weath
- 9. Simulink系统仿真
- maven依赖本地宝
- 查看电脑的真实Ip(可连接访问的IP)
- SPSS统计软件学习
- 炒股,你必须弄明白这9个问题
热门文章
- 新生研讨课:利用OpenCV处理带有水印的图片的调研报告
- u盘自动挂载 树莓派_再推荐一个备份树莓派系统的脚本
- python妹子图软件下载_python3下载妹子图,你懂的。
- 来自19位科技大亨的励志箴言(绝对值得收藏)
- 灵遁者哲学书籍《 重构世界》:意识是物质逆熵存在的本征
- python识别图像中的物体_OpenCV+Python 指定物体识别
- 域名注册_申请证书\SSL证书\tls证书
- java监听鼠标双击_java鼠标双击事件 java鼠标双击监听
- 2023最新自助下单彩虹云商城系统源码+免授权无后
- 射线法进行地理空间坐标计算