http://poj.org/problem?id=2838 #include <stdio.h> struct edge { edge *pri; edge *next; }; edge *e[1010]; edge temp[1010][1010]; void add( int from, int to ) { temp[from][to].next = e[from]; temp[from][to].pri = 0; if( e[from] ) e[from]->pri = temp[from]+to; e[from] = temp[from]+to; } void del( int from, int to ) { if( temp[from][to].pri ) temp[from][to].pri->next = temp[from][to].next; if( temp[from][to].next ) temp[from][to].next->pri = temp[from][to].pri; if( e[from] == temp[from]+to ) e[from] = e[from]->next; } bool search( int from, int to ) { bool sign[1010] = { false }; int qh = 0, qe = 0, q[1010], t, k; q[qh++] = from; sign[from] = true; while( qe < qh ) { t = q[qe++]; for( edge *p = e[t]; p; p = p->next ) if( !sign[k=p-temp[t]] ) { if( k == to ) return true; sign[k] = true; q[qh++] = k; } } return false; } int main( ) { int u, v, n, q; char c[2]; scanf( "%d%d", &n, &q ); while( q-- ) { scanf( "%1s%d%d", c, &u, &v ); if( c[0] == 'I' ) { add( u, v ); add( v, u ); } else if( c[0] == 'D' ) { del( u, v ); del( v, u ); } else printf( "%cn", (u==v||search( u, v ))?'Y':'N' ); } return 0; }
Meta
-
Recent Posts
Recent Comments
Archives
- May 2024
- April 2023
- February 2023
- January 2023
- December 2022
- November 2022
- September 2022
- June 2022
- July 2021
- January 2021
- February 2020
- September 2019
- March 2018
- February 2018
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- February 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- September 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
Categories