当前位置: 首页 > news >正文

2014吉林省赛题解 | CCUT应用OJ——Sign in

题目简介

  • 题源:1035-Sign in | CCUT OJ,2014 吉林省赛 C 题
  • 题意:给定长为 \(n\) 的序列 \(A\) 与长为 \(n-1\) 的序列 \(B\),其中 \(B\subset A\),求 \(A-B\)。即:\(B\) 中恰好只有一个元素在 \(A\) 中没出现,求这个元素。
  • 数据范围:\(1\le n\le 10^5\),序列值域:\(0\le R\le 10^8\)
  • 注:若无特殊说明,博主的代码模板如下,通过solve函数处理多组测试用例。本文后续代码仅给出solve函数。
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
#define ln '\n'int solve(){}int main(){int T;cin>>T;while(T--){printf("Team %08d didn't sign in!\n",solve());}return 0;

题解

朴素想法

最朴素的想法:双层for循环枚举匹配,若未找到则输出该项。时间复杂度\(O(n^2)\),超时。

void solve(){
int n;cin >> n;vector<int> a(n);vector<int> b(n-1);for (auto &i:a) cin >> i;for (auto &i:b) cin >> i;int ans = -1;for (int i = 0; i < n; i++) {bool ok = 0;for (int j = 0; j < n-1; j++) {if (a[i] == b[j]) {ok = 1;break;}}if (!ok) {ans = a[i];break;}}return ans;
}

方法1:哈希表

如果你学过 C++,那么可用 unordered_map 一发AC。

int solve(){int n;cin >> n;vector<int> a(n);unordered_set<int> b;for (auto &i:a) cin >> i;for (int i = 0; i < n - 1; i++) {int _;cin >> _;b.insert(_);}int ans = -1;for (int i = 0; i < n; ++i) {if (!b.count(a[i])) {ans = a[i];break;}}return ans;
}

方法2:排序

按升序排序后,再逐项比较。注意应选择 \(O(n\cdot \log n)\) 复杂度的排序算法,否则将退化为暴力。

int solve(){int n;cin >> n;vector<int> a(n);vector<int> b(n-1);for (auto &i:a) cin >> i;for (auto &i:b) cin >> i;sort(a.begin(), a.end());sort(b.begin(), b.end());int ans = a[n-1];for (int i = 0; i < n-1; ++i) {if (a[i] != b[i]) {ans = a[i];break;}}return ans;
}

方法3:异或

异或具有如下性质:\(a\oplus a=0,a\oplus 0=a\)。因此考虑对 \(A\) 中每个元素进行异或,再对 \(B\) 中每个元素进行异或。出现两次的元素会变为 \(0\),剩下的那个数就是只出现一次的数。

int solve(){int n;cin >> n;int ans =0;for (int i = 0; i < n; ++i) {int _;cin>>_;ans ^= _;}for (int i = 0; i < n-1; ++i) {int _;cin >> _;ans ^= _;}return ans;
}
http://www.jsqmd.com/news/25033/

相关文章:

  • 访答知识库-可以本地使用的知识库
  • 代码大全2 第三四章
  • https代理服务器(六)再次java动态签发【成功】
  • node
  • [AGC032D] Rotation Sort 题解
  • [AGC024E] Sequence Growing Hard 题解
  • 实验2 现代C++编程初体验
  • P7154 [USACO20DEC] Sleeping Cows P 题解
  • Java流程控制——switch多选择结构
  • P3607 [USACO17JAN] Subsequence Reversal P 题解
  • 概率论测试(上)
  • 示性函数2
  • 随笔/杂记
  • k3s 基础 —— 将 traefik 替换为 ingress-nginx
  • 使用 Swift 解析验证码(结合 Tesseract OCR)
  • 常见排序算法Java实现
  • 题解:qoj1875 Nein
  • 【uni-app】申请高德地图key,封装map.js,实现H5、iOS、Android通过getlocation获取地图定位信息(摘)
  • .NET开发上手Microsoft Agent Framework(一)从开发一个AI美女聊天群组开始
  • java作业4
  • 10/28
  • 大学四年的学费/生活费自足攻略
  • 175天 隧道技术篇防火墙组策略FRPNPSChiselSocks代理端口映射C2上线
  • 10.28每日总结
  • 每日反思(2025_10_28)
  • 102302126李坤铭作业1
  • 10月28日日记
  • 【大模型应用开发】之本地部署大模型
  • link元素的用法及HTML样板
  • Raft 一致性算法简介