首页 > 其他分享 >CodeForces-1143#C 题解

CodeForces-1143#C 题解

时间:2022-10-22 18:34:44浏览次数:92  
标签:1143 int 题解 CodeForces 尊重 true 节点

正文

时间复杂度:\(\mathcal{O}(n)\)

思维题,不需要建树。

设数组 \(a\) 记录每一个节点是否尊重它的父节点,数组 \(b\) 记录是否有节点尊重它,特别的,叶子节点必然不被尊重。

对于每次的输入数据 \(x,y\)。若 \(y\) 等于 1(即不尊重它的父节点),那 \(a_i \leftarrow 1\);若 \(y\) 等于 0,那 \(b_a\leftarrow 1\),最后遍历一遍,如果 \(a_i=1,b_i\ne 1\),那么代表这个节点既不尊重它的父节点,也没有子节点尊重它,输出。

代码:

#include<bits/stdc++.h>
using namespace std;
int n;
pair<bool,bool> a[(int)1e5+5];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		int f,b;
		cin>>f>>b;
		if(b==0)
			a[f==-1?0:f].second=true;
		else	a[i].first=true;
	}
	bool flag=true;
	for(int i=1;i<=n;i++){
		if(a[i].first and !a[i].second){
			flag=false;
			cout<<i<<' ';
		}
	}
	if(flag)	cout<<-1;
}

洛谷提交记录,华丽结束。

后附

日志

v1.0 on 2022.10.01: 发布

标签:1143,int,题解,CodeForces,尊重,true,节点
From: https://www.cnblogs.com/wanguan/p/16816905.html

相关文章

  • [题解]如何求连续区间最大和
    给一个数列,有正有负,如何求最大的连续区间和?需要设f数组表示每个位置为结尾的最大区间和能否让f[i]等于f[i-1]+a[i]要看这样的f[i]是否大于零如果大于0,就说明它仍然可以......
  • Educational Codeforces Round 138
    EducationalCodeforcesRound138这把是真的丢了大脸。Dashboard$\color{Green}{★}\\$表示赛时做出。$\color{Yellow}{★}\\$表示赛后已补。$\color{Red}{★}......
  • Codeforces 823B
    题意:对若干正整数二元组\((x_i,t_i)\),求一个实数\(x_0\),使得\(max\{t_i+|x_i-x_0|\}\)最小。n<=1e5。思考:​ 虽然问的是\(x_0\),但不妨对这个最小的最大值进行二分,也......
  • 「题解」洛谷 P8529 [Ynoi2003] 赫露艾斯塔
    构造半平面莫队?/jk注意到对于一个半平面的直线,通过平移和旋转经过的点数,一定大于等于它们的对称差,因为对称差中的点会被经过奇数次,不在对称差中的点会被经过偶数次。那么......
  • ABC266 ~ 273 题解
    缺省源#pragmaGCCoptimize(3)#include<bits/stdc++.h>namespace//tofoldthatjunkcode{#definefilein(x){freopen(x".in","r",stdin);}#definefile(......
  • Educational Codeforces Round 138 (Rated for Div. 2) A-E
    比赛链接A题解知识点:贪心。注意到\(m\geqn\)时,不存在某一行或列空着,于是不能移动。而\(m<n\)时,一定存在,可以移动。时间复杂度\(O(1)\)空间复杂度\(O(1)\)代......
  • Dashboard - Educational Codeforces Round 138 (Rated for Div. 2) - Codeforces
    Dashboard-EducationalCodeforcesRound138(RatedforDiv.2)-Codeforces这场比赛写的就很菜了。D题有点思路但是没想到是求是去求不满足条件的序列。1.Problem......
  • Codeforces Round #828 (Div. 3)
    CodeforcesRound#828(Div.3)1.Problem-D-Codeforces只要找有因子2的个数即可。只要因子个数是大于等于n的即可。voidslove(){cin>>n;fel(i,1,n)cin......
  • Codeforces Round #756 (Div. 3) E1
    E1.EscapeTheMaze(easyversion)我们显然遍历根节点到叶结点的同时维护最短距离然后在return的时候看该点距离是否大于最近的朋友的距离要是大于的话我们显然可以......
  • Fabricating Sculptures 题解
    草草地写一篇题解,废话不多说暴力要拼成“^”型,考虑\(DP\)令\(f_{i,j}\)表示,总共有\(i\)个积木,其中底座占了\(j\)个积木,也就是说你还有\(i-j\)个积木来拼底座的......