C++解题报告——Ronald(理论+图搜索)
题目描述
一个国家有n个城市,城市之间连接着双向航空线路。一位疯狂的航空公司总裁Ronald Krump经常改变航班时刻表。更准确地说,他每天都做以下事情:
●选择其中一个城市
●如果该城市和某个其他城市之间之前没有航线那么在这两个城市之间创建一条航线,如果该城市和某个其他城市之间之前已有航线那么取消这条航线
例如,如果从城市5有航线通往城市1和2,但没有航线通往城市3和4,那么在Krump选择城市5并进行操作后,将有从城市5通往城市3和4的航线,但没有从城市5通往城市1和2的航线。
这个国家的公民在想,是否有一天航线图会变为完全图。换言之,当天任意两个不同的城市之间存在一条航线(直达)。写一个程序,根据当前的航线图,确定是否有可能有某一天出现这种情况,通过Krump的操作。
输入格式
第一行输入包含一个整数N(2≤N≤1000)。表示城市的数量。城市从1到N编号。 第二行输入包含一个整数M(0≤M≤N*(N-1)/2)。表示当前航线的数量。 接下来M行每行包含两个不同的整数,表示一条航线连接的两个城市的编号。
输出格式
如果有一天航线图会变为完全图,那么输出“DA”。否则输出“NE”。输出均不含引号。
样例
样例输入1
2 0
样例输出1
DA
样例输入2
3 2 1 2 2 3
</