博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P3207 [HNOI2010]物品调度
阅读量:7192 次
发布时间:2019-06-29

本文共 1601 字,大约阅读时间需要 5 分钟。

完了题目看错了……还以为所有的\(x,y\)都要一样……结果题解都没看懂……

先考虑如果已经求出了所有的\(pos\)要怎么办,那么我们可以把\(0\)也看做是一个箱子,然后最后每个箱子都在一个环里。如果是自环无视,如果\(0\)在这个环里就用\(0\)做每次的中介把所有都换到正确的位置上,总共要\(L-1\)次,否则的话把\(0\)换进环里然后换完之后再换出去,总共要换\(L+1\)
我们发现随着\(x\)的增大,\(pos\)肯定是形成一个环的……随意就枚举\(y\)的值,然后看看这个环上还有没有空位可以放,有的话就放进去。总之就是用并查集维护,每次放完之后指向下一个能放的位置,即\(x+D\)

//minamoto#include
#define R register int#define fp(i,a,b) for(R i=a,I=b+1;i
I;--i)using namespace std;char buf[1<<21],*p1=buf,*p2=buf;inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}int read(){ R res,f=1;char ch; while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1); for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0'); return res*f;}const int N=1e5+5;int n,S,Q,P,M,D,x,y,ans,cnt,tot,fa[N],C[N],pos[N];bool vis[N];int find(R x){return fa[x]==x?x:fa[x]=find(fa[x]);}void merge(R x,R y){fa[find(x)]=find(y);}void solve(){ n=read(),S=read(),Q=read(),P=read(),M=read(),D=read(); fp(i,1,n-1)C[i]=(1ll*C[i-1]*Q+P)%M;fp(i,0,n-1)fa[i]=i; memset(vis,0,sizeof(vis)),pos[0]=S,vis[S]=true,merge(S,(S+D)%n); fp(i,1,n-1){ x=find(C[i]%n),y=0; while(vis[x])++y,x=find((C[i]+y)%n); pos[i]=x,vis[x]=1,merge(x,(x+D)%n); } memset(vis,0,sizeof(vis)),ans=cnt=0; fp(i,0,n-1)if(!vis[i]){ tot=0,x=i; while(!vis[x])++tot,vis[x]=true,x=pos[x]; if(tot>1)ans+=tot,++cnt; }ans+=pos[0]?cnt-2:cnt;printf("%d\n",ans);}int main(){// freopen("testdata.in","r",stdin); int T=read(); while(T--)solve(); return 0;}

转载于:https://www.cnblogs.com/bztMinamoto/p/10055300.html

你可能感兴趣的文章
maven添加本地jar包
查看>>
PHP 重置数组为连续数字索引的方式
查看>>
致创业者:APP已死 服务永生
查看>>
解决TIME_WAIT过多造成的问题
查看>>
mysql 主从同步故障解决 Error 'Row size too large (> 8126).
查看>>
16位纯数字MD5
查看>>
腾讯面试
查看>>
数据备份就用多备份
查看>>
企业如何进行IT基础设施规划
查看>>
我的友情链接
查看>>
iOS面试题第一波
查看>>
在centos中安装puppet和安装过程的一些错误解决
查看>>
html元素
查看>>
使用kaptcha生成验证码
查看>>
Maven学习总结(四)——Maven核心概念
查看>>
python 连接mongodb ,并将EXCEL文档导入mongodb
查看>>
第三节 在shell脚本中进行for循环
查看>>
Java Script 中定义对象的几种方式
查看>>
mysql编译安装完成后,启动时报错The server quit without updating PID file
查看>>
MySQL 错误总结续
查看>>