IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Daimayuan Online Judge 查重判断 -> 正文阅读

[C++知识库]Daimayuan Online Judge 查重判断

蜗蜗大学迎来了毕业季。现在有一批毕业生的论文需要查重。

蜗蜗大学的毕业论文是用数字写成的,现在蜗蜗教授用经验找出了一些可能是抄袭的论文,蜗蜗教授需要你来做出更准确的判断。

你现在被给到两篇论文,第一份是前人留下的,第二份是你需要进行查重的。

如果第二篇论文中的数字在第一篇论文里出现过,就会被标记。如果第二篇论文被标记的数字数量大于等于50%,这篇论文就被判定为抄袭。

现在由你进行查重判断,如果是抄袭,输出Yes,否则输出No。

输入格式

第一行包含两个整数n,mn,m。

接下来一行,包含nn个整数a1,a2,…,ana1,a2,…,an,表示第一篇论文。

接下来一行,包含mm个整数b1,b2,…,bnb1,b2,…,bn,表示第二篇论文。

输出格式

输出一行 Yes 或者 No

样例输入

5 6
1 2 3 4 5
3 4 5 6 7 8

样例输出

Yes

数据规模

对于100%100%的数据,保证1≤n,m≤2×105,0≤ai,bi≤1091≤n,m≤2×105,0≤ai,bi≤109。

心情:又是伤心的一天。有对象的话就别找学长来讲题了,昨天讲了一下午,今天才知道你有对象,你不能让你对象给你讲吗?浪费我时间。白让学长给你讲那么多好东西,白让学长期待一场,您可真会白嫖啊。

?

思路:这个是题整数哈希,整数哈希直接将数除余存在下标里即可,这里存用二维vector,只需要一个 [ ] 即可。查的时候需要遍历此时余数的数组里的全部。整数哈希与字符串不同的是:字符串哈希时要将x*base的n-i次方存入一个一维数组之中类似于前缀和一样,用前一个乘以base之后加上当前数,而且在做减法时需要将前面要减去的段乘上子串的长度的base次方。

完整代码:

#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;
typedef long long ll;
typedef vector<int> vi;
//#define int long long
#define fir first
#define sec second
#define all(x) (x).begin(), (x).end()
#define sz(x) (int)x.size()
#define rep(i, l, r) for (int i = l; i <= r; ++i)
#define repd(i, l, r) for (int i = l; i >= r; --i)
#define pb push_back


const int p=9999971;
const int P=9999971;
const int N=2e5+10;
//int a[N],b[N];
vector<int>v[p];

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m;
    cin>>n>>m;
    rep(i,1,n)
    {
        int x;
        cin>>x;
        v[x%p].pb(x);
    }
    int ans=0;
    rep(i,1,m)
    {
        int b;
        cin>>b;
        int len=v[b%p].size();
        rep(j,0,len-1)
        {
            if(v[b%p][j]==b)ans++;
        }
    }
    if(ans*2>=m)cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    return 0;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:13:21  更:2022-03-15 22:17:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:50:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码