题解:ABC013D 阿弥陀
闲话:这是 AtCoder 宣传片里的题,被我找到了!
先考虑 ,明显可以 模拟预处理出在最上面的每个位置往下走会走到什么位置,之后每次就可以 查询了。
当 时,可以依赖预处理的数据每次 暴力查询。又注意到每次对所有位置进行的变换操作是一样的,可以倍增后用类似快速幂的方法优化到 。
时间复杂度 。
核心代码:
//By: OIer rui_er
#define rep(x, y, z) for(int x = (y); x <= (z); ++x)
#define per(x, y, z) for(int x = (y); x >= (z); --x)
const int N = 2e5 + 5;
int n, m, d, a[N], p[N], f[30][N];
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> n >> m >> d;
rep(i, 1, m) cin >> a[i];
rep(i, 1, n) p[i] = i;
rep(i, 1, m) swap(p[a[i]], p[a[i] + 1]);
rep(i, 1, n) f[0][p[i]] = i;
rep(j, 1, 29) rep(i, 1, n) f[j][i] = f[j - 1][f[j - 1][i]];
rep(i, 1, n) {
int u = i;
per(j, 29, 0) if((d >> j) & 1) u = f[j][u];
cout << u << endl;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!