首页 > 其他分享 >ABC267D 题解

ABC267D 题解

时间:2023-02-25 16:34:27浏览次数:54  
标签:ABC267D int 题解 ll long 循环

前言

题目传送门!

更好的阅读体验?

两篇题解的代码写得很复杂,我是没有想到。

思路

很显然对于一个点,它必定会进入一个循环节。

如何判断它进入循环节了呢?当一个点被经过两次,就意味着已经有环了。

假设第一次进入的时候是 \(i\),第二次是 \(j\),循环节长度是 \(j - i\)。

当然进入环之前,可能有一部分不是环,所以 \(k \gets [k - (i - 1)] \bmod (j - i)\)。

然后题解又去统计循环的内容。这显然没有必要啊,直接暴力跑就完事了!

代码

#include <iostream>
#include <cstdio>
using namespace std;
const int N = 2e5 + 5;
typedef long long ll;
int a[N], dfn[N];
int main()
{
	int n; ll k;
	scanf("%d%lld", &n, &k);
	for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
	int u = 1;
	for (ll i = 1; i <= k; i++)
	{
		if (dfn[u]) //循环节找到了 
		{
			k = (k - (i - 1)) % (i - dfn[u]);
			while (k--) u = a[u];
			cout << u;
			return 0;
		}
		dfn[u] = i, u = a[u];
	}
	cout << u;
	return 0;
}

希望能帮助到大家!

标签:ABC267D,int,题解,ll,long,循环
From: https://www.cnblogs.com/liangbowen/p/17154708.html

相关文章

  • CF1383E 题解
    题意传送门给定一个长度为\(n\)的01串\(a\)。在一次操作中,你可以选择任意一个\(i\in[1,|a|)\),令\(a_i=\max(a_i,a_{i+1})\),然后将\(a_{i+1}\)删除。你可以进行......
  • AtCoder Beginner Contest 287 A-F 题解
    比赛链接A-Majority先这样再那样最后这样,就是这样。点击查看代码#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;intn,a;char......
  • AtCoder Beginner Contest 286 A-G 题解
    比赛链接A-RangeSwap根据题意,分段输出。点击查看代码#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;constintN=105;intn,......
  • P8720 [蓝桥杯 2020 省 B2] 平面切分 题解
    前言建议本题评黄,因为需要较强的数学能力。如果格式炸了去这里看哦题意给出\(N\)条直线的解析式\(y=kx+b\),求出这些直线把平面分成了几部分。思路看到这道题我们......
  • [六省联考 2017] 组合数问题 题解
    题目描述组合数\(C_n^m\)表示的是从\(n\)个互不相同的物品中选出\(m\)个物品的方案数。举个例子,从\((1,2,3)\)三个物品中选择两个物品可以有\((1,2)\),\((1,......
  • 2.25 校内模拟赛 题解
    好消息:签到题首杀。坏消息:只会签到题。\(\text{contestid:726}\)A.随机\(\text{problemid:2307}\)B.回文路径\(\text{problemid:3772}\)成功首杀。看到回......
  • AtCoder Beginner Contest 282 A-F 题解
    比赛链接A-GeneralizedABC额,对,是的,没错,先这样再那样然后这样就是这样。点击查看代码#include<cstdio>intn;intmain(){ scanf("%d",&n); for(inti=0;......
  • #68. 「NOIP2004」津津的储蓄计划 题解
    #68.「NOIP2004」津津的储蓄计划题解题目传送门题目知识点模拟题目分析非常的“明显”,这是一道模拟题。题意说明有可能在某个月的月初,津津手中的钱加上这个月妈妈......
  • #119. 最大整数 题解
    #119.最大整数题解题目传送门题目知识点字符串+贪心题意说明设有n个正整数(n<=20),将它们连接成一排,组成一个最大的多位整数。(题目简介明了,一看就是出题人懒得写题目背......
  • #160. 「NOIP2004 普及组」不高兴的津津 题解
    #160.「NOIP2004普及组」不高兴的津津题解题目传送门题目知识点枚举题意说明津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为......