深搜,亮点在那个剪枝,flag代表是否搜索数组从开始到当前一直等于原始数组同位置的数,如果是真,就从原始数组的当前位置的书开始搜,否则就从0开始搜。

见代码。

#include <iostream>
#include <cstring> using namespace std;
int n,m,beg,origin[2003];
int mp[103][103];
bool vis[103][103];
int cnt;
int stk[2010];
bool check()
{
int i;
for(i=0;i<=m;i++)
{
if(stk[i]==origin[i])
continue;
if(stk[i]<origin[i])
return false;
if(stk[i]>origin[i])
return true;
}
return false;
} void dfs(int bg,bool flag)
{
// cout<<cnt<<endl;
if(cnt==m+1)
{
// for(int i=0;i<=m;i++)
// cout<<stk[i]<<' ';
// cout<<endl;
if(stk[cnt-1]==beg&&check())
{
return;
}
else
{
return;
}
}
for(int i=1;i<=n;i++)
{
if(flag&&i<origin[cnt])
continue;
if(mp[bg][i]&&!vis[bg][i])
{
vis[bg][i]=true;
vis[i][bg]=true;
stk[cnt++]=i;
dfs(i,flag&&i==origin[cnt-1]);
// cout<<stk[cnt]<<endl;
if(cnt==m+1&&stk[cnt-1]==beg&&check())
return;
// cout<<" "<<cnt<<endl;
cnt--;
// cout<<" "<<cnt<<endl;
vis[bg][i]=false;
vis[i][bg]=false;
}
}
return;
}
int main()
{
cin>>n>>m;
int i;
cnt=1;
memset(mp,0,sizeof(mp));
memset(vis,false,sizeof(vis));
cin>>origin[0];
beg=origin[0];
for(i=1;i<=m;i++)
{
cin>>origin[i];
mp[origin[i-1]][origin[i]]=1;
mp[origin[i]][origin[i-1]]=1;
}
//// for(i=1;i<=n;i++)
////// {
////// for(int j=1;j<=n;j++)
////// cout<<mp[i][j]<<' ';
////// cout<<endl;
//// }
stk[0]=beg;
dfs(beg,true);
// cout<<cnt<<endl;
if(cnt==m+1)
{
for(i=0;i<=m;i++)
cout<<stk[i]<<' ';
cout<<endl;
}
else
cout<<"No solution"<<endl;
return 0;
}

  

练手CF3-C - Wormhouse的更多相关文章

  1. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  2. Cocos2d-Lua (练手) 微信打飞机

    学习下lua,目前入门级,使用版本为 v3.3 Final For Win,空闲时间不足,只能断断续续写点东西.   一.子弹效果          子弹只做了一种,扇形发射,可以增加扇形大小,子弹的 ...

  3. web前端学习部落22群分享给需要前端练手项目

    前端学习还是很有趣的,可以较快的上手然后自己开发一些好玩的项目来练手,网上也可以一抓一大把关于前端开发的小项目,可是还是有新手在学习的时候不知道可以做什么,以及怎么做,因此,就整理了一些前端项目教程, ...

  4. webpack练手项目之easySlide(三):commonChunks(转)

    Hello,大家好. 在之前两篇文章中: webpack练手项目之easySlide(一):初探webpack webpack练手项目之easySlide(二):代码分割 与大家分享了webpack的 ...

  5. webpack练手项目之easySlide(二):代码分割(转)

    在上一篇 webpack练手项目之easySlide(一):初探webpack  中我们一起为大家介绍了webpack的基本用法,使用webpack对前端代码进行模块化打包. 但是乍一看webpack ...

  6. webpack练手项目之easySlide(一):初探webpack (转)

    最近在学习webpack,正好拿了之前做的一个小组件,图片轮播来做了下练手,让我们一起来初步感受下webpack的神奇魅力.     webpack是一个前端的打包管理工具,大家可以前往:http:/ ...

  7. JAVA大数类练手

    今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识.果断水了6道题......都是非常基础的.就当的练手的吧. 学到的只是一些大数类的基本操作.以后多做点这样的题,争取熟练运用水大数题... ...

  8. Python之路【第二十四篇】:Python学习路径及练手项目合集

      Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Py ...

  9. node论坛练手

    当时学node,自己写了个论坛练手,现在看还是有很多问题,有时间好好改改 https://github.com/hitbs228/countdown

  10. 【开源】前端练手笔记,Chrome扩展应用程序(html+CSS+JS) (1)

    项目名称:github-notification 项目地址:https://github.com/WQTeam/github-notification 说明:本人打算抽时间学习前端(html + cs ...

随机推荐

  1. C#抓包

    抓包過程中發現頁面<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" v ...

  2. Merge k Sorted Lists [LeetCode]

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. S ...

  3. NABCD模型(猫咪记单词)

    项目需求分析与建议-NABCD模型(猫咪记单词)   N (Need 需求) 对于现在的学生,尤其是大学生来说,学习英语是一件非常重要的事.我们有四级六级托福雅思等各种各样的英语方面的考试.而学习英语 ...

  4. 详解Jquery和AngularJs,Servlet中jsonp解决跨域问题(转)

    众所周知,jsonp可以解决跨域问题,下面是我在查阅资料和实际项目使用后的一些总结. Jquery中jsonp的使用 //myUrl = "http://localhost:8090/api ...

  5. [转]C# 应用程序安装部署步骤,安装前操作,先退出程序后卸载。

    1. 点击[文件]-[新建]-[项目]-其他项目类型-安装和部署,选择安装项目,在下面的名称栏填写SetupTest(或者选择安装向导,一直点击[下一步])2. 安装项目----六个子项依次为:文件系 ...

  6. (转)mysql的增删改查

    MySQL数据库的增删改查. 1,首先启动mysql数据库的服务,在运行的窗口中输入:net start mysql,这样,就可 以启动mysql数据库的服务,同理,输入net stop mysql, ...

  7. uva 1210

    #include<iostream> #include<cstring> using namespace std; + ; bool notprime[MAXN];//值为fa ...

  8. js循环

    $('.xcarcoin_tb').each(function(i){ var aika='爱卡币';                if(data[i]==0){                }e ...

  9. HDU 1394 树状数组求逆序对

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  10. 二模 (9) day2

    第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...