PAT1076. Forwards on Weibo (30)
使用DFS出现超时,改成bfs
DFS
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int n;
int l;
int i,j;
int m,k;
int follower[1001][1001];
vector<int> user_list[1001];
set<int> user_s;
void queryU(int a,int depth){
if(depth==l){
return ;
}
for(int i=0;i<user_list[a].size();i++){
queryU(user_list[a][i],depth+1);
user_s.insert(user_list[a][i]);
} return ;
}
int main()
{
cin>>n>>l;
int a;
for(i=1;i<=n;i++){
cin>>m;
for(j=0;j<m;j++){
cin>>a;
user_list[a].push_back(i);
}
}
cin>>k;
int sum;
for(i=0;i<k;i++){
cin>>a;
user_s.clear();
user_s.insert(a);
queryU(a,0);
cout<<user_s.size()-1<<endl;
}
return 0;
}
bfs
最后一个测试用例一直MLE,后来用指针优化,就报超时了。
后来参考 https://www.zhihu.com/question/28264519,把队列删除语句省掉,set省掉,终于AC了!
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int n;
int l;
int i,j;
int m,k;
vector<int> user_list[1010];
vector<int> que;
int v[1005];
int main()
{
cin>>n>>l;
int a;
for(i=1;i<=n;i++){
cin>>m;
for(j=0;j<m;j++){
cin>>a;
user_list[a].push_back(i);
}
}
cin>>k;
for(i=1;i<=k;i++){
cin>>a;
v[a]=i;
int depth=0;
que.clear();
que.push_back(a);
int levelSize=0;
int count=1;
for(int z=0;z<que.size();z++){
int num=que[z];
count--;
vector<int> *tmp=&user_list[num];
levelSize+=tmp->size();
for(int y=0;y<tmp->size();y++){
int temp_num=(*tmp)[y];
if(v[temp_num]!=i){
que.push_back(temp_num);
v[temp_num]=i;
}
}
if(count==0){
count=levelSize;
levelSize=0;
depth++;
}
if(depth==l){
break;
}
}
cout<<que.size()-1<<endl;
}
return 0;
}
PAT1076. Forwards on Weibo (30)的更多相关文章
- 1076. Forwards on Weibo (30)【树+搜索】——PAT (Advanced Level) Practise
题目信息 1076. Forwards on Weibo (30) 时间限制3000 ms 内存限制65536 kB 代码长度限制16000 B Weibo is known as the Chine ...
- PAT 甲级 1076 Forwards on Weibo (30分)(bfs较简单)
1076 Forwards on Weibo (30分) Weibo is known as the Chinese version of Twitter. One user on Weibo m ...
- 1076. Forwards on Weibo (30)
时间限制 3000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Weibo is known as the Chinese v ...
- PAT 1076. Forwards on Weibo (30)
Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...
- 1076. Forwards on Weibo (30) - 记录层的BFS改进
题目如下: Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, a ...
- 1076 Forwards on Weibo (30)(30 分)
Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...
- PAT Advanced 1076 Forwards on Weibo (30) [图的遍历,BFS,DFS]
题目 Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and ...
- Forwards on Weibo (30)
BFS,题意比较难懂,是求离query L层的总共人数 #include <stdio.h> #include <string.h> #include <iostream ...
- PAT1076. Forwards on Weibo(标准bfs模板)
//标准的层次遍历模板 //居然因为一个j写成了i,debug半天.....解题前一定要把结构和逻辑想清楚,不能着急动手,理解清楚题意,把处理流程理清楚再动手,恍恍惚惚的写出来自己慢慢debug吧 # ...
随机推荐
- [POJ] Brackets Sequence
This problem can be solved elegantly using dynamic programming. We maintain two arrays: cnt[i][j] -- ...
- 《JAVA多线程编程核心技术》 笔记:第三章:线程间通信
一. 等待/通知机制:wait()和notify()1.1.使用的原因:1.2 具体实现:wait()和notify()1.2.1 方法wait():1.2.2 方法notify():1.2.3 wa ...
- 网络模型+三次握手+四次挥手+DNS+HTTPS
网络模型+三次握手+四次挥手+DNS+HTTPS 这篇文章十分精华,所以整理一下: 一.网络模型 OSI七层模型,和TCP/IP五层模型(更为普遍) TCP/IP 协议集: 二.TCP协议(传输层)建 ...
- 手动爬虫之糗事百科(ptyhon3)
一.调用封装的Url_ProxyHelper类,源码如下 import urllib.request as ur class Url_ProxyHelper: def __init__(self, u ...
- POJ 3020 Antenna Placement【二分匹配——最小路径覆盖】
链接: http://poj.org/problem?id=3020 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...
- ZooKeeper 基本介绍
Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数 ...
- Python位运算符
按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 下表中变量 a 为 60,b 为 13,二进制格式如下: a = 0011 1100 b = 0000 1101 ---- ...
- 我的Android进阶之旅------>解决:debug-stripped.ap_' specified for property 'resourceFile' does not exist.
1.错误描述 更新Android Studio到2.0版本后,出现了编译失败的问题,我clean project然后重新编译还是出现抑郁的问题,问题具体描述如下所示: Error:A problem ...
- Python高级教程-列表生成式
List Comprehensions(列表生成式) 列表生成式,是Python内置的非常简单却强大的可以用来创建list的生成式. 例如,要生成list:[1,2,3,4,5,6,7,8,9,10] ...
- upsampling(上采样)& downsampled(降采样)
缩小图像 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的是两个: 使得图像符合显示区域的大小: 生成对应图像的缩略图: 下采样的原理: 对于一幅图像尺寸为 ...