/*
爆搜,正解弃坑
*/
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
using namespace std;
const int maxn = ;
int n,m,x1[maxn],y1[maxn],x2[maxn],y2[maxn],vis[maxn][maxn],p[maxn][maxn],l[maxn];
bool dfs(int col,int stp,int y,int x){
if(y == y2[col] && x == x2[col]){
l[col] = stp;
if(col == m){
int tmpl = ;
for(int i = ;i <= m;i++) tmpl += l[i];
if(tmpl == n*n) return true;
else return false;
}
return dfs(col+,,y1[col+],x1[col+]);
}
vis[y][x] = col;
int ty,tx;
for(int i = ;i <= ;i+=){
if(i == ){
ty = y - ;
tx = x;
}else if(i == ){
ty = y;
tx = x - ;
}else if(i == ){
ty = y;
tx = x + ;
}else{
ty = y + ;
tx = x;
}
if(ty < || ty > n || tx < || tx > n || (vis[ty][tx] && (ty != y2[col] || tx != x2[col]))) continue;
p[y][x] = i;
if(dfs(col,stp+,ty,tx)) return true;
}
if(y != y1[col] || x != x1[col])vis[y][x] = ;
return false;
}
int main(){
freopen("jian.in","r",stdin);
freopen("jian.out","w",stdout);
cin>>n>>m;
for(int i = ;i <= m;i++){
cin>>x1[i]>>y1[i]>>x2[i]>>y2[i];
vis[y1[i]][x1[i]] = vis[y2[i]][x2[i]] = i;
}
dfs(,,y1[],x1[]);
int nowy,nowx;
for(int i = ;i <= m;i++){
cout<<l[i]<<endl;
nowy = y1[i];
nowx = x1[i];
for(int j = ;j <= l[i];j++){
cout<<nowx<<" "<<nowy<<endl;
if(p[nowy][nowx] == ) nowy--;
else if(p[nowy][nowx] == ) nowx--;
else if(p[nowy][nowx] == ) nowx++;
else if(p[nowy][nowx] == ) nowy++;
}
}
return ;
}

清北暑假模拟day2 将的更多相关文章

  1. 清北暑假模拟day2 之

    /* 现场代码,枚举每条边删除 */ #include<iostream> #include<cstdio> #include<string> #include&l ...

  2. 清北暑假模拟day2 国

    [题目描述]在世界的东边,有三瓶雪碧.--laekov黎大爷为了虐 zhx,给 zhx 出了这样一道题.黎大爷搞了一个数据结构,但是他没有告诉 zhx 这到底是什么数据结构,我们只知道这是一个数据结构 ...

  3. 清北暑假模拟day1 艳阳天

    /* 注意P有可能不是质数,不要用欧拉函数那一套,正解可以倍增,就是等比数列和的性质,注意n是否为奇数 */ #include <cstdio> #include <algorith ...

  4. 清北暑假模拟day1 生活

    /* 数字三角形,要求第K大的值,可以推知,如果得知k的范围,那么一定是在上一行可转移状态的对应范围内(反证法可以证明),这个在背包九讲里也有提及 */ #include<cstdio> ...

  5. 清北暑假模拟day1 爱

    /* 水题 */ #include<iostream> #include<cstdio> #include<string> #include<cstring& ...

  6. 清北学堂模拟赛day7 数字碰撞

    /* clj:水题别人都满分你不是你就完了,所以说水题一定要细心一点,有这么几个细节:①前导零的处理,全是零的时候要特判②换行要注意,不要多大一行,剩下就是水水的模拟了 */ #include< ...

  7. 清北学堂模拟赛d4t1 a

    分析:大模拟,没什么好说的.我在考场上犯了一个超级低级的错误:while (scanf("%s",s + 1)),导致了死循环,血的教训啊,以后要记住了. /* 1.没有发生改变, ...

  8. 清北学堂模拟赛day7 错排问题

    /* 考虑一下已经放回m本书的情况,已经有书的格子不要管他,考虑没有书的格子,不考虑错排有(n-m)!种,在逐步考虑有放回原来位置的情况,已经放出去和已经被占好的格子,不用考虑,剩下全都考虑,设t=x ...

  9. 清北学堂模拟赛day7 石子合并加强版

    /* 注意到合并三堆需要枚举两个端点,其实可以开一个数组记录合并两堆的结果,标程好像用了一个神奇的优化 */ #include<iostream> #include<cstdio&g ...

随机推荐

  1. SQL Server 2012 学习笔记2

    1. 新建数据库 可以在对应目录下右键新建数据库,也可以用程序添加: 先打开程序编辑对话框"New Query" create database Library 2. 添加表格 可 ...

  2. C#中值类型和引用类型图解

    举几个值类型和引用类型的内存配置: 值类型存储在栈中,引用类型堆里: 1,数组 数组是引用类型,但是数组的元素可以是值类型或引用类型 2. 结构 结构是值类型,简略的看个例子 struct sampl ...

  3. js008-BOM

    js008-BOM 本章内容: 1.理解window对象-BOM的核心 2.控制窗口.框架和弹出窗口 3.利用location对象中的页面信息 4.使用navigation对象了解浏览器 ECMASc ...

  4. css001 Css需要的html

    Css需要的html 可以忘却的html属性和标签 1.不要用<font>来控制字体的大小和类型.(那要用什么?见第六章) 2.不要用<b>和<i>(b和i只是把字 ...

  5. electron photobooth.js

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. Integer 与int 赋值比较

    测试代码: @Test public void IntegerTest() { Integer i01 = 59; int i02 = 59; Integer i03 = Integer.valueO ...

  7. 一台机子上运行使用不同Java版本的多个tomcat

    方法 在tomcat/bin/下创建setenv.sh并写入 export JAVA_HOME=/usr/share/jvm/jdk1..0_91 When you starting tomcat u ...

  8. draw9的使用说明

    转载来自:http://isux.tencent.com/android-ui-9-png.html 在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以 ...

  9. JAVA属性和成员的可见性

  10. Aspect Oriented Programming using Interceptors within Castle Windsor and ABP Framework AOP

    http://www.codeproject.com/Articles/1080517/Aspect-Oriented-Programming-using-Interceptors-wit Downl ...