codevs 2822爱在心中
不想吐槽题目.... /*
K bulabula 算法(好像用哪个T bulabula更简单 然而我并不会 - -)
丑陋的处理cnt:
Printf时 cnt中 ans[i][0]==1 的删掉
然后更丑陋的处理强连通分量的出度 :
先把所包含的所有点f 成1 然后以每个点为起点跑一边 看看是不是出度指向本连通分量内的点
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<algorithm>
#define maxn 1010
using namespace std;
stack<int>s;
int out[maxn];
int ans[maxn][maxn],n,m,f[maxn],cnt,vis[maxn][maxn];
int head1[maxn],head2[maxn],num;
struct node
{
int u,v,per;
}e1[maxn],e2[maxn];
void Input()
{
cin>>n>>m;
int i,a,b;
for(i=;i<=m;i++)
{
cin>>a>>b;
num++;
e1[num].u=a;
e1[num].v=b;
e1[num].per=head1[a];
head1[a]=num;
e2[num].u=b;
e2[num].v=a;
e2[num].per=head2[b];
head2[b]=num;
}
}
void Dfs1(int x)
{
int i;
f[x]=;
for(i=head1[x];i;i=e1[i].per)
if(f[e1[i].v]==)
Dfs1(e1[i].v);
s.push(x);
}
void Dfs2(int x)
{
ans[cnt][]++;
ans[cnt][ans[cnt][]]=x;
f[x]=;
int i;
for(i=head2[x];i;i=e2[i].per)
if(f[e2[i].v]==)
Dfs2(e2[i].v);
}
void Kosa()
{
int i;
for(i=;i<=n;i++)
if(f[i]==)
Dfs1(i);
memset(f,,sizeof(f));
while(!s.empty())
{
int tmp=s.top();
s.pop();
if(f[tmp]==)
{
cnt++;
Dfs2(tmp);
}
}
}
void Printf()//丑陋的处理....
{
int i,j,jian=,tot=,tmp[maxn],size;
for(i=;i<=cnt;i++)
if(ans[i][]==)jian++;//只有一个节点的 --
cout<<cnt-jian<<endl;
for(i=;i<=cnt;i++)
{
int flag=;
if(ans[i][]==)continue;//只有一个节点的 pass
memset(f,,sizeof(f));
for(j=;j<=ans[i][];j++)f[ans[i][j]]=;
for(j=;j<=ans[i][];j++)
{
int k;
for(k=head1[ans[i][j]];k;k=e1[k].per)
if(f[e1[k].v]==)
flag=;
}
if(!flag)
{
tot++;
tmp[maxn]={},size=;
for(j=;j<=ans[i][];j++)//记下答案 并排序
tmp[++size]=ans[i][j];
sort(tmp+,tmp++size);
}
}
if(tot!=)cout<<-;
else
{
for(j=;j<=size;j++)
cout<<tmp[j]<<" ";
}
}
int main()
{
Input();
Kosa();
Printf();
}
codevs 2822爱在心中的更多相关文章
- codevs 2822 爱在心中
codevs 2822 爱在心中 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description “每个人都拥有一个梦,即使彼此不相同, ...
- codevs——2822 爱在心中
2822 爱在心中 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description “每个人都拥有一个梦,即使彼此不相 ...
- 习题:codevs 2822 爱在心中 解题报告
这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...
- 【wikioi】2822 爱在心中
题目链接 算法:Tarjan+dfs(最短路的都行,判连通而已) 先了解一下什么是Tarjan Tarjan算法用于求出图中所有的强连通分量. 转自NOCOW:点击打开链接 ============= ...
- 【CodeVS】2822 爱在心中 [2017年6月计划 强连通分量03]
2822 爱在心中 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description “每个人都拥有一个梦,即使彼此不相同,能够 ...
- codevs2822 爱在心中
2822 爱在心中 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无 ...
- 【codevs2822】爱在心中 tarjan 缩点+理解
[codevs2822]爱在心中 2014年1月26日5580 题目描述 Description “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动.爱因为在心中,平凡而不平庸, ...
- 【CodeVS 2822】爱在心中
“每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动.爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our Home.” 在爱的国度里有N个人,在他们的心中都有着一个 ...
- 爱在心中(codevs 2822)
题目描述 Description “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动.爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our Home.” 在爱的国度 ...
随机推荐
- iOS MD5加密算法
考虑到用户账户安全,对用户的登录密码进行MD5加密 什么是MD5加密呢...懒了就不在这搬砖了,大家可以自己搜索查查,在此记录下代码,以供以后学习查询! 下面,直接上代码... // 需要倒入这个头文 ...
- [MVC] WebSecurity在VS2013中不识别
使用VS2013创建了MVC4项目以后,在filters中添加了类InitializeSimpleMembershipAttribute ,不能识别UserContext和WebSecurity,发现 ...
- codeforces C. DZY Loves Sequences
http://codeforces.com/contest/447/problem/C 题意:给你n个数的序列,然后让你改变其中的一个数,求得最长上升连续序列的长度值. 思路:先从左边开始求出连续递增 ...
- 【转】django的ORM操作数据库样例
这个算是我看到的大全了,希望可以解决明天我希望解决的两个问题... class Blog(models.Model): name = models.CharField(max_length=100) ...
- 【POJ】2001 Shortest Prefixes
字典树. #include <cstdio> #include <cstring> #include <cstdlib> #define MAXN 26 typed ...
- C/S结构与B/S结构的特点分析
C/S结构与B/S结构的特点分析 为了区别于传统的C/S模式,才特意将其称为B/S模式.认识到这些结构的特征,对于系统的选型而言是很关键的. 1.系统的性能 在系统的性能方面,B/S占有优势的是其异地 ...
- 全面理解Java异常的运行机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话. ...
- HDOJ 1995 汉诺塔V
Problem Description 用1,2,-,n表示n个盘子,称为1号盘,2号盘,-.号数大盘子就大.经典的汉诺塔问 题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔 ...
- JavaScript高级程序设计11.pdf
与操作字符串有关的最后一个方法是localeCompare(),这个方法比较两个字符串,按照字符串的字母表中的位置分别返回-1,0,1 var stringValue="yellow&quo ...
- Codeforces 348A Mafia
题目链接:http://codeforces.com/problemset/problem/348/A 题目大意:N个人中找出1个人主持,剩下N-1个人参与游戏,给出每个人想参与游戏的次数,问要满足每 ...