夏令营讲课内容整理 Day 4.
- 排列问题:枚举1~n的排列
- 组合问题:少年,你的这个物品,是要选呢?还是不选呢?
- 路径问题:神奇海螺告诉我,下一步我该怎么走?
- 我应该用什么搜索算法
- 我这样写能不能保证一定出解
- 我这样写找到的解是不是最优
- 如果不是最优,那要如何才能找到最优解
- 求解的效率如何(别想太多,搜索的时间复杂度一般都是指数级
void dfs(int dep){
if (dep==n+){
//执行输出操作
return;
}
//可以在这里加一些特殊边界什么的,最后直接return就好
for 枚举每个可能的位置或者决策或者方案{
//可以在这里加一些剪枝什么的
if (这个方案合法){
打标记
dfs(dep+);
删除标记//这个时候已经回溯了
}
}
}
void dfs(int now) {
if (now == n) {
for (int i = ; i < n; i++)
cout << a[i] << " ";
cout << endl;
return;
}
for (int i = ; i <= n; i++)
if (!check[i]) {
a[now] = i;
check[i] = true;
dfs(now + );
check[i] = false;
}
}
void dfs(int dep){
if (dep==n+){
//输出方案
return;
}
for 枚举第dep行的皇后的可能位置{
if (这个位置合法){
打标记
dfs(dep+);
删除标记
}
}
}
void bfs(int s){
queue<int> q;
q.push(s);
vis[s] = true;
while (!q.empty()){
int u = q.front();
q.pop();
for (遍历所有与u相邻的节点){
if (当前找到的扩展节点为解){
执行输出操作
}
if (!vis[u]){
q.push(u);
vis[u] = true;
}
}
}
return ;
}
夏令营讲课内容整理 Day 4.的更多相关文章
- 夏令营讲课内容整理 Day 7.
Day7是夏令营的最后一天,这一天主要讲了骗分技巧和往年经典的一些NOIP试题以及比赛策略. 这天有个小插曲,上午的day7T3是一道和树有关的题,我是想破脑袋也想不出来,正解写不出来就写暴力吧,暴力 ...
- 夏令营讲课内容整理 Day 3.
本日主要内容是树与图. 1.树 树的性质 树的遍历 树的LCA 树上前缀和 树的基本性质: 对于一棵有n个节点的树,必定有n-1条边.任意两个点之间的路径是唯一确定的. 回到题目上,如果题 ...
- 夏令营讲课内容整理Day 0.
今年没有发纸质讲义是最气的.还好我留了点课件. 第一次用这个估计也不怎么会用,但尝试一下新事物总是好的. 前四天gty哥哥讲的内容和去年差不多,后三天zhn大佬讲的内容有点难,努力去理解吧. 毕竟知识 ...
- 夏令营讲课内容整理 Day 6 Part 3.
第三部分主要讲的是倍增思想及其应用. 在Day3的整理中,我简要提到了倍增思想,我们来回顾一下. 倍增是根据已经得到的信息,将考虑的范围扩大一倍,从而加速操作的一种思想,它在变化规则相同的情况下,加速 ...
- 夏令营讲课内容整理 Day 6 Part 2.
Day 6的第二部分,数论 数论是纯粹数学的分支之一,主要研究整数的性质 1.一些符号: a mod b 代表a除以b得到的余数 a|b a是b的约数 floor(x) 代表x的下取整,即小于等于 ...
- 夏令营讲课内容整理 Day 6 Part 1.
Day6讲了三个大部分的内容. 1.STL 2.初等数论 3.倍增 Part1主要与STL有关. 1.概述 STL的英文全名叫Standard Template Library,翻译成中文就叫标准 ...
- 夏令营讲课内容整理 Day 5.
DP专场.. 动态规划是运筹学的一个分支, 求解决策过程最优化的数学方法. 我们一般把动态规划简称为DP(Dynamic Programming) 1.动态规划的背包问题 有一个容量为m的背包,有 ...
- 夏令营讲课内容整理 Day 2.
本日主要内容是并查集和堆. 并查集 并查集是一种树型的数据结构,通常用来处理不同集合间的元素之间的合并与查找问题.一个并查集支持三个基本功能:合并.查找和判断.举一个通俗的例子,我和lhz认识,lhz ...
- 夏令营讲课内容整理Day 1.
主要内容是栈和队列. 1. 栈 运算受到限制的线性表.只允许从一端进行插入和删除等操作.这一端便是栈顶,另一端便是栈底. 其实可以把栈想象层任何有底无盖的柱状的容器...毕竟栈满足后进先出的特性.计 ...
随机推荐
- 详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
在python2中,urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: 1.urllib2可以接受一个Request类的实例来设置URL请求的hea ...
- angular2 表单验证
模版式表单 (1) angular遇到form自动接管,不想自动接管,添加ngNoForm,当标签为div时,但想被表单接管,添加ngForm; (2) ngForm可以被模版本地变量引用,以便在模版 ...
- [学习OpenCV攻略][011][显示图片]
学习资料: http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html 包含头文件 core.hpp:包含 ...
- Oracle_基本函数查询综合
Oracle_基本函数查询综合 --[1]查询出每各月倒数第三天受雇的所有员工 select; --[2]找出早于30年前受雇的员工 select>; select; select; ...
- UserView--第一种方式set去重,基于Spark算子的java代码实现
UserView--第一种方式set去重,基于Spark算子的java代码实现 测试数据 java代码 package com.hzf.spark.study; import java.util.Ha ...
- openfire服务器+Spark搭建即时聊天系统 & 阿里云的初步探索
晚上出去和洋仔吃了涮肉,喝了点啤酒,不知不觉就聊到了11点,感觉他工作状态还不错,emmm...都要加油吧.虽然没有当时去山西零下二十多度那么夸张,这几天北京的冬夜还是有点小冷的.好了进入正题: 一. ...
- cuda纹理内存的使用
CUDA纹理内存的访问速度比全局内存要快,因此处理图像数据时,使用纹理内存是一个提升性能的好方法. 贴一段自己写的简单的实现两幅图像加权和的代码,使用纹理内存实现. 输入:两幅图 lena, moon ...
- 【开发技术】Java生成验证码
Java生成验证码 为了防止用户恶意,或者使用软件外挂提交一些内容,就得用验证码来阻止,虽然这个会影响用户体验,但为了避免一些问题很多网站都使用了验证码;今天下午参考文档弄了一个验证码,这里分享一下; ...
- Java 获取年 月 日 时 分 秒
/** * 英文简写(默认)如:2010-12-01 */ public static String FORMAT_SHORT = "yyyy-MM-dd"; /** * 英文全称 ...
- int指令
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...