(可以先阅读题目中关于顺逆时针的定义,避免理解错误)

考虑一盘菜$b_{i}$被$a_{j}$吃掉,对于其最后一次移动:如果是顺时针,则称$b_{i}$的移动区间为$[a_{j},b_{i}]$(若$b_{i}<a_{j}$则为$[a_{j},n)\cup[0,b_{i}]$的环),反之类似(特别的,如果$a_{j}=b_{i}$则区间为$[b_{i},b_{i}]$)

记顺时针的最大移动区间为$l_{1}$,逆时针为$l_{2}$,答案即为$l_{1}+l_{2}+\min(l_{1},l_{2})$

若某两个人移动区间相互包含,对两者移动方向分类讨论,可以发现都可以更换配对方式使得$l_{1}$和$l_{2}$不增加,换言之存在最优解使得任意两盘菜移动区间不包含

(注意:环的包含可以看作集合的包含)

通过这个,我们可以得到这样一个结论:将$a_{i}$和$b_{i}$从小到大排序后,存在一组最优解,满足存在$x$使得是$a_{i}$匹配$b_{(i-1+x)mod\ k+1}$(其中$0\le x<k$)

(这个结论大概是挺难证的)

有了这个结论,首先枚举$x$,即确定了配对方案

接下来,先考虑暴力枚举$l_{1}$,之后将顺时针结果不超过$l_{1}$用顺时针做,再维护逆时针的最大值,通过将顺时针从小到大排序以及维护后缀逆时针最大值就可以做了

时间复杂度为$o(k^{2}\log k)$,可以通过

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 1005
4 pair<int,int>v[N];
5 int t,n,m,ans,a[N],b[N],mx[N];
6 int len(int x,int y){
7 if (x<=y)return y-x;
8 return m-(x-y);
9 }
10 int main(){
11 scanf("%d",&t);
12 while (t--){
13 scanf("%d%d",&m,&n);
14 for(int i=0;i<n;i++)scanf("%d",&a[i]);
15 sort(a,a+n);
16 for(int i=0;i<n;i++)scanf("%d",&b[i]);
17 sort(b,b+n);
18 ans=m;
19 for(int i=0;i<n;i++){
20 for(int j=0;j<n;j++)v[j]=make_pair(len(a[j],b[(j+i)%n]),len(b[(j+i)%n],a[j]));
21 sort(v,v+n);
22 mx[n]=0;
23 for(int j=n-1;j>=0;j--)mx[j]=max(mx[j+1],v[j].second);
24 ans=min(ans,mx[0]);
25 for(int j=0;j<n;j++)ans=min(ans,v[j].first+mx[j+1]+min(v[j].first,mx[j+1]));
26 }
27 printf("%d\n",ans);
28 }
29 }

[gym102900H]Rice Arrangement的更多相关文章

  1. HDU 4884 TIANKENG’s rice shop (模拟)

    TIANKENG's rice shop 题目链接: http://acm.hust.edu.cn/vjudge/contest/123316#problem/J Description TIANKE ...

  2. TIANKENG’s rice shop

    Problem Description TIANKENG managers a pan fried rice shop. There are n kinds of fried rice numbere ...

  3. 1056. Mice and Rice (25)

    时间限制 30 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Mice and Rice is the name of a pr ...

  4. [leetcode-526-Beautiful Arrangement]

    Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is const ...

  5. zoj3777 Problem Arrangement

    The 11th Zhejiang Provincial Collegiate Programming Contest is coming! As a problem setter, Edward i ...

  6. ZOJ 3777-Problem Arrangement(状压DP)

    B - Problem Arrangement Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %l ...

  7. [LeetCode] Beautiful Arrangement II 优美排列之二

    Given two integers n and k, you need to construct a list which contains n different positive integer ...

  8. [LeetCode] Beautiful Arrangement 优美排列

    Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is const ...

  9. PAT1056:Mice and Rice

    1056. Mice and Rice (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Mice an ...

随机推荐

  1. 使用CEF(四)— 在QT中集成CEF(1):基本集成

    QT作为C++下著名的跨平台软件开发框架,实现了一套代码可以在所有的操作系统.平台和屏幕类型上部署.我们前几篇文章讲解了如何构建一款基于CEF的简单的样例,但这些样例的GUI都是使用的原生的或者是控件 ...

  2. storm卡顿修改

    ​ 最近的webstorm越来越卡了,有时候甚至会弹出 Out of memory的窗口,提示要设置 xmx的值, 8G内存跑你这小软件还会不够用???要内存?给你,看你还会不会卡成翔! 于是果断给x ...

  3. 2021.3.10--vj补题

    B - Saving the City cf--1443B Bertown is a city with nn buildings in a straight line. The city's sec ...

  4. Windows10使用技巧

    Windows10配置技巧 新机配置 "我的电脑"图标设置 在桌面右击鼠标=>个性化=>点击左侧"主题"=>点击相关的设置中的"桌面 ...

  5. Alpha发布声明

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 Alpha-发布声明 我们是谁 删库跑路对不队 我们在做什么 题士 进度如何 进度总览 一.功能与特性 1. ...

  6. TDengine在数益工联工业物联采集平台建设中的初步实践

    作者:易永耀 夏杭泰 邓炜兴 公司介绍 数益工联致力于打造基于数据流+价值流的离散制造业数字化软件:应用新一代的物联网技术与丰富的现场交互手段,融合工业工程精益思想,为离散制造业客户的数字化升级提供从 ...

  7. 修改git仓库的远程地址

    在我们开发的过程中,代码一般是由 git 来管理的,但有些时候我们的 git 仓库的地址可能发生了变换,比如我们使用的 gitLab 地址发生了变化,那么这个时候如何来将原项目的 git 地址进行修改 ...

  8. Noip模拟36 2021.8.11

    刚题的习惯还是改不了,怎么办??? T1 Dove打扑克 考场上打的动态开点线段树+并查集,考后发现自己像一个傻子,并查集就行.. 这几天恶补数据结构疯了 用树状数组维护后缀和,$siz_i$表示编号 ...

  9. 华为HG255D挂卡中继专用旋风科技固件

    正的挂卡不掉线不掉速,稳定上网看上去好像很NB的样子 挂卡设置教程:http://picimg.lshou.com/pic/clou ... /6/t/1/30247515.mp4 固件链接: htt ...

  10. Verdi Transaction Debug Mode 简单使用

    转载:Verdi Transaction Debug Mode 简单使用_Holden_Liu的博客-CSDN博客 文档与源码: User Guide: Verdi_Transaction_and_P ...