P3207 [HNOI2010]物品调度】的更多相关文章

传送门 完了题目看错了--还以为所有的\(x,y\)都要一样--结果题解都没看懂-- 先考虑如果已经求出了所有的\(pos\)要怎么办,那么我们可以把\(0\)也看做是一个箱子,然后最后每个箱子都在一个环里.如果是自环无视,如果\(0\)在这个环里就用\(0\)做每次的中介把所有都换到正确的位置上,总共要\(L-1\)次,否则的话把\(0\)换进环里然后换完之后再换出去,总共要换\(L+1\)次 我们发现随着\(x\)的增大,\(pos\)肯定是形成一个环的--随意就枚举\(y\)的值,然后看看…
[BZOJ1998][HNOI2010]物品调度(并查集,模拟) 题面 BZOJ,为啥这题都是权限题啊? 洛谷 题解 先不管\(0\)位置是个空,把它也看成一个箱子.那么最终的答案显然和置换循环节的个数相关,对于大小为\(1\)的循环,显然就是不要动.对于大小为\(L\)的循环,如果包含\(0\)位置,显然还要动\(L-1\)次,如果不包含\(0\)位置,显然要先把\(0\)位置弄进这个环里面来,再把它移出去,也就是\(L+1\)次.那么我们就可以很容易的计算答案. 然而现在最大的难题变成了如何…
题目描述 现在找工作不容易,Lostmonkey费了好大劲才得到fsk公司基层流水线操作员的职位.流水线上有n个位置,从0到n-1依次编号,一开始0号位置空,其它的位置i上有编号为i的盒子.Lostmonkey要按照以下规则重新排列这些盒子. 规则由5个数描述,q,p,m,d,s,s表示空位的最终位置. 首先生成一个序列c,c0=0,ci+1=(ci*q+p) mod m. 接下来从第一个盒子开始依次生成每个盒子的最终位置posi,posi=(ci+d*xi+yi) mod n,xi,yi是为了…
标签:链表+数论知识. 题解: 对于这道题,其实就是两个问题的拼凑,我们分开来看. 首先要求xi与yi.这个可以发现,x每增加1,则pos增加d:y每增加1,则pos增加1.然后,我们把x与y分别写在二维平面上,比如样例:    x= 0  1y=0  {0  4}y=1  {1  5}y=2  {2  6}y=3  {3  7} 发现行数=gcd(n,d),列数=n/gcd(n,d). 那么题目要求y尽量小,然后x尽量小.我们先求y,那么初始pos就是ci,把ci放入这张表,寻找最近的可以不重…
[BZOJ1998][Hnoi2010]Fsk物品调度 试题描述 现在找工作不容易,Lostmonkey费了好大劲才得到fsk公司基层流水线操作员的职位.流水线上有n个位置,从0到n-1依次编号,一开始0号位置空,其它的位置i上有编号为i的盒子.Lostmonkey要按照以下规则重新排列这些盒子. 规则由5个数描述,q,p,m,d,s,s表示空位的最终位置.首先生成一个序列c,c0=0,ci+1=(ci*q+p) mod m.接下来从第一个盒子开始依次生成每个盒子的最终位置posi,posi=(…
1998: [Hnoi2010]Fsk物品调度 Description 现在找工作不容易,Lostmonkey费了好大劲才得到fsk公司基层流水线操作员的职位.流水线上有n个位置,从0到n-1依次编号,一开始0号位置空,其它的位置i上有编号为i的盒子.Lostmonkey要按照以下规则重新排列这些盒子. 规则由5个数描述,q,p,m,d,s,s表示空位的最终位置.首先生成一个序列c,c0=0,ci+1=(ci*q+p) mod m.接下来从第一个盒子开始依次生成每个盒子的最终位置posi,pos…
BZOJ_1998_[Hnoi2010]Fsk物品调度_并查集+置换 Description 现在找工作不容易,Lostmonkey费了好大劲才得到fsk公司基层流水线操作员的职位.流水线上有n个位置,从0到n-1依次编号,一开始0号位置空,其它的位置i上有编号为i的盒子.Lostmonkey要按照以下规则重新排列这些盒子. 规则由5个数描述,q,p,m,d,s,s表示空位的最终位置.首先生成一个序列c,c0=0,ci+1=(ci*q+p) mod m.接下来从第一个盒子开始依次生成每个盒子的最…
http://www.lydsy.com/JudgeOnline/problem.php?id=1998 题意: 给你6个整数$n,s,q,p,m,d$. 有$n$个位置和$n-1$个盒子,位置编号从$0$开始(盒子编号从$1$开始).一开始第$i$个盒子在第$i$个位置上,$0$号位置是空位.然后有一个$pos$序列,其中$i$位置上放的盒子是$pos_i$(其中$s$位置上必须是空位).问:每次只能将一个盒子移动到空位上(然后这个盒子的位置变成空位),求从初始局面移动到$pos$局面的最少步…
传送门 流水线上有n个位置,从0到n-1依次编号,一开始0号位置空,其它的位置i上有编号为i的盒子.Lostmonkey要按照以下规则重新排列这些盒子. 规则由5个数描述,q,p,m,d,s,s表示空位的最终位置.首先生成一个序列c,c0=0,ci+1=(ci*q+p) mod m.接下来从第一个盒子开始依次生成每个盒子的最终位置posi,posi=(ci+d*xi+yi) mod n,xi,yi是为了让第i个盒子不与之前的盒子位置相同的由你设定的非负整数,且posi还不能为s.如果有多个xi,…
置换群的部分水得一比,据说是经典的置换群理论(然而我并不知道这理论是啥).重点就在于怎么求pos!!!容易发现这个东西是这样的:每次寻找pos,先在本环里找,找不到再往下一个环里找,直到找到为止……一开始我想二分或者是set,但是感觉会T,然后想了很久之后想到用并查集:就是维护每一个被占用的位置的下一个位置,因为这个位置被占用之后就会转向下一个位置,当然下一个位置有在环内部和在下一个环里两种情况,这两种情况都我都是用并查集维护的,但是一定要注意,不要把这两种情况写成一个并查集,这样路径压缩之后会…