码迷,mamicode.com
首页 > 其他好文 > 详细

7.23每日一题题解

时间:2020-07-23 15:41:17      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:end   cassert   int   通过   force   大于   with   绝对值   stream   

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;

}

7.23每日一题题解

标签:end   cassert   int   通过   force   大于   with   绝对值   stream   

原文地址:https://www.cnblogs.com/QFNU-ACM/p/13364846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!