P3613洛谷:深积 P5741旗鼓相当 %P1104生日 set题海战

1-用map可以实现数组对应数值,再用vec传输。

#include<bits/stdc++.h>
using namespace std;
int n, q, mes, x, y, val;
typedef pair<int, int> pr;
map<pr, int> mp;
vector<int> vec;int main(){cin >> n >> q;for(int i = 0; i < q; i ++){cin >> mes;if(mes == 1){cin >> x >> y >> val;pr p1 = make_pair(x, y);mp[p1] = val;}if(mes == 2){cin >> x >> y;pr p2 = make_pair(x, y);vec.push_back(mp[p2]);}}for(int i = 0; i < vec.size(); i ++){cout << vec[i] << endl;}return 0;
}

2-注意结构体里面不要定义结构体内成员的加减!!!

#include<bits/stdc++.h>
using namespace std;
const int maxx = 1e3 + 7;
int n;
struct stydent{string name;int chi, math, eng;//int sum = chi + math + eng;
}a[maxx];
int main(){cin >> n;for(int i = 0; i < n; i ++){cin >> a[i].name >> a[i].chi >> a[i].math >> a[i].eng;}for(int i = 0; i < n; i ++){for(int j = i + 1; j < n; j ++){int ans1 = abs(a[i].chi - a[j].chi);int ans2 = abs(a[i].math - a[j].math);int ans3 = abs(a[i].eng - a[j].eng);int ans4 = abs(a[i].chi + a[i].math + a[i].eng - a[j].chi - a[j].math - a[j].eng);if(ans1 <= 5 && ans2 <= 5 && ans3 <= 5 && ans4 <= 10){if(a[i].name < a[j].name)cout << a[i].name << " " << a[j].name << endl;elsecout << a[j].name << " " << a[i].name << endl;}}}return 0;
}

3-多层要求的比较:再定义一个cmp函数

#include<bits/stdc++.h>
using namespace std;
int n;
struct student{string name;int y, m, d, level;//level为记录输入先后 
}s[105];
bool cmp(student a, student b){if(a.y != b.y)return a.y < b.y;else{if(a.m != b.m)return a.m < b.m;else{if(a.d != b.d) return a.d < b.d;elsereturn a.level > b.level;}}
}
int main(){cin >> n;for(int i = 0; i < n; i ++){cin >> s[i].name >> s[i].y >> s[i].m >> s[i].d;s[i].level = i; }sort(s, s + n, cmp);for(int i = 0; i < n; i ++){cout << s[i].name << endl;}return 0;
}

4.难的要s

set数组自动是升序的去重数组

注意每次clear,加入用insert

#include<bits/stdc++.h>
using namespace std;
int a,b,n[10005],m[105][105],k[10005],c,d,e,m1[105][105],n1[10005];
//n放的是做过的题有多少个,n1放的是没做的题有多少个 
//m放的是做过的题是哪些,m1放的是没做过的题有哪些
//vis标识做过的题为1 
set<int> st;
vector <int> vec[10005];
int main(){cin >> a >> b;//每个人做过的题是哪些,用set返回后继续放到数m组 for(int i=1;i<=a;i++){st.clear();cin >> n[i];for(int j=1;j<=n[i];j++){cin >> m[i][j];st.insert(m[i][j]);}n[i]=0;int vis[10005]={};for(set<int>::iterator it=st.begin();it!=st.end();it++){n[i]++; //记录每个做了多少不重复的题 的下标 m[i][n[i]]=*it;//依次把题数代替原来题目数组 vis[*it]=1;//这个题做过就标记为1 ,避免反复调用set }//每个人没做的题有哪些,放入m1数组 for(int z = 1;z<=b;z++){//遍历题目总数 if(vis[z]==0){//找没有做过的题 n1[i]++;//记录这个人到底没做多少题 m1[i][n1[i]] = z;//存一下没有做的题有哪些}}}cin >> c;for(int i=1;i<=c;i++){st.clear();cin >> d >> e;for(int j=1;j<=e;j++){cin >> k[j];st.insert(k[j]);}int j=0;//报名的人数是j个,这些人是谁都放在k数组里 for(set<int>::iterator it=st.begin();it!=st.end();it++){j++; //记录每个报名的人下标 k[j]=*it;//set去重}//训练 if(d==1){int vis[10005]={};//从报名的人的第一个开始遍历 ,看大家没做过的题for(int z=1;z<=j;z++){//第一个人是k[z],他没做过的题的数目是是n1[] for(int p=1;p<=n1[k[z]];p++){vis[m1[k[z]][p]]=1;//标记没做过的题}}for(int z=1;z<=b;z++){if(vis[z]==0){//大家做过的题 vec[i].push_back(z);//就是我们要的题 }}}else{int vis[10005]={};for(int z=1;z<=j;z++){//从报名的人的第一个开始遍历 ,看大家做过的题for(int p=1;p<=n[k[z]];p++){//第一个人是k[z],他做过的题的数目是是n[]vis[m[k[z]][p]]=1;//标记做过的题}}for(int z=1;z<=b;z++){if(vis[z]==0){vec[i].push_back(z);//输出能做的题}}}}for(int i = 1; i <= c; i ++){for(int j = 0; j < vec[i].size(); j ++)cout << vec[i][j] << " " ;cout << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/808678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件加密软件大全,按市场份额排名

文件加密软件大全&#xff0c;按市场份额排名 文件加密是一种保护数据安全的重要手段&#xff0c;通过使用特定的算法将明文文件转化为密文&#xff0c;以防止未经授权的访问、篡改或泄露&#xff0c;市场份额排名的八款软件你需要了解一下。 1、安企神软件 专注于加密和审计…

高阶流程图(SIPOC)

SIPOC高阶流程图是一种流程映射和改进方法&#xff0c;它使用可视化的方式描述一个或多个流程的输入和输出。SIPOC是五个单词的首字母缩写&#xff0c;分别代表供应商&#xff08;Suppliers&#xff09;、输入&#xff08;Inputs&#xff09;、过程&#xff08;Processes&#…

5.120 BCC工具之zfsslower.py解读

一,工具简介 zfsslower 显示慢于阈值的 ZFS 读取、写入、打开和 fsyncs 操作。 二,代码示例 #!/usr/bin/env pythonfrom __future__ import print_function from bcc import BPF import argparse from time import strftime# arguments examples = """exam…

蓝牙app设计 (方案一)app inventor

app Inventor是一款谷歌公司开发的手机编程软件。 谷歌推出一款名叫Google App Inventor的工具软件, Google App Inventor用户能够通过该工具软件使用谷歌的Android系列软件自行研发适合手机使用的任意应用程序。 而且这款编程软件不一定非要是专业的研发人员,甚至根本不需要…

2024 年最新前端工程师使用 Webpack 模块打包工具详细教程(更新中)

概述 Webpack 模块打包工具 Webpack 是一个现代的静态模块打包工具&#xff0c;用于将前端应用程序的各种资源&#xff08;例如如&#xff1a;JavaScript、CSS、图片等&#xff09;视为模块&#xff0c;并将它们打包成可以在浏览器中运行的静态文件。它的主要功能包括模块打包…

ClickHouse入门篇:一文带你学习ClickHouse

ClickHouse 是一个用于联机分析处理(OLAP)的列式数据库管理系统(DBMS)。由于其独特的数据存储和处理架构&#xff0c;ClickHouse 能够提供高速数据插入和实时查询性能。下面是对 ClickHouse 的详细介绍&#xff0c;包括其特性、应用场景和架构&#xff1a; 特性 列式存储: 数…

CUDA 12.4文档3 内存层次异构变成计算能力

5.3 内存层次 Memory Hierarchy CUDA线程在执行过程中可能会访问多个内存空间的数据&#xff0c;如图6所示。每个线程都有自己的私有本地内存。 每个线程块都有一个对块内所有线程可见的共享内存&#xff0c;并且其生命周期与块相同。线程块集群中的线程块可以对彼此的共享内…

中颖51芯片学习5. 类EEPROM操作

中颖51芯片学习5. 类EEPROM操作 一、SH79F9476 Flash存储空间1. 特性2. 分区3. OP_EEPROMSIZE选项设置3. 编程接口4. 代码保护控制模式简介&#xff08;1&#xff09;**代码保护模式0&#xff1a;**&#xff08;2&#xff09;**代码保护模式1&#xff1a;**&#xff08;3&#…

ESXI 中安装 虚拟机 麒麟v10 操作系统

浏览器访问登录ESXI 上传镜像文件 创建新虚拟机 选择虚拟机名称和操作系统 选择存储 配置虚拟机 配置虚拟机 cpu 内存 硬盘 并选择虚拟机驱动 配置完成后&#xff0c;点击下一步&#xff0c;并点击完成。 开机 完成后选择该虚拟机&#xff0c;并打开电源 等待出现以下界面…

2023年通用人工智能AGI等级保护白皮书

今天分享的是人工智能专题系列深度研究报告&#xff1a;《人工智能专题&#xff1a;2023年通用人工智能AGI等级保护白皮书》。 通用人工智能发展现状 本章主要介绍通用人工智能的基本情况&#xff0c;包括其发展历史、现状以及组成架构等内容。本文还将通过从技术角度出发来分…

【复现】浙大恩特客户资源管理系统 SQL注入漏洞_71

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 浙大恩特客户资源管理系统是一款针对企业客户资源管理的软件产品。该系统旨在帮助企业高效地管理和利用客户资源&#xff0c;提升…

Innodb架构解析

整体架构 通过《面试官&#xff1a;一条SQL是如何执行的&#xff1f;》我们了解了MySQL架构&#xff0c;下面我们看下Innodb架构。 innodb最早由Innobase Oy公司开发&#xff0c;5.5版本开始是MySQL默认存储引擎&#xff0c;该存储引擎是第一个完整支持ACID事务的MySQL存储引…

一个简单的对称加密算法

以下是一个简单的对称加密算法的代码实现&#xff0c;使用了 Python 3 中的cryptography库&#xff1a; from cryptography.fernet import Fernetdef encrypt(message, key):f Fernet(key)encrypted f.encrypt(message.encode())return encrypted.decode()def decrypt(encry…

es6对于Promise 对象的详解(2024-04-11)

1、Promise 含义 Promise&#xff0c;简单说就是一个容器&#xff0c;里面保存着某个未来才会结束的事件&#xff08;通常是一个异步操作&#xff09;的结果。 从语法上说&#xff0c;Promise 是一个对象&#xff0c;从它可以获取异步操作的消息。Promise 提供统一的 API&…

文章分享:ctDNA高通量测序临床实践专家共识(2022年版)

【摘要】 循环肿瘤DNA&#xff08;circulating tumor DNA&#xff0c;ctDNA&#xff09;高通量测序在肿瘤临床诊疗中发挥越来越重要的作用&#xff0c;但其临床检测标准和应用范围尚缺乏统一认识。中国抗癌协会肿瘤标志专业委员会组织相关专家&#xff0c;结合国内临床实践&…

蓝桥杯-【二分】分巧克力,跳石头

代码及解析: #include<bits/stdc.h> using namespace std; int n,k; const int N100010; int h[N],w[N]; bool check(int d){int num0;for(int i0;i<n;i) num (h[i]/d)*(w[i]/d);if(num>k) return true; //够分else return false; //不够分 } in…

Golang教程一(环境搭建,变量,数据类型,数组切片map)

目录 一、环境搭建 1.windows安装 2.linux安装 3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 7.输入 三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符…

深度学习简介

深度学习简介 一、引言&#xff1a;深度学习的兴起 简短介绍深度学习的历史背景 深度学习&#xff0c;作为人工智能领域的一颗冉冉升起的新星&#xff0c;其根源可以追溯到上世纪的感知机学习算法。这种算法模拟人类的神经元行为&#xff0c;是最早期的尝试之一。然而&#x…

OpenLayers6实战,OpenLayers实现鼠标拖拽方式绘制矩形(拖拽方式绘制长方形和正方形)

专栏目录: OpenLayers实战进阶专栏目录 前言 本章介绍使用OpenLayers在地图上实现鼠标拖拽方式绘制矩形(拖拽方式长方形和正方形)。 OpenLayers本身是可以通过鼠标点击多个点的方式来绘制多边形的,当然也包括长方形和正方形,但是这种多边形绘制出来的图形并不是准确的“…

Spring Boot中@Value注入静态变量

项目场景&#xff1a; Spring Boot中静态变量想使用Value注入值&#xff1a; 在application.properties或application.yml中定义topic名称&#xff1a; # application.properties test.name测试 Value("${test.name}") public static String name; 这时候打印发…