摘要: 合并博客,此博客以后不再更新 阅读全文
posted @ 2014-02-28 18:47 SF-_- 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 话接上篇。通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽。 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功能的函数。如QWidget::show(),需要写一个在栈中取出widget指针,widget调用show()函数的方式。如果希望在Lua中调用大量函数,就需要编写大量的C++实现函数。有没有什么省时省力的好方法呢? 上一篇中我们实现了在Lua脚本中连接信号与槽。我们只是传过去了两个QObject的对象,和两个字符串的函数名。我们并没有具体实现那个函数,但是槽函数顺利执行了。这给了笔者启发... 阅读全文
posted @ 2014-02-28 18:00 SF-_- 阅读(2678) 评论(0) 推荐(1) 编辑
摘要: 话接上文。笔者为了方便使用Lua,自己编写了一个Lua的类。主要代码如下: QLua.h 1 #ifndef QLUA_H 2 #define QLUA_H 3 4 // own 5 #include "include/lua.hpp" 6 7 // qt 8 #include 9 #include 10 #include 11 12 #include 13 #include 14 #include 15 #include 16 17 class QLua : public QObject18 {19 Q_OBJECT20 public:21 QLua(QObjec... 阅读全文
posted @ 2014-02-28 14:51 SF-_- 阅读(11684) 评论(0) 推荐(0) 编辑
摘要: 话接上篇。成功配置好Qt+Lua+toLua后,我们可以实现在Lua脚本中使用各个Qt的类。直接看代码吧。#include "include/lua.hpp"#include #include #include #include static int tolua_new_QWidget(lua_State* pState){ QWidget* widget = new QWidget(); tolua_pushusertype(pState, widget, "QWidget"); return 1;}static int tolua_delete_QW 阅读全文
posted @ 2014-02-28 08:55 SF-_- 阅读(5823) 评论(0) 推荐(0) 编辑
摘要: 偶然间看到Lua这种脚本语言,有点兴趣,简单学习了一下。 发现Lua与C++之间可以实现非常强的交互性。Lua中可以使用C++中的函数,C++中也可以使用Lua中的函数。由此可以引发出很多奇思妙想了。 简单来说,Lua动态的特性补充了C++的功能。当然,也看你具体怎么用。 笔者经常使用Qt,故准备将Qt和Lua结合在一起。想象一下在Lua脚本中调用如下代码:w = QWidget:new()w:show() 然后弹出一QWidget的窗口,是多么感人的一件事情呀。 好,下面开始配置环境吧。 1. 下载Lua 5.1。目前的最新版本是5.2,但是因为使用到的toLua不支持Lua... 阅读全文
posted @ 2014-02-27 09:30 SF-_- 阅读(6615) 评论(1) 推荐(0) 编辑
摘要: 引子: 今天上嵌入式课程时,老师讲到Linux的文件系统,讲的重点是Linux中对于nand flash的ECC校验和纠错。上课很认真地听完,确实叹服代码作者的水平。 晚上特地下载了Linux最新的内核,找到了作者自己写的那篇文章(路径为"linux-3.13.5\Documentation\mtd\nand_ecc.txt"),现摘录如下:Introduction============Having looked at the linux mtd/nand driver and more specific at nand_ecc.cI felt there was roo 阅读全文
posted @ 2014-02-25 00:17 SF-_- 阅读(1573) 评论(0) 推荐(0) 编辑
摘要: State Machine,即为状态机,是Qt中一项非常好的框架。State Machine包括State以及State间的Transition,构成状态和状态转移。通过状态机,我们可以很方便地实现很多东西。Qt的Animation框架也是基于状态机的。 在Qt自带的帮助文档中搜索State Machine,会有一篇官方的说明文档。笔者的Qt5.2自带的文档如下:The State Machine FrameworkThe State Machine framework provides classes for creating and executing state graphs. T... 阅读全文
posted @ 2014-02-16 21:53 SF-_- 阅读(3553) 评论(0) 推荐(0) 编辑
摘要: 最近的项目上用到了关于多线程的知识,自己也比较感兴趣,所以就拿了那本《C++ GUI Qt4 编程》来学习。 这本书的第14章是关于多线程的知识,使用的Qt版本是Qt4.x。在下用的是最新的Qt 5.2,所以代码上有一些不兼容,稍加修改就可以运行了。 Qt的多线程简单来说就是继承QThread类,重载run()函数,start()启动线程。首先来看下书上的第一个例子:(修改版的代码已上传,点击下载)class Thread : public QThread{ Q_OBJECTpublic: Thread(QString message = "", QObject *pare 阅读全文
posted @ 2014-02-11 13:35 SF-_- 阅读(5635) 评论(0) 推荐(0) 编辑
摘要: 最近在学习Java Web,今天刚接触Hibernate。学习的书籍是《轻量级Java EE企业应用实战(第3版)》。书中367页5.2.2中给予的Hibernate例子中的代码运行有以下错误:严重: Exception occurred during processing request: could not insert: [org.sf520.actions.user.News]org.hibernate.exception.SQLGrammarException: could not insert: [org.sf520.actions.user.News] at org.h... 阅读全文
posted @ 2014-01-13 19:01 SF-_- 阅读(20088) 评论(6) 推荐(4) 编辑
摘要: 题目大意:给定一个4位素数,一个目标4位素数。每次变换一位,保证变换后依然是素数,求变换到目标素数的最小步数。 解题报告:直接用最短路。 枚举1000-10000所有素数,如果素数A交换一位可以得到素数B,则在AB间加入一条长度为1的双向边。 则题中所求的便是从起点到终点的最短路。使用Dijkstra或SPFA皆可。 当然,纯粹的BFS也是可以的。 用Dijkstra算法A了题目之后,看了一下Discuss,发现了一个新名词,双向BFS。 即从起点和终点同时进行BFS,相遇则求得最短路。 借鉴了思想,自己动手实现了代码。原本以为双向比单向快一倍而已,其实远远不止。 笔者用3... 阅读全文
posted @ 2013-08-03 00:56 SF-_- 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 用DFS写当然很简单了,8!的复杂度,16MS搞定。 在Discuss里看到有同学用状态压缩DP来写,就学习了一下,果然很精妙呀。 状态转移分两种,当前行不加棋子,和加棋子。dp[i][j]中,i代表行数,j代表当前行棋子的状态。j的二进制中,1代表有旗子,0代表无棋子。 贴代码~状压DP果然快一点。#include #include int n,k,count;bool mp[10][10];int num[256];int dp[9][256];int main(){// freopen("in.txt","r",stdin); for(int i= 阅读全文
posted @ 2013-08-01 21:20 SF-_- 阅读(1906) 评论(0) 推荐(0) 编辑
摘要: 最短用BFS即可。关于左手走和右手走也很容易理解,走的顺序是左上右下。 值得注意的是,从起点到终点的右手走法和从终点到起点的左手走法步数是一样。 所以写一个左手走法就好了。贴代码,0MS#include #include #include using namespace std;int mp[45][45];const int DIR[4][2]={ {0,-1},{-1,0},{0,1},{1,0} };bool flag;void DFS(int x,int y,int dir,int step){ if(mp[x][y]) { flag=true; ... 阅读全文
posted @ 2013-08-01 19:33 SF-_- 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 第一次接触欧拉回路。虽然在离散数学里学过,敲代码还是第一次。 本题是说端点颜色相同的两根木棒可连接,能否将所有的木棒连成一条直线。 将颜色视为节点v,将木棒视为边e,构成图G。如果能找到一条一笔画的路经过所有边,那么便符合条件。也就是判断是否是欧拉回路。 欧拉回路的条件是: (1) 图是连通的。 (2) 度数为基数的点的个数是两个,或者不存在。 连通可以通过用并查集判断。度数可以建一个数组保存当前点的度数。 值得注意的是有全空的数据,此时应该输出Possible。这点坑了我一下,在Discuss里发现有人提出了,改一下就A了。#include #include const i... 阅读全文
posted @ 2013-08-01 15:30 SF-_- 阅读(212) 评论(0) 推荐(0) 编辑
摘要: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0,xi∈[-50,50],且xi!=0。让我们求所有解的可能。 首先,如果暴力判断的话,每个x的取值有100种可能,100^5肯定会超时。 我们可以枚举x1,x2的值,并且记录下来。再枚举x3,x4,x5的值。如果发现有互为相反数的,说明有一个解存在。复杂度却大大降低了。 当然,我们可以只处理正数的情况。如果存在一组解,x1,x2,x3,x4,x5,那么容易证明-x1,-x2,-x3,-x4,-x5也是一组解。 我们只记录a1x13+ a2x23>0的情况,如果发现有相等的a3x33+ a4x43+ a5x53,解.. 阅读全文
posted @ 2013-08-01 13:48 SF-_- 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 经典好题。 题意是要我们找出所有的正方形。1000点,只有枚举咯。 如图,如果我们知道了正方形A,B的坐标,便可以推测出C,D两点的坐标。反之,遍历所有点作为A,B点,看C,D点是否存在。存在的话正方形数+1。 假设A点坐标为(x1,y1),B点坐标为(x2,y2),则根据三角形全等,易知 C点坐标:( x1+(y2-y1),y1-(x2-x1) ) D点坐标:( x2+(y2-y1),y2-(x2-x1) ) 当然,如果我们遍历任意两个点,一个正方形将会被计数四次(四条边)。我们可以只判断斜率>=0的边,这条边在正方形的上方(如图AB边),这样不用重复验证四次了。 过程搞清... 阅读全文
posted @ 2013-08-01 01:21 SF-_- 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 题意就不说了,求二部图最大匹配。 问题是怎么建图…… 给定的条件中,h#include const int maxn=201;bool mp[maxn][maxn];bool vis[maxn];int link[maxn];int No[41][10];int n;bool DFS(int x){ for(int y=1;y0) mp[No[i][0]][-No[i-1][0]]=true; else mp[No[i-1][0]][-No[i][0]... 阅读全文
posted @ 2013-07-28 20:49 SF-_- 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 三道题都是考察最短路算法的判环。其中1860和2240判断正环,3259判断负环。 难度都不大,可以使用Bellman-ford算法,或者SPFA算法。也有用弗洛伊德算法的,笔者还不会SF-_-…… 直接贴代码。 1860Currency Exchange:#include #include int N,M,S;double V;const int maxn=101;int first[maxn],vv[maxn*maxn],nxt[maxn*maxn];double ww[maxn*maxn],cc[maxn*maxn];double d[maxn];int count[maxn]... 阅读全文
posted @ 2013-07-27 15:22 SF-_- 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 本题不难,但是笔者贡献了30多次Submit……就像Discuss讨论的一样,细节决定成败,WA了肯定有理由。 贴代码,Dijkstra+优先队列。#include #include #include using namespace std;const int maxn = 101;int first[maxn],vv[maxn*maxn],nxt[maxn*maxn],ww[maxn*maxn];int vis[maxn],level[maxn],price[maxn];int Min=~(1cmp.w; }} p,q;void Dijkstra(){ p.k=1; ... 阅读全文
posted @ 2013-07-27 09:59 SF-_- 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 青蛙跳跃,题意大概是:青蛙从起点到终点进行一次或多次的跳跃,多次跳跃中肯定有最大的跳跃距离。求在所有的跳跃中,最小的最大跳跃距离SF-_-(不理解?看题目吧)。 可以用最小生成树完成。以起点为根,生成一棵最小生成树,直到树里包含了终点。 或者这么说吧,类似于Kruskal算法,我们每次选取不成环的最小边,直到这棵树选取了通往终点的最小边,那么最后选择的这条边必然是在树中最大的一条边,而且在其余的边中是最小的。你不会找到比这条边小的最大距离,因为比它小的最小距离都在树里了,而未选取该边前树中不包含终点,即比该边小的所有边无法到达终点。即改边满足的两个条件,最小,而且是起点到终点的最大距离... 阅读全文
posted @ 2013-07-26 19:28 SF-_- 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: 原题地址:http://poj.org/problem?id=3159 题意大概是班长发糖果,班里面有不良风气,A希望B的糖果不比自己多C个。班长要满足小朋友的需求,而且要让自己的糖果比snoopy的尽量多。 比如现在ABCD四个小朋友,B的糖果不能超过A的5个,如果A的史努比,D是班长,那么班长最多比史努比多7个糖果,而不是5+4+1=9个。 因为如果是9个,就不满足D-A#include #include #include using namespace std;struct CNode{ int k; int w; bool operatorcmp.w; ... 阅读全文
posted @ 2013-07-26 19:05 SF-_- 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 两棵线段树。 首先,分析一下问题。题目让我们找出所有的 排名以及位置 都在两个乒乓球家之间的所有组合。 两个区间,首先想到的是二维。。。(因为昨天刚刚搞了一个二维)。 发现这种数据是一维的,所以解法一定也是一维。不过又不是普通的一维。。。呵呵,吹水了 我们枚举所有的乒乓球家。找出 他左边的排名比他低的,记为num1,以及右边的排名比他高的,记为num2,那么由他主持的比赛就有num1*num2+(左边人数-num1)*(右边人数-num2)。加起来,就是结果了。 因为我们是枚举,所有可以动态的完成树的更新。每次将取出第 i 个乒乓球家,在右边的树里将他删除,查询比他排名高的,在左... 阅读全文
posted @ 2013-05-30 10:16 SF-_- 阅读(254) 评论(0) 推荐(0) 编辑
摘要: A了一晚上。。。 题目看起来就是个线段树,不过是平面的。仍然是二分的思想,我们可以每次横向分,纵向分,即4分。二维线段树吧 贴代码:#include <iostream>using namespace std;#define rect 0,1000,0,1000,1,1#define defhm int hm=(l+r)>>1;#define defvm int vm=(t+b)>>1;#define ltson l,hm,t,vm,pos<<1,posy<<1#define rtson hm+1,r,t,vm,pos<< 阅读全文
posted @ 2013-05-29 22:56 SF-_- 阅读(239) 评论(0) 推荐(0) 编辑
摘要: /* * HOJ 3555 Bomb * 花了一晚上时间写的,感觉还是值得的,方法都是自己想的 * 定义d[i][0]为长度是 i 不含49子串的不以4结尾的串的数量 * 定义d[i][1]为长度是 i 不含49子串的以4结尾的串的数量 * 则易知 * d[i][0]=d[i-1][1]*8(除去4,9)+d[i-1][1]*9(除去4) * d[i][1]=d[i-1][0]+d[i-1][1] * 基于此,推出针对小于n的数中不含49子串的串的数量的方法 * 例如45,我们从左往右扫,遇到4,则d[0][1]=1,d[0][0]=4(0,1,2,3) * 遇到5,则d[1][1]=d[0] 阅读全文
posted @ 2013-05-15 01:21 SF-_- 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目不说了,大牛眼中的水题,我等水货想都想不到。。。 直接贴代码,优化的面目全非。。。 后来没有其他测试,只测试了题目中的几个样例以及1000 999之类的,不能保证代码完全正确,欢迎排错/* * 定义 dp[i][j][0]为长度为i以j个0结尾的串的数量 * 推出公式 * dp[i][1][0]=sum(dp[i][k][1])(1<=k&&k<=K) * 优化过程为dp[i][j]=dp[i-1][j-1],即直接加一个与串末相同字符即可 * 计算2的阶乘和计算和时,使用模运算 * 因为dp[i][j][0]==dp[i][j][1],只有dp[i][1]有用 阅读全文
posted @ 2013-05-13 20:41 SF-_- 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 这几天一直专心刷题。。。刷的是DP题,题目基本和下面博客上介绍的差不多 http://hi.baidu.com/lewutian/item/ffd19c2e640e17c1ef10f131 然后。。。贴代码/*HOJ 1003 MaxSum以前做过,和上一题也差不多,记录位置即可。DP*/#include <iostream>using namespace std;int main(){ int cas,cas2,i,n,sum,max,a,b,num,begin; cin>>cas; cas2=cas; while(cas--) { sum... 阅读全文
posted @ 2013-04-11 23:12 SF-_- 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 先贴上代码~:#include <iostream>using namespace std;class A{public: A() { i=1; } A(int t) { i=t; A(); } void print() { cout<<i<<endl; }private: int i;};int main(){ A a; a.print(); A b(2); b.print();} 猜猜输出什么? 如果你觉得是1 1的话,恭喜你,继续看下去吧。 ... 阅读全文
posted @ 2013-03-30 22:37 SF-_- 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 先上张MM图片。一来养眼,二来,偶的代码在里面,大家可以直接下载这张图片,然后解压。 修改之前MFC版的后,移植到Qt上,过程也挺顺利。放张图吧: 目前支持代码高亮,单步执行。后期会优化一下的。 有兴趣的可以下载看看吧,转载的话留个地址吧:http://www.cnblogs.com/IT-BOY/archive/2013/03/27/2985646.html 阅读全文
posted @ 2013-03-27 22:33 SF-_- 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 并查集,还有判断两线段是否相交。我直接用面积的方法判断的,貌似效率略低,但是Ac还是可以的,代码如下:#include <iostream>using namespace std;int root[1001];int num[1001];int find(int x){ return root[x]?(root[x]=find(root[x])):x;}void u(int x,int y){ int a=find(x); int b=find(y); if(a!=b) num[root[b]=a]+=num[b];}struct p{ doubl... 阅读全文
posted @ 2013-03-26 21:52 SF-_- 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 在使用Qt自带的Designer设计界面过程中,我们可能会引入一些资源文件,而建立qrc文件。那么在VS2008的平台上如何将使用呢? 方式如下: 首先在引入qrc文件,如下图,点击属性 如图,将命令行修改为:rcc.exe -name $(InputName) -no-compress $(InputPath) -o $(InputName)_qrc.cpp 另外,在主程序main.cpp里#include "MyQt_qrc.cpp",在mian()函数里加一句Q_INIT_RESOURCE(MyQt); 范例代码如下:#include #include #includ 阅读全文
posted @ 2013-03-25 22:07 SF-_- 阅读(1734) 评论(0) 推荐(0) 编辑
摘要: Qt自带的Designer非常好用,可以设计整个面板的布局,而且很容易对齐。 在非QT4工程里如何使用UI文件呢?下面给大家一一道来。 UI文件是Qt独有的记录软件UI的文件,可以用记事本打开,可以看到语法近似于xml。再使用Qt自带的uic(User Interface Compiler)命令编译后,可以产生一个C++的界面类。 uic命令格式如下:uic My.ui -o My.h 生成的.h文件可以直接使用在C++工程里,例如下面的代码:// MyQt.h#pragma once#include #include "MyQtUI.h"class MyQt : publ 阅读全文
posted @ 2013-03-24 23:07 SF-_- 阅读(2452) 评论(1) 推荐(0) 编辑
摘要: QT在VS2008上跑的不是很顺利。。。在用户自定义槽之后,connect无法顺利连接自定义的槽与信号,可能会有如下报错:1>MyWidgetEx.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall MyWidgetEx::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyWidgetEx@@UAEHW4Call@QMetaObject@@HPAPAX@Z)1>MyWidgetEx.obj : error L 阅读全文
posted @ 2013-03-21 22:26 SF-_- 阅读(721) 评论(0) 推荐(0) 编辑
摘要: 为了学QT,花了近三小时解决了整个平台搭建的问题。。。以下为详细内容~ 1.需要下载的: (1)VS2008.这是用的版本。虽然已经13年了,VS也有了WIN8版的,但是还是喜欢08。整个平台都是面向08搭建的,10的话其实一个也差不多。 (2)Qt libraries 4.8.4 for Windows (VS 2008, 233 MB)以及Visual Studio Add-in 1.1.11 for Qt4 如果你无法访问外网的话,可以试试以下链接,我上传到百度云盘的: http://pan.baidu.com/share/link?shareid=35... 阅读全文
posted @ 2013-03-20 20:48 SF-_- 阅读(2082) 评论(0) 推荐(0) 编辑
摘要: 并查集好题。看代码吧,相信你会理解的#include <iostream>using namespace std;int root[200001],sum[200001],data,ans;int find(int x){ if(root[x]==-1) return x; int t=root[x]; root[x]=find(root[x]); sum[x]+=sum[t]; return root[x];}void unio(int x,int y){ int rootx=find(x); int rooty=find(y); ... 阅读全文
posted @ 2013-03-19 21:21 SF-_- 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 上星期花了几天时间完成的,分离出来,然后~先贴一下图吧 有兴趣可以下载看看哦:http://pan.baidu.com/share/link?shareid=352033&uk=2804348991 部分源代码:VirtualMachine.cpp#include "StdAfx.h"#include "VirtualMachine.h"VirtualMachine::VirtualMachine(void): Output(_T("")){ // 初始化寄存器及堆栈 memset(registers,0,32); memse 阅读全文
posted @ 2013-03-18 22:45 SF-_- 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 第一次接触并查集。其实也不复杂,看代码应该很容易懂的:#include <iostream>using namespace std;int s[10001],mov[10001],num[10001];int find(int a){ if(s[a]) { int temp=s[a]; s[a]=find(s[a]); mov[a]+=mov[temp]; return s[a]; } return a;}void bing(int a,int b){ a=find(a); b=find(b); ... 阅读全文
posted @ 2013-03-10 13:00 SF-_- 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题目本身不难。存储一下每个武器的合成方式,递归求和即可。关键在于它简单,而且写代码又挺复杂。。。一直想在网上找代码A过去的,因为这是我ACM Step 4.3最后一题,可是一直找不到,还是得自己打代码。不过现在大家可以直接Copy我的代码A过去了#include <iostream>#include <string>using namespace std;int n,sum;class dynamicArray{private: int num;public: dynamicArray *next; // 构造函数 dynamicArray():num(0),... 阅读全文
posted @ 2013-03-08 00:11 SF-_- 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 笔者大二时做的,现在又改了改,拿出来。分享下吧~虽然当年的代码水平不高,不懂架构,代码挺乱,但是却是我很喜欢的作品。看图~ 日记默认保存在Daily文件夹里,可用笔记本打开查看。Setting记录了窗体的位置,删除也没事。有BUG的话欢迎大家提出~ 搞个下载路径吧:http://pan.baidu.com/s/1c05ot2o 欢迎下载试用~以下是部分源码:#include "stdafx.h"#include "MFC对话框模版.h"#include "MFC对话框模版Dlg.h"#ifdef _DEBUG#define new D 阅读全文
posted @ 2013-03-04 22:33 SF-_- 阅读(1076) 评论(0) 推荐(0) 编辑
摘要: 嗯,回溯直接暴力吧。在网上也看到了用树做的,没有细看。 回溯的话可以直接搜索没有被移动的牌,以及比它大的没有移动的牌,DFS,看代码吧:#include <iostream>using namespace std;int s[11],v[11],ans;void DFS(int num,int sum){ if(sum>=ans) return; if(num==10) { ans=sum; return; } int i,j; for(i=1;i<=9;i++) if(!v[i]) ... 阅读全文
posted @ 2013-03-03 23:17 SF-_- 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 组合树枝成最短长。回溯大家都知道,复杂的是直接提交一定TLE,要剪枝。。。 笔者没有深入的思考,在网上找了一篇说的比较好的,分享下:http://blog.sina.com.cn/s/blog_520db5ec0100copn.html 笔者的代码如下:#include <iostream>#include <algorithm>using namespace std;int n,s[99],v[99],sum,t,num,m;bool DFS(int x,int y){ int i; if(y==num) return true; for(i=0;i<... 阅读全文
posted @ 2013-03-02 20:31 SF-_- 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 数独,才发现可以用回溯做呀,哈哈。代码如下,注意判断文件结束:#include <iostream>using namespace std;struct point{ int x,y;} p[101];int num,flag,row[10][10],col[10][10],dia[10][10],mat[10][10];void DFS(int a){ int i,j,x,y,t; if(a==num) { flag=1; return; } x=p[a].x; y=p[a].y; for(i=1;i<=9;i+... 阅读全文
posted @ 2013-03-01 23:39 SF-_- 阅读(227) 评论(0) 推荐(0) 编辑