CF-192-diy-2 (五)

2014-11-23 22:30:47 ? 作者: ? 浏览: 21
+1)%n];

for(int k=0;k if(b==vv[a][k])
flag=false;
}
if(flag) //满足的话,直接输出
{
for(int j=0;j printf("%d %d\n",myv[j],myv[(j+1)%n]);
tt=true;
break;
}

}
if(!tt)
printf("-1\n");
}

return 0;
}

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define eps 1e-6
#define INF 0x1f1f1f1f
#define PI acos(-1.0)
#define ll __int64
#define lson l,m,(rt<<1)
#define rson m+1,r,(rt<<1)|1
using namespace std;

/*
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
*/
vectormyv;
vectorvv[110000];
int n,m;

int main()
{
srand((unsigned)(time(NULL)));
while(scanf("%d%d",&n,&m)!=EOF)
{
int a,b;
myv.clear();

for(int i=1;i<=n;i++)
{
vv[i].clear();
myv.push_back(i);
}

for(int i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
vv[a].push_back(b);
vv[b].push_back(a);
}

bool tt=false;
for(int i=1;i<=500;i++) //随机次数
{
random_shuffle(myv.begin(),myv.end()); //随机节点
bool flag=true;

for(int j=0;j {
int a=myv[j];
int b=myv[(j+1)%n];

for(int k=0;k if(b==vv[a][k])
flag=false;
}
if(flag) //满足的话,直接输出
{
for(int j=0;j printf("%d %d\n",myv[j],myv[(j+1)%n]);
tt=true;
break;
}

}
if(!tt)
printf("-1\n");
}

return 0;
}

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: