首页 > 其他分享 >题解:AT_abc296_e [ABC296E] Transition Game

题解:AT_abc296_e [ABC296E] Transition Game

时间:2024-12-17 14:24:37浏览次数:4  
标签:int 题解 Transition long Game ABC296E ind abc296

题目传送门

思路

我们可以在环中任选一点,然后在环内可以转到另一个点。因为起点自由选择,所以环中每个点都可以到达,由此我们可以得知环上的所有点都是必胜点。

我们把这个问题抽象为一张图,用拓扑排序判环即可。

AC 代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 2e5 + 10;
int n,a[N],ind[N],ans;queue<int> q; 

void ts(){//拓扑排序
	while (!q.empty()) {
		int u = q.front();
		q.pop();
		if (!--ind[a[u]]){
			q.push(a[u]);
		} 
	}
}

int main(){
	ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);
	cin>>n;
	for (int i = 1; i <= n; i++)cin>>a[i],ind[a[i]]++;
	for (int i = 1; i <= n; i++)if (!ind[i])q.push(i);
	ts();
	for (int i = 1; i <= n; i++)ans += ind[i];
	cout<<ans;
	return 0;
}

标签:int,题解,Transition,long,Game,ABC296E,ind,abc296
From: https://www.cnblogs.com/zenoszheng/p/18612331

相关文章

  • 题解:B3832 [NICA #2] 回来吧我的小波
    思路经典抽屉原理。对于长度大于\(9\)的子串,我们就可以认为它一定是好的,因为一定有两个数是相同的,它们可以互相整除。对于剩下长度小于等于\(9\)的子串,我们对它们进行暴力枚举即可。AC代码#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;strings......
  • 题解:B3803 [NICA #1] 上大分
    思路看到这道题首先考虑贪心和动态规划。贪心是不行的,因为这里有先减分再加分的数据,也就是说故意在div1的比赛掉分,使得下一次能够打div2加更多的分。我们考虑动态规划,我们用\(f[i][j]\)表示在前\(i\)场比赛中得\(j\)分至少需要打几场比赛,就可以轻易推出这题的转移方......
  • 题解:AT_abc236_f [ABC236F] Spices
    今天2024秋令营Day1的贪心例题,来解释一下这道题贪心的思路。首先输入一个整数\(n\),表示需要处理的数字数量为\(2^n-1\),随后输入每个编号的代价,并将代价和编号存储在数组\(a\)中。接着,对代价进行排序,以便在后续处理中优先选择代价较小的数字。然后,使用一个\(vis\)数......
  • 题解:P7020 [NWRRC2017] Boolean Satisfiability
    首先,我们需要明确一个重要的恒等式:\[x\mid\nega=1\]当\(x=1\)时,\(x\mid\negx=1\mid0\)的结果为\(1\)。当\(x=0\)时,\(x\mid\negx=0\mid1\)的结果同样为\(1\)。因此,我们可以得出结论,该式子的结果恒为\(1\)。接下来,我们观察到,当表达式中仅包含......
  • 牛客周赛 Round 72 题解
    牛客周赛Round72题解A小红的01串(一)直接遍历即可#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ strings;cin>>s;intn=s.size();intcnt=0;for(inti=1;i<n;i++){if(s[i]!=s[i-1])cnt++;}......
  • P5773 [JSOI2016] 轻重路径 题解
    Description在二叉树上,不断删除叶子,你要维护其重链剖分后重儿子编号和。如果两个孩子大小相同,在一开始连向左儿子,后面保持修改前的连接。\(n\leq2\times10^5\)。Solution考虑把一个叶子\(x\)删掉会对改变哪些点的重儿子。首先改变的点\(y\)一定在\(x\)到根的链上,同时......
  • YbtOj题解索引
    不想写作业,水篇博客图论:并查集(已完结)最小生成树(已完结)强连通分量(已完结)最短路径(已完结)数据结构:堆(已完结)RMQ问题(未完结)树状数组(未完结)动态规划:数位DP(未完结)......
  • 题解 - 最小的Y
    题目描述程序设计与数学密切相关,所以兴趣小组的辅导老师经常拿一些有趣的数学题来让大家思考。一次课上,辅导老师又拿出了一个有趣的数学问题,题目是这样的:给你两个正整数x和z,求最小的整数y,使得x×y以后再除以z的余数为0。比如x=3,z=6,求最小的y。题目一出,马上有同学说:最小......
  • 2021ICPC EC final B. Beautiful String题解
    今天跟队友vp21年ECfinal,最后可惜计算几何没开出来,以及J题时间不够没做出来,主要就是B做太麻烦了,导致花了太多时间。但是作为串串人,还是非常喜欢字符串题,这里写一下我们的B题做法。题意定义一个好串是能将字符串分为6个部分\(s_1+s_2+s_3+s_4+s_5+s_6\)并且满足\(s_1=s_2=s_5,......
  • NOIP2024 题解
    考场上一直都不知道在想什么,心态也很不好,结果B一直不会,最后会了C还没写完。感觉这个赛季对我来说就已经结束了吧/hsh/wn本来是想退役的,但是学文化课对我来说太痛苦了,而且我还是比较热爱OI的,所以就再试着走一走吧。P11361[NOIP2024]编辑字符串发现限制就是将\(s\)......