题目大意:在一个国际象棋盘上放置皇后,使得目标全部被占领,求最少的皇后个数. 题目分析:迭代加深搜索,否则超时. 小技巧:用vis[0][r].vis[1][c].vis[2][r+c].vis[c-r+N]分别标志(r,c)位置相对应的行.列.主.副对角线有没有被占领(详见<入门经典(第2版)>P193),其中N表示任意一个比行数和列数都大(大于等于)的数. 代码如下: # include<iostream> # include<cstdio> # include&l…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 迭代加深搜索. 可以想见最后深度不会很深吧.. 然后皇后之间互相攻击到是允许的.. 就这样 [代码] /* 1.Shoud it use long long ? 2.Have you ever test several sample(at least therr) yourself? 3.Can you promise that the solution is right? At least,the main ideal 4.u…
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? import java.util.Scanner; public class Prog10 { public static void main(String[] args) { System.out.println("请输入小球落地时的高度和求解的次数:"); Scanner scan=new Scanner(System.in); int h=scan.n…
题目: 输入一个n*m的棋盘(n,m<10),某些格子有标记,用最少的皇后守卫(即占据或攻击)所有的标记的格子.输出皇后的个数. 思路: 一开始没有想到用迭代加深搜索,直接dfs结果还没写完就发现这样要枚举的量太大了……于是换用迭代加深搜索.对于每个格子有四个方向可以用i,j,i+j,i+j+maxn(下标要是正的)表示,当cur等于枚举的答案maxd就判断是不是所有的标记都被攻击了. 另外如果这个格子放上了皇后,那该皇后所在行的后边的格子就没必要枚举了,直接跳到下一行的开头就可以了. 将二维数…
题意:输入一个n*m棋盘(n,m<10),某些格子有标记.用最少的皇后守卫(即占据或者攻击)所有带标记的格子. 分析:因为不知道放几个皇后可以守卫所有带标记的格子,即回溯法求解时解答树的深度没有明显的上限,所以使用迭代加深搜索. 将棋盘的每个格子标记为0~n*m-1,依次枚举守卫的皇后个数,枚举当前守卫的皇后个数下所有的放置情况,看是否能全部守卫.(枚举方式i:1~n,j:i+1~n……) #pragma comment(linker, "/STACK:102400000, 1024000…
Problem Description 输入n(n<100)个字符串,每个字符串长度不超过1000,将他们按字典顺序输出. Input 多组测试样例. 每组第一行有一个整数n表示有n个字符串. 接下来有n行,每行一个字符串. Output 输出排好序后的字符串,每行输出一个字符串. Sample Input 3 aba aab cab Sample Output aab aba cab #include <stdio.h> #include <string.h> void s…
题意: 皇后防御的范围是他所在横.竖.对角线,地图上的#为可以放旗子的地方.问最少放几个皇后能防守所有#. 分析: vis数组开4维,对应行.列.主对角线.副对角线 代码: #include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;int map[15][15];int vis[4][30];int n,m;int maxn;in…
/* assume a header */ /* 双向循环链表 */ struct Node; typedef struct Node * PtrToNode; typedef PtrToNode List; typedef PtrToNode position; struct Node{ PtrToNode Previous; PtrToNode Next; int Ele; }; /* 删除双向循环链表中的元素例程 */ Position Delete( Position p ) { Pos…
本题题意: 输入一个n*m的棋盘,某些格子有标记,用最少的皇后占据或者攻击所以带标记的格子.皇后的攻击范围为同行同列和同对角线. 可以使用IDA*算法,即从样例可以发现只需要最多5个棋子就可以对棋盘上所有地方进行攻击,因而使用IDA*进行对应的剪枝即可. #include<cstdio> #include<cstring> using namespace std; ,maxd; ][];///表示皇后已经攻击的范围,vis[0][]中存储的是行,vis[1][]中存储的是每列,vi…
[题目要求] 用shell打印下面这句话中字母数小于6的单词. Bash also interprets a number of multi-character options. [核心要点] for循环遍历所有单词 wc -L获取字符串长度 [脚本] #!/bin/bash c="Bash also interprets a number of multi-character options." n=`echo $c|awk -F '[ +-.]' '{print NF}'` ;i&…
题目链接 正解是IDA*+四个方向判重,但由于是个裸的可重复覆盖问题,可以用DLX水过~ 每个格子与放上皇后能干掉的标记连边,跑可重复覆盖DLX.注意要用IDA*来优化,否则会超时. #include<bits/stdc++.h> using namespace std; typedef long long ll; +; int n,m,np,ka; char s[N][N]; struct P {int x,y;} p[N*N]; bool ok(P a,P b) { ; ; ; ; } s…
#include <iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个整数类型的数字:" <<endl; cin>>a>>b>>c; void sort(int x,int y,int z); sort(a,b,c);//abc有具体值,称为实际参数 ; } void sort(int x,int y,int z)//用于接收实际参…
暴力,和八皇后很像,用表示i+j和i-j标记主对角线,但是还是要加一些的剪枝的. 1.最裸的暴搜 6.420s,差点超时 2.之前位置放过的就没必要在放了,每次从上一次放的位置开始放 0.400s #include<cstdio> #include<cstring> ; char G[maxn][maxn]; int maxd; int n,m; ],vis2[maxn<<]; bool dfs(int d,int si,int sj) { if(d == maxd){…
题目要求 解题方法 递归计算 没什么好说的,单纯的套用数学公示 (define (f n) (if (< n 3) n (+ (f (- n 1)) (* 2 (f (- n 2))) (* 3 (f (- n 3)))) ) ) 迭代计算 和斐波那契的计算一样,只要记录前三次的计算结果用于下一次计算 (define (f-iter a b c cnt) (if (= cnt 1) (+ c (* b 2) (* 3 a)) (f-iter b c (+ c (* b 2) (* 3 a)) (…
SICP 习题 1.10 讲的是一个叫“Akermann函数”的东西,去百度查可以查到对应的中文翻译,叫“阿克曼函数”. 就像前面的解题总结中提到的,我是一个数学恐惧者,看着稍微复杂一点的什么函数我就怕.所以这道题放了很久都没去动它,不过有担心跳过这道题对后面的学习不利,所以最终还是鼓足勇气尝试做这个题目. 做完了我才发现,其实这道题真的可以跳过,做不做这道题似乎对后面的学习没什么影响.从题目的内容来看,作者应该是希望在习题中引入“树形递归”,让学生在下一节课的学习中有所准备,相当于是预习题.事…
SICP 习题 2.10 要求我们处理区间除法运算中除于零的问题. 题中讲到一个专业程序猿Ben Bitdiddle看了Alyssa的工作后提出了除于零的问题,大家留意一下这个叫Ben的人,后面会不断出现这个人,仅仅要是这个人提到的事情通常是对的,他的角色定位是个计算机牛人,只是是办公室常常能看到的那种牛人,后面还有更牛的. 对于区间运算的除于零的问题,处理起来也比較简单,仅仅须要推断除数是不是为零,除数为零就报错.对于一个区间来讲,所谓为零就是这个区间横跨0,再直接一点讲就是起点是负数,终点是…
本文地址:http://www.cnblogs.com/archimedes/p/cpp-primer-chapter3-ans.html,转载请注明源地址. [习题 2.11]编写程序,要求用户输入两个数——底数( base)和指数( exponent),输出底数的指数次方的结果. #include <iostream> #include <math.h> #include <string> using namespace std; int main( ) { int…
本文地址:http://www.cnblogs.com/archimedes/p/cpp-primer-chapter1-ans.html,转载请注明源地址. [习题 1.3] 编一个程序,在标准输出上打印“Hello, World”. #include <iostream> using namespace std; int main() { cout<<"Hello, World\n"; ; } [习题 1.4]我们的程序利用内置加法操作符“+”来产生两个数的…
STL实践与分析 --初窥算法[下] 一.写容器元素的算法 一些算法写入元素值.在使用这些算法写元素时一定要当心.必须.写入输入序列的元素 写入到输入序列的算法本质上是安全的--仅仅会写入与指定输入范围数量同样的元素. 写入到输入序列的一个简单算法是fill函数: fill(iVec.begin(),iVec.end(),10); fill(iVec.begin(),iVec.begin()+iVec.size()/2,0); fill带有.不检查写入操作的算法 fill_n函数带有的參数包括:…
拷贝控制 --复制构造函数.赋值操作符 引言: 当定义一个新类型时,须要显式或隐式地指定复制.赋值和撤销该类型的对象时会发生什么– 复制构造函数.赋值操作符和析构函数的作用!      复制构造函数:具有单个形參..对象的定义形式 对于类类型.初始化的复制形式和直接形式有所不同:直接初始化直接调用与实參匹配的构造函数.复制初始化式总是调用复制构造函数.[复制初始化首先使用指定构造函数创建一个暂时对象,然后复制构造函数将那个暂时对象复制到正在创建的对象!] //理解下列语句的差别 string n…
所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/69/ 来源:python黑洞网,专注python资源,python教程,python技术! 这本书前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,作者都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识.从第七章开始就是书名中的后半部:让繁琐工作自动化.每个章节都可独立出来.每看完一个章节,你都能…
Android编程兵书 内容简介: 这是一本Android开发书籍,内容讲解详细,例子丰富,能帮助读者举一反三.在<Android编程兵书>中,每一个知识点的描述都非常详细,并且每一个知识点都会有一个小小的实例,使读者更容易上手Android开发.同时,对于不熟悉Java语言的人来说,也是一本好书,<Android编程兵书>主要是从Android开发最简单的内容开始,慢慢地逐层深入,最后结合项目的开发进行详细讲解. Android编程兵书 目录: 第1章 见龙在田:ANDROID平…
本文转载自abatei,数据结构学了很多次,但是只是知道硬性的概念,现在专攻C#语言,对编程语言也有了更深的认识, 买一本C#的数据结构来看看,再一次加深对数据结构的学习,真是一件让人高兴的事. 当当网可购买到,无需网上银行,可送货上门,货到付款 购买地址: http://product.dangdang.com/product.aspx?product_id=20544747 如对本书有什么意见和建议可到概述作者的博客留言 http://cgbluesky.blog.163.com/ 这是本书…
第1章 初识MySQL MySQL是一个开放源代码的数据库管理系统(DBMS),它是由MySQL AB公司开发.发布和支持的.MySQL是一个跨平台(Windows.Linux.UNIX.MacOS)的开源“关系型”数据库管理系统,广泛地应用在Internet上的中小型网站开发中. 1.1 数据库基础 1.1.1 什么是数据库 1)保管数据的“仓库”: 2)数据管理的方法和技术: 1.1.2 表 类似于Excel表,行记录,列字段! 1.1.3 数据类型 常见的数据类型有:整数.浮点数.精确小数…
当当网页面:  http://product.dangdang.com/23619990.html 内容简单介绍      本书全面介绍了 JSP开发中涉及的相关技术要点和实战技巧. 全书结构清晰,难度循序渐进,结合丰富的演示样例使零基础的读者可以熟练掌握 JSP的开发.部署以及优化.      本书分为 3篇:第 1篇为 Java Web基础开发,内容包含搭建 Java Web开发环境.JSP基础语法.JSP内置对象.Servlet技术.请求与响应.会话管理.Servlet进阶 API.过滤器…
下载地址:点我 <鸟哥的Linux私房菜:基础学习篇>是具有知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>的最新版,全面而详细地介绍了Linux操作系统.<鸟哥的Linux私房菜:基础学习篇>分为5个部分:一部分着重说明Linux的起源及功能,如何规划和安装Linux主机:二部分介绍Linux的文件系统.文件.目录与磁盘的管理:三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法:四部分介绍了对于系…
基本上每章到增补附注这里就算是结束了. 根据设想,每章的这一篇基本上会注明这一章哪些题没有做,原因是什么,如果以后打算做了也会在这里补充. 还有就是最后会把有此前诸多习题的代码和原数据结构放整理后,以单个数据结构为单位放在一个文档里面. [未做习题] 习题3.1:编写打印出一个单链表的所有元素的程序. //这题例程里就有了,没必要单独开. 习题3.10:………………(题目太长懒得打,约瑟夫环问题). //这里应该是做循环链表,但是约瑟夫环本身可以用数学方法优化用循环链表做效率还挺低的,于是放弃.…
目录 | 上一节 (1.2 第一个程序) | 下一节 (1.4 字符串) 1.3 数字 本节讨论数学计算. 数字类型 Python 有 4 种类型的数字: 布尔型 整型 浮点型 复数(虚数) 布尔型(bool) 布尔型数字有两个值:True,False. a = True b = False 在数值上,它们被计算成值为 1,0 的数. c = 4 + True # 5 d = False if d == 0: print('d is False') 但是,不要像上面这样写代码,这会很奇怪. 整型…
习题6总结 定义字符串: 名字 = 值 其他 你也可以用 {types_of_people}的方式把它放在任何字符串中. 也就是说你可以在其他字符串中添加{},然后前面加一个 f,可用print()进行直接打印. f-string 特殊的字符串类型:f-string举例:f" some stuff have {avariable}" .format()格式化方式: python 还有一种 使用 .format()语法的格式化方式:.format()格式化方式: joke_evaluat…
Java习题10.24 1. 1,3.connect()与accept():这两个系统调用用于完成一个完整相关的建立,其中connect()用于建立连接.accept()用于使服务器等待来自某客户进程的实际连接. 2.listen():此调用用于面向连接服务器,表明它愿意接收连接.listen()需在accept()之前调用. 4.关闭套接字──closesocket()关闭套接字s,并释放分配给该套接字的资源:如果s涉及一个打开的TCP连接,则该连接被释放.     2. java中引用类型的…