zoukankan      html  css  js  c++  java
  • 7.23每日一题题解

    Rotation Matching

    涉及知识点:

    • 思维

    solution:

    • 首先我们通过题面,可以得到一个条件:
      • 我们要输出的是匹配最多的个数
      • -这个匹配最多通过题意可以知道就是向左或者向右移动k次后的结果
      • -所以我们只需要找到这个移动方式即可
    • -那么如何找这个移动方式呢?
      • -从向左向右移动入手,我们发现只要用当前bi的下标减去ai的下标+n%n即可(用绝对值的话,要考虑大于n的情况比较繁琐)

    std:

    #include <cstdio>
    #include <algorithm>
    #include<iomanip>
    #include <iostream>
    #include <cmath>
    #include <string>
    #include <vector>
    #include <set>
    #include <queue>
    #include <cstring>
    #include<stack>
    #include <cassert>
    #include<map>
    
    
    using namespace std;
    typedef long long LL;
    
    LL   n, k, m ;
    LL i,j,g;
    
    vector<int >v[N],num[N];
    int main()
    {
        ios::sync_with_stdio(0);
        cin.tie(0), cout.tie(0);
        int t;
        cin>>t;
        for(int i= 1;i<=t;i++)cin >>ar[i],v[ar[i]].push_back(i);
        for(int i= 1;i<=t;i++){
            cin >>br[i];
            cr[(i-v[br[i]][0]+t)%t]++;
        }
        LL ma = 0 ;
        for(int i= 0;i<=t-1;i++){
            ma =max(ma, cr[i]);
        }
        cout<<ma<<endl;
    
        return 0;
    
    }
    
    
  • 相关阅读:
    lnmp环境搭建
    Git常用命令
    博客园写随笔环境搭建
    Win常用软件
    Docker环境搭建
    ESP-8266 RTOS 环境搭建
    查看Linux信息
    博客园markdown语法
    Java后台技术(TDDL)
    Java后台技术(Dubbo入门)
  • 原文地址:https://www.cnblogs.com/QFNU-ACM/p/13364846.html
Copyright © 2011-2022 走看看