(感谢wzc学长的幻灯片)

单组数据 注意从必经点能到标记过的点则此点不是分裂点。

//By: Sirius_Ren
#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;
int tot=1,first[51],cnt,v[101],nxt[101],n,vis[51],ansx=0,ansy=0,j,k;
queue<int> p,q,r;
void add(int x,int y){v[tot]=y,nxt[tot]=first[x],first[x]=tot++;}
int main()
{
memset(first,-1,sizeof(first));
for(cnt=0;~n;cnt++)
while(scanf("%d",&n)&&n>=0)add(cnt,n);
cnt--;
for(int i=1;i<cnt;i++){
memset(vis,0,sizeof(vis));
q.push(0);vis[i]=1;
while(!q.empty()){
int t=q.front();q.pop();
vis[t]=1;
for(int l=first[t];~l;l=nxt[l])
if(!vis[v[l]])q.push(v[l]);
}
if(!vis[cnt]){
ansx++,p.push(i);
for(j=0;j<=cnt;j++)
if(!vis[j]||j==i)
for(k=first[j];~k;k=nxt[k])
if(vis[v[k]]&&v[k]!=i)goto end;
ansy++,r.push(i);
end:;
}
}
printf("%d",ansx);
while(!p.empty())printf(" %d",p.front()),p.pop();
printf("\n");
printf("%d",ansy);
while(!r.empty())printf(" %d",r.front()),r.pop();
}

POJ 1172 DFS的更多相关文章

  1. POJ 1321 DFS

    题意:POJ少见的中文题,福利啊. 思路: 一开始也没有思路呃呃呃 . 裸搜,连样例都过不去...参照了网上的题解:一行一行DFS 茅塞顿开啊. #include <cstdio> #in ...

  2. POJ 1979 dfs和bfs两种解法

      fengyun@fengyun-server:~/learn/acm/poj$ cat 1979.cpp #include<cstdio> #include<iostream&g ...

  3. poj 1190 DFS 不等式放缩进行剪枝

    F - (例题)不等式放缩 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submi ...

  4. poj 1562 dfs

    http://poj.org/problem?id=1562 #include<iostream> using namespace std; ,m=,sum=; ][]; ][]={-,, ...

  5. POJ 1979 DFS

    题目链接:http://poj.org/problem?id=1979 #include<cstring> #include<iostream> using namespace ...

  6. poj 1088 (dfs+记忆化) 滑雪

    题目;http://poj.org/problem?id=1088 感觉对深搜还不太熟练,所以练习一下,类似于连连看的那题,注意的是所求的是最大达长度,并不是从最大的或者最小的点出发得到的就是最长的路 ...

  7. Oil Deposits(poj 1526 DFS入门题)

    http://poj.org/problem?id=1562                                                                       ...

  8. POJ 3414 dfs 回溯

    题目链接:http://poj.org/problem?id=3414 题意:三个值A, B, C, A和B是两个杯子的容量,问最短操作数使A或者B里的水量是C.有三种操作. 思路:dfs.暴力 很简 ...

  9. poj 2531(dfs)

    题目链接:http://poj.org/problem?id=2531 思路:由于N才20,可以dfs爆搞,枚举所有的情况,复杂度为2^(n). #include<iostream> #i ...

随机推荐

  1. Python总结2

    时间:25日上午'''列表定义:在[]内,可以存放多个任意类型的值,并以逗号隔开''''students=['sb','2b']print(students[1])student_info=['min ...

  2. leetcode刷题记录--js

    leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

  3. 【css】最近使用的两种图标字体库

    ## 0. 前言 比较基础的图标加载:<img src="x.png">和块元素的背景background: url(./x.png). 页面多图标时,使用雪碧图(多个 ...

  4. hdu2003 求绝对值【C++】

    求绝对值 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  5. Sencha Touch 2.1 Chart属性中文解释

    图表的几大要素: 1.坐标:上.下.左.右. 坐标的类型,数字.分类... 坐标包含需要显示的坐标值,即绑定的字段 坐标值的样式,比如旋转.字体大小.格式 坐标的最大值.最小值.是否显示网格 坐标旁边 ...

  6. 基于CNONIX国家标准的出版社ERP系统建设分享

    目录 一.出版社ERP系统建设面临的三大挑战 在系统建设中如何贯彻CNONIX国家标准 新ERP系统建设面临的挑战 技术体系及架构选择面临的挑战 二.系统建设实施过程控制 项目组织管控 项目技术管控 ...

  7. nyoj_478_月老的烦恼(1)_201312101248

    月老的烦恼(1) 时间限制:1000 ms  |           内存限制:65535 KB 难度:3   描述 月老最近遇到了一个很棘手的问题,就是“剩男”“剩女”急速增长,而自己这边又人手不足 ...

  8. ZooKeeper的应用场景(转)

    应用场景1 :统一命名服务 分布式应用中,通常需要一套完备的命令机制,既能产生唯一的标识,又方便人识别和记忆. 我们知道,每个ZNode都可以由其路径唯一标识,路径本身也比较简洁直观,另外ZNode上 ...

  9. HDU 4540

    简单得不能再简单的DP了. #include<iostream> const int inf=1<<30; using namespace std; int map[22][2 ...

  10. .Net程序猿玩转Android开发---(6)线性布局LinearLayout

                                LinearLayout控件是Android中重要的布局控件,是一个线性控件,所谓线性控件的意思是指该控件里面的内容仅仅能水平或垂直排列.也就 ...