题解(1-4)-----寒假练习赛(一)
目录
㈠练习题
㈡练习题
㈢练习题
㈣练习题
㈠练习题
⑴本题误区
注意提示性语句
⑵考察知识点
①选择结构的应用
②如何实现元素间的一一对应
③map,二维数组
⑶结题思路
本题可利用stl中map(映照容器)或字符型二维数组的方法进行求解.
⑷map容器常用知识点
map为映照容器,其内元素由一个键值和一个映照元素构成,键值与映照元素具有一一对应的关系。
类似于数学中的一次函数x为键值,y为映照元素
⑴构造方法:map<键值数据类型,映照元素数据类型> m;
⑵常用到的函数:
① m[key]=elem; //将elem插入到键值为key的元素中
② m.erase(key); //删除键值为key的元素
③ m.find(key); //搜索键值为key的位置,若无此元素,返回end()迭代器的位置
⑶map中元素的遍历(需要用迭代器进行遍历)
① 迭代器的定义
map<键值数据类型,映照元素数据类型>::iterator it;
② 迭代器的遍历
for(it=m.begin();it!=m.end();it++)
③ 遍历状态说明
it->first; //代表键值
it->second //代表映照元素
㈡练习题
⑴本题误区
注意题目所给的要求为:删除第2个元素,然后对除第一个元素和最后一个元素外的元素进行去重和按从大到小的顺序排列.而并非对所有元素.
⑵考察知识点
①元素的去重
②元素的排序
③set容器的用法
④set的自定义排序
⑶解题思路
本题可利用stl中set(集合容器)的自动排序和去重来简化运算
⑷set容器常用知识点
set为集合容器,它相对于vector容器来说可以实现自动从小到大进行排序和去重的操作。
⑴ 构建方法:set<数据类型> s;
⑵ 常用到的函数有:
① s.insert(n); // 插入n,如果n重复出现,不做操作
② s.erase(n); // 删除键值为n的元素
③ s.clear(); // 清空
④ s.find(n); // 查找键值为n的元素
⑤ s.begin(); // 起始位置
⑥ s.end(); // 结束位置
⑦ s.size(); // 返回向量v的大小
⑧ s.empty(); // 判断向量是否为空
㈢练习题
⑴本题误区
注意0和负数的情况
⑵考查知识点
①二进制的转换
②元素的反序输出
③bitset容器的使用
④原码,反码,补码的含义
⒈原码:一个正数,按照绝对值大小转换成的二进制数;
一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。
⒉反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
3.补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.
⑶解题思路
本题可利用数位分割的方法,即每次对2取余,最后结果逆序输出
也可利用位容器来解决
⑷bitset容器常用知识点
创建bitset对象必须指定位容器大小,一经定义不能修改bieset<100000> b; // 100000个bit(位),此时所有元素为都为0
b.any(); // 判断b中是否存在值为1的二进制位
b.none(); // 判断b中不存在值为1的二进制位
b.count(); // 返回b中值为1的二进制位的个数
b.size(); // 返回b中二进制位的个数
b.test(p); // 判断位置p处的二进制位是否为1
b.set(); // 把b的所有二进制位都置为1
b.set(p); // 把位置p处的二进制位置为1
b.set(p,n); // 把位置p处的二进制位置为n,n为0或1
b.reset(); // 把b的所有二进制位都置为0
b.reset(p); // 把位置p处的二进制位置为0
b.flip(); // 把b的所有二进制位逐位取反
b.flip(p); // 把位置p处的二进制位取反
⑸本题用位容器解法代码
#include<iostream>
#include<bitset>
#include<algorithm>
using namespace std;
int main()
{int x,n,num,i;string s;bitset<16> b;cin>>n;while(n--){num=0;cin>>x;b=x;num=b.count();if(num==0)cout<<num<<endl;else{for(i=0;i<16;i++){if(b[i]==1)num--;x=b[i];s.insert(s.end(),x+'0');if(num==0)break;}reverse(s.begin(),s.end());cout<<s<<endl;s="";}b.reset();}
}
㈣练习题
⑴本题误区
绩点的计算,结构体的创建
⑵考察知识点
①结构体的创建
②结构体元素的录入
③结构体的排序
④结构体元素的访问
⑶解题思路
创建一个可存储学生信息的结构体,并按照要求要求进行排序
⑷结构体知识点解析
struct Student //定义学生类结构体,里面包含学生信息
{string name; //名字double ma;double en;double th;double pj;bool operator <(const Student &a) const //自定义排序规则{if(a.pj!=pj)return a.pj<pj; //从大到小else if(a.ma!=ma)return a.ma<ma; //从大到小else if(a.en!=en)return a.en<en; //从大到小else if(a.th!=th)return a.th<th;elsereturn a.name>name; //从小到大}
};struct Student stu[100]; //定义一个具有100个元素空间的结构体数组
stu[0].name; //访问0号学生的姓名
stu[10].pj; //访问10号学生的pj值另外结构体可以作为容器的元素
例:
multiset<Student> s; //创建多重集合容器s(里面元素为学生类型)
题解(1-4)-----寒假练习赛(一)相关推荐
- 2014台州学院ACM集训队寒假练习赛1
A Bridge 只想到一种情况 另外一种情况是参考别人的 2个人为一轮 a b c d a b 去 a 回 c d 去 b 回(最小的2个去 2个在回来 ...) 其实还有一种 a b 去 a 回 ...
- 2014台州学院ACM集训队寒假练习赛2
A Treasure Chest 博弈dp 以前做过差不多的 然后就写了 超内存了 自己写的是记忆化搜索 可以学一下大白书的67页例题28以及2013 ACM-ICPC吉林通化全国邀请赛play ga ...
- 牛客练习赛29 题解
牛客练习赛29 A. 可持久化动态图上树状数组维护01背包 题解 这题跟标题没有任何关系- 贪心的使得负数删除的时候下标尽可能大,然后正数的时候下标尽可能小. 观察到每个数下标最大的时候就是它的初始下 ...
- 【寒假每日一题】剪绳子(个人练习)详细题解+推导证明(第六天)
文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 今天终于出核酸检测的结果,还好大家都没事,不然怕是要封城了!!! 今天还是寒假 ...
- 【寒假每日一题】分巧克力(个人练习)详细题解+推导证明(第八天)附带转载程序员壁纸
文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 话说今天开始准备搞一个秋招的GitHub,算是复习一遍了. 今天还是寒假每日一 ...
- ICPC训练联盟2021寒假冬令营(5)(部分题解):
ICPC训练联盟2021寒假冬令营(5)(部分题解): A - Brainman Raymond Babbitt drives his brother Charlie mad. Recently Ra ...
- 牛客寒假算法基础集训营6补题和题解
这是寒假写的题解,不知道为什么没发出去... 总结: 牛客做多了可以学很多奇葩的开数组方法和很多奇妙的方法!感觉题目出的不错2333 A.出题 链接:https://ac.nowcoder.com/a ...
- 2015弱校连萌寒假套题一 题解
比赛地址 弱校连萌寒假套题一 A. The Big Dance 题意: 有n头牛,初始情况下都在一起,编号1~n.每次将一群牛按照编号均等分为前后两部分,后面部分的牛不能多于前面部分的.如果分出了两头 ...
- 第五届“传智杯”全国大学生计算机大赛(练习赛)前四题题解
第五届"传智杯"全国大学生计算机大赛(练习赛) 练习赛题单链接:传智杯练习赛 仅有会做的前四题题解,还是太弱了( ^ M ^ !!) 第一题 链接:复读 思路: 就是哈希表记录下出 ...
- 【寒假每日一题】数字三角形(个人练习)详细题解+推导证明(第二天)
文章目录 前言 题目 详细题解 写法1 O ( n 2 ) O(n^2) O(n2) 推导证明 写法2 O ( n 2 ) O(n^2) O(n2) 推导证明 举一反三 总结 前言 昨天真是人生中奇葩 ...
最新文章
- 如何在python中找到两个日期时间对象之间的时差?
- HDU3507 Print Article —— 斜率优化DP
- hihoCoder #1457 : 后缀自动机四·重复旋律7
- 跟我一起学Redis之看完这篇比常人多会三种类型实战(又搞了几个小时)
- CSS 中的内联元素、块级元素以及display的各个属性的特点
- 搜索引擎的竞价排名是怎样实现的?
- ActionBar -- Toolbar
- android封装全局调用的toast_【Android】Android中WebView实现Java与JS交互
- Zip 文件覆盖漏洞曝光,Java、.NET、Go 生态集体中枪
- python3发送邮件_Python3发送电子邮件
- 解决Hash冲突的两种策略
- TMS320F2837x + Spartan6/国产FPGA低成本高实时注塑机运动控制器软硬件设计方案
- linux lefse分析,LEfSe分析,你真的懂了么
- 三国志战略版:求贤之我要换啥
- mysql x ix_mysql – 为什么IX-lock与InnoDB中的另一个IX-lock兼容?
- ckfinder php 配置,PHP中配置Ckeditor+Ckfinder 完成图片上传
- (用户角色)超级全面的权限系统设计方案
- 超声波传感器(CHx01) 学习笔记 Ⅵ - 原始数据
- 雷泰RAYR3I2MSCL3+高温红外测温仪的参数指标
- vite打包工具的介绍
热门文章
- redux-saga源码解析
- PHP常用系统设置整理
- n != n, n == -n
- UVA 1449 - Dominating Patterns AC自动机
- NClay框架AOP功能简介
- 【Docker】05 容器数据卷
- 使用cl编译器,将记事本写的c文件编译成dll和exe 步骤如下(记事本保存成.c)
- thinkphp 一个文件怎么调用另一个文件中的define()_ThinkPHP 简易开发思路 amp;amp; MVC和URL跳转...
- 使用npm-check-updates模块升级插件
- 发票管理软件_企业为什么需要采购管理软件?