1076 Forwards on Weibo

练习 专栏收录该内容
322 篇文章 0 订阅

题目

题意:给出微博每个人关注的人,给定查询序列,求出其L直属等级下其微博能够转发的最大次数,自身不算。

tip:模拟 

#include<iostream>
#include<vector>
using namespace std;
int main() {
	int n,m;
	cin>>n>>m;
	int ans[n+1][n+1]={0};
	for(int i=1; i<=n; ++i) {
		int k;
		cin>>k;
		for(int j=0; j<k; ++j) {
			int t;
			cin>>t;
			ans[t][i]=1;// i 关注 t 
		}
	}
	int k;
	cin>>k;
	for(int i=0; i<k; ++i) {
		int checked[n+1]= {0};//看是否前面记录过 
		int a;
		cin>>a;
		int t=m;
		vector<int> ans1;
		ans1.push_back(a);//最终结果 
		vector<int> ans2(ans1.begin(),ans1.end());//每个等级的人员 
		while(t) {
			vector<int>temp(ans2.begin(),ans2.end());//上一个等级的人员 
			ans2.clear();
			for(int j=0;j<temp.size();++j)
			{
				a=temp[j];
				checked[a]=1;
				for(int l=1; l<=n; ++l)
					if(ans[a][l]&&!checked[l]) {//有关系,且没有遍历过 
						checked[l]=1;
						ans2.push_back(l);//记录当前等级的人员 
						ans1.push_back(l);
					}
			}
			t--;
		}
		cout<<ans1.size()-1<<endl; 
	}
	return 0;
}

 

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:马嘣嘣 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值