06 2013 档案
摘要:本章提供足够的信息使你用够使用 Vim 来做基本的编辑。这里提供的方法不一定是高效快捷的。但起码是有效的。花些时间去练习这些命令,这是后面的知识的基础。|02.1| 第一次运行 Vim|02.2| 插入文本|02.3| 移动光标|02.4| 删除字符|02.5| 撤销与重做|02.6| 其它编辑命令|02.7| 退出|02.8| 寻求帮助 下一章:|usr_03.txt| 移动 前一章:|usr_01.txt| 关于本手册 目录:|usr_toc.txt|----------------------------------------------------------------------
阅读全文
摘要:C/C++中判断某一文件或目录是否存在1.C++很简单的一种办法:#include#includeusingnamespacestd;#defineFILENAME"stat.dat"intmain(){fstream_file;_file.open(FILENAME,ios::in);if(!_file){cout
#include
#include voidmain(void)
{
/*Checkforexistence*/
if((_access("ACCESS.C",0))!=-1)
{
printf("FileACCESS.Cexis
阅读全文
摘要:题目:给出n,求出最小的m,满足m^2 % 10^k = n,其中k=0,1,2http://acm.hdu.edu.cn/showproblem.php?pid=4394只要有一个x满足条件便行了我们可以初步发现,某个数个位确定,那么平方的最后一位肯定是确定的,那么如果后两们确定,那么平方的最后两们也是确定的,这可以通过乘法的规律得到那我们只需要BFS一下,不断地找满足最后指定位数的数,1位,2位,……直到找到第一个满足条件的。注意这里可能是100001这种情况所以记录当前数字大小,当前位置,可能暂时的高位为0,以后下一个添加的数为多少.// Time 0ms; Memory 316K#in
阅读全文
摘要:drop table zrjReinUnClaimTmpT; create table zrjReinUnClaimTmpT ( mainid SERIAL not null, RepayNo varchar(25) not null, comCode varchar(8) not null, CaseNo varchar(25) not null, reinsType varcha...
阅读全文
摘要:问题:使用UltraISO 9.5.3制作U盘启动盘,ISO文件使用ubuntu-12.04.2-server-i386.iso,ISO文件经过MD5验证是正确的。将U盘查到计算机上,进bios选择U盘启动为第一启动顺序,重启后选择安装ubuntu 12.04 server,选择完语言,在检测硬件的过程中跳出错误:The failing step is: Load installer components from CD.即通常所说的,从光盘读取数据出错。解决办法:1. 以前碰到此类问题,基本上是通过改换烧写U盘启动的软件工具来解决的。于是,换用Universal-USB-Installer-
阅读全文
摘要:线段树入门在自然数,且所有的数不大于30000的范围内讨论一个问题:现在已知n条线段,把端点依次输入告诉你,然后有m个询问,每个询问输入一个点,要求这个点在多少条线段上出现过;最基本的解法当然就是读一个点,就把所有线段比一下,看看在不在线段中;每次询问都要把n条线段查一次,那么m次询问,就要运算m*n次,复杂度就是O(m*n)这道题m和n都是30000,那么计算量达到了10^9;而计算机1秒的计算量大约是10^8的数量级,所以这种方法无论怎么优化都是超时-----因为n条线段是固定的,所以某种程度上说每次都把n条线段查一遍有大量的重复和浪费;线段树就是可以解决这类问题的数据结构举例说明:已知线
阅读全文
摘要:第一章小记:每个C程序都要求有一个main()函数(多于一个main()函数是不合法的(已犯错:在VS 2010一个项目里两个C文件都有main函数,不能编译通过,必须删除一个文件,永记))。main()函数所在的位置就是程序开始运行的地方。函数的运行从该函数的开括号起,到相应的闭括号止。C程序应用小写字母书写,而大写字母则用作符号或输出字符串。程序行中的所有词之间应至少有一个空格、制表符或连字符分隔开。在C语言中,每个程序语句必须以分号结尾。所有变量在使用之前必须已经被声明为某种数据类型。如果程序引用了未定义的特定名或函数,必须使用#include命令包含相应的头文件。编译器命令(如defi
阅读全文
摘要:问题:将一个c文件改为cpp文件,其中的perror()改用C++中的std::cerr ,而strerror()只需要用到头文件,所以,重新编译时,将替换为。2. errno无疑是一个系统定义的全局变量,不是由用户来声明或定义的。查到中有这样的宏定义#ifndef errno
extern int errno;
#endif将头文件包含到程序中,重新编译,编译顺利完成。问题解决。
阅读全文
摘要:System V IPC分为三种:System V消息队列System V信号量System V共享内存区这三种类型的IPC使用key_t值做为它们的名字。key_t这个数据类型在有定义,通常是一个至少32位的整数。我们通常使用ftok()函数(可以如此记忆:file to key)把一个已存在的路径名和一个整数标识符转换成一个key_t值,称为IPC键。(当然,我们也可以不用ftok函数来生成该键,指定一个整数也是可以的,当然你需要考虑键的正负问题)。看下ftok的声明:1#include 2/* Generates key for System V style IPC. */3key_t
阅读全文
摘要:http://www.timetimetime.net/yulu/12392.html最固执的,是一个人的心。你可以说服所有人,却说服不了自己的心。什么样的爱人是最好的?不是最帅,不是最有钱,不是最会泡妞。而是那个软弱时支持你,需要时帮助你,痛苦时扶持你的人。千万别小看始终如一的帮助。在这世界上,没有人是欠你的。愿帮你,只是因为爱你。在这一生里,你最爱的人,其实就是你无助时最想CALL的人。---陆琪爱,就是比谁更心软。在这一项面前,其他一切条件都注定是附属配件。真挚的感情,唯有在柔软的地方才可茂密生长。一颗心,绝难对真爱之人死硬到底!为了找到一个爱自己的人,好多人累到几乎丧失了信心,其实没那
阅读全文
摘要:安装的samba默认不是开机启动的,这样每次都要进入系统人为启动,很不方便,当然系统肯定可以设置开机启动的。因为我的是RedHat Linux系统,支持chkconfig命令直接配置,会简单些,其它Linux系统不支持此命令。在配置之前,先了解下Linux的运行级别和原理:Linux系统有7个运行级别(runlevel),有on启动和off关闭两种状态。运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多用户状态(没有NFS)运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式运
阅读全文
摘要:正常情况下都不会直接在Linux服务端进行操作,实际使用服务器和工作电脑不会在同一个地方,也不允许在服务器操作。我这里用SecureCRT 7.0来连接服务器。提供个下载,带注册机工具:http://pan.baidu.com/share/link?shareid=1430164444&uk=1996857236安装完后进行注册,以管理员身份运行KEY,点patch,第一次找到程序的安装目录,选择“SecureCRT”【确定】,然后会自动弹出程序的配置文件目录,选"SecureCRTHelp"文件【确定】,接下来运行主程序,输入注册机里的信息,程序注册成功。连接Li
阅读全文
摘要:离开技术好些年,仅凭记忆开始学习。同时决定在Linux系统学习C语言。一、下午安装了VM 8.0,安装RedHat Enterpris Server 6.4虚拟操作系统,都还比较顺利。二、要实现Linux和Windows文件共享,需安装和配置Samba服务。 RedHat Enterprise Server版的操作系统有自带的Samba服务,只需配置就好了。检查系统是否已经安装Samba服务,如下输出证明服务器已经安装。[root@gxing ~]# rpm -qa |grep sambasamba-client-3.0.10-1.4Esamba-3.0.10-1.4Esystem-confi
阅读全文
摘要:因工作所需,重新捡起C语言,之前在学校里有接触过,但现在已经忘的一干二净了,现决定重新开始学习,为工作,为生活。以《标准 C程序设计 第5版》的课程进行基础学习,同时以另外两本书为辅助,一个知识点看三本书,互相分析借鉴,希望能把基本打扎实。
阅读全文
摘要:X & (-X):取出一个数的二进制中的最后一个1;(待更新.......)
阅读全文
摘要:// Time 46ms, Memory 328K#include
#include
using namespace std;
double d;
struct range
{ double l,r;
};
range get(double a,double b)
{ range p; if(a60) p.r=60; if(p.l>p.r) p.l=p.r=0; return p;
}
range set(range a,range b)
{ range p; p.l=a.l>b.l?a.l:b.l; p.r=a.r>b.r?b....
阅读全文
摘要:#include
using namespace std;
int main()
{ int a,b,s,t,i,j,k; while(cin>>a>>b>>s>>t && (a || b || s || t)) { if(a>s || (a==s && b>=t)) s+=12; k=0; for(i=0;;i++) { j=(a+i)%12; if(a+i>s || (a+i==s && j*6>t*1.1)) break; if(...
阅读全文
摘要:大致题意:就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥。求搭建通路的最小费用(费用就是边权,就是两个球面之间的距离)。#include
#include
using namespace std;
int vis[105],n;
double map[105][105],l;
double dis(double x1,double y1,double z1,double x2,double y2,double z2)
{ return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z.
阅读全文
摘要://Time 906ms, Memory 384K#include
#include
int vis[110][110],dx[4]={0,1,0,-1},dy[4]={1,0,-1,0},n,m,t,min,num,road[6000],rd[6000];
char map[110][110];
void f(int x,int y)
{ int i,nx,ny,p; if(x==n-1 && y==m-1) { for(i=0;i=vis[n-1][m-1]) || num>6000) return; num++; for(i=0;i...
阅读全文
摘要:#include
#include
int a[100000][2],vis[100000],i,count;
int f(int p,int k)
{ int j,t; for(j=k+1;j-ki) t=j-i-1; else t=j; if(p==a[t][0] && !vis[a[t][1]]) { vis[a[t][1]]=1;count++; if(f(a[t][1],t)==0) return 0; } else if(p==a[t][...
阅读全文
摘要://Time 531ms,Memory 1228K#include
#include
int map[50][50][50],t,t1,vis[50][50][50],dx[6]={0,0,0,0,1,-1},dy[6]={0,1,0,-1,0,0},dz[6]={1,0,-1,0,0,0},a,b,c;
void f(int x,int y,int z)
{ int i,nx,ny,nz;t1++; for(i=0;ia-1 || nyb-1 || nzc-1 || map[nx][ny][nz]==1) continue; if(vis[nx][ny][nz...
阅读全文
摘要:#include
#include
int main()
{ int i,j,k,n,a[18][301]; memset(a,0,sizeof(a)); for(i=0;i<301;i++) a[1][i]=1; for(i=2;i<18;i++) { for(j=0;j<301;j++) for(k=0;j+i*i*k<301;k++) a[i][j+i*i*k]+=a[i-1][j]; } while(scanf("%d",&n)==1 && n...
阅读全文
摘要:#include
int fa[10001],di[10001],n,m;
int find(int v)
{ if(fa[v]!=1 && fa[v]!=v) fa[v]=find(fa[v]); return fa[v];
}
int find1(int v)
{ if(di[v]!=1 && di[v]!=v) di[v]=find1(di[v]); return di[v];
}
void Unio(int x,int y)
{ if(x>1) fa[x]=find(y); if(y>1) di[y]=fi...
阅读全文
摘要:#include
#include
using namespace std;
typedef struct point
{ double x,y; point(double x=0.0,double y=0.0):x(x),y(y){}
}vector;
point p[1000010],c;
vector operator - (point a,point b) {return vector(a.x-b.x,a.y-b.y);}
point operator + (point a,point b) {return point(a.x+b.x,a.y+b.y);}
point ...
阅读全文
摘要:#include
__int64 gcd(__int64 a,__int64 b)
{ return b==0?a:gcd(b,a%b); }
int main()
{ int i,j,prime[]={2,3,5,7,11,13,17,19},n,t; __int64 s1,s2,m,d,gd; while(scanf("%d",&n)==1) { s2=1;s1=0;t=0; if(n==21 || n==22) { for(i=2;id) {
...
阅读全文
摘要:// Time 1062 ms, Memory 4252K#include
#include
int map[1010][1010],vis[1010],a[1010],b[1010],k;
int f1(int u)
{ int v; for(v=0;v<k;v++) { if(map[u][v] && !vis[v]) { vis[v]=1; if(!b[v] || f1(b[v])) { a[u]=v;b[v]=u;return ...
阅读全文
摘要:// Time 0ms, Memory 356K#include
#include
#include
using namespace std;
int n,m,p[9][9],sx,sy,dx[]={0,1,0,-1},dy[]={1,0,-1,0};
struct point
{ int x,y,time,step; point(int x=0,int y=0,int time=0,int step=0):x(x),y(y),time(time),step(step){}
};
int bfs()
{ point s(sx,sy,6,0),t; queueq;...
阅读全文
摘要:转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove做了几个非常基础的数位DP,很水。弱爆了,接下来要进行进阶训练了HDU 2089 不要62http://acm.hdu.edu.cn/showproblem.php?pid=2089不能出现4,或者相邻的62,这题可以暴力打表解决具体的在代码里都有解释#include #include #include #include #include #include #define N 55 #define inf 14) //高位可...
阅读全文
摘要://Time 0ms, Memory 288K#include
#include
int main()
{ int i,j,la,lb,t,map[20][20],dp[105][105],x,y,z; char a[105],b[105]; memset(map,0,sizeof(map)); map[0][0]=map[2][2]=map[6][6]=map[19][19]=5; map[0][2]=map[2][0]=map[0][19]=map[19][0]=map[7][19]=-1; map[0][6]=map[6][0]=map[2...
阅读全文
摘要:#include
#include
int map[105][105],vis[105][105],ans,n,father[105];
int find(int x)
{ while(x!=father[x]) x=father[x]; return x;
}
int main()
{ int i,j,k,a,b,d,t,min1,min2,state,tt,num; while(scanf("%d",&n)==1 && n) { memset(vis,0,sizeof(vis)); memset(map...
阅读全文
摘要:#include
int main(void)
{ int n, i; __int64 g[34] = {1}; __int64 d[34] = {0}; for (i = 1; i < 34; i++) { g[i] = 3 * g[i - 1] + 2 * d[i - 1]; d[i] = g[i - 1] + d[i - 1]; } while (scanf("%d", &n), n != -1) printf("%I64d, %I64d\n", g[n], d[n]); re...
阅读全文
摘要:这题是我在没学Dijkstra算法时做的,所以跟模板有点不一样,但是意思差不多。如果要看标准的Dijkstra算法的话,可以去查有关知识。代码如下:// Time 0ms, Memory 5884K#include
#include
int map[1200][1200],v1[1200],v2[1200],l,d1[1200],d;
int f(int x)
{ int i,min,n=0,y,z,m=-1,v[1200]; memset(d1,-1,sizeof(d1)); memset(v,-1,sizeof(v)); y=x;d1[x]=0; w...
阅读全文
摘要://Time 0ms, Memory 212K#include
#include
int main()
{ int i,j,l,n,c,t,vr,v1,v2,a[105],len; double temp,ti,min,d[105]; while(scanf("%d",&l)==1) { memset(d,0,sizeof(d)); scanf("%d%d%d",&n,&c,&t); scanf("%d%d%d",&vr,&v1,&v2); ti=l*1.0/vr; for(i=
阅读全文
摘要:#include
int main()
{ __int64 i,n,a[36],j=0; a[1]=2; for(i=2;i<36;i++) { a[i]=2*(a[i-1]*2-a[i-1]*3/(i+1)); } while(scanf("%I64d",&n)==1 && n!=-1) { j++; printf("%I64d %I64d ",j,n); printf("%I64d\n",a[n]); } return 0;
}
阅读全文
摘要:#include
#include
int map[510][510],vis[510],a[510],b[510],n,m,k;
int f1(int u)
{ int v; for(v=1;v<=n;v++) { if(map[u][v] && !vis[v]) { vis[v]=1; if(!b[v] || f1(b[v])) { a[u]=v;b[v]=u;return 1; } } ...
阅读全文
摘要:#include
#include
#define N 8010
int main()
{ int i,j,k,n1,n2,n3,a[N],b[N],c[N]; while(scanf("%d%d%d",&n1,&n2,&n3)==3 && (n1 || n2 || n3)) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c));k=0; for(i=0;i<=n1;i++) a[i]=1; ...
阅读全文
摘要:#include
int main()
{ int i,n,c; double a[21]; a[1]=0;a[2]=1; for(i=3;i1;i--) a[n]/=i; printf("%.2lf%%\n",a[n]*100.0); } return 0;
}
阅读全文
摘要:#include
int main()
{ int i,n,x[100],y[100]; double s; while(scanf("%d",&n)==1 && n) { s=0.0; for(i=0;i<n;i++) scanf("%d%d",&x[i],&y[i]); for(i=1;i<n-1;i++) { s+=x[0]*(y[i]-y[i+1])+x[i]*(y[i+1]-y[0])+x[i+1]*(y[0]-y[i]); ...
阅读全文
摘要:// Time 0ms, Memory 404K#include
int a[255][105],temp[255][105];
int val[6]={0,1,5,10,25,50};
int num[255]={0};
int main()
{ int i,j,k,t,n; a[0][0]=1; for(i=1;i<=5;i++) { for(j=0;j<=250;j++) for(k=0;j+k*val[i]<=250;k++) for(t=0;t+k<=100;t++) temp[j+k*val[i]][t+k]+=a[j][t]; for(j...
阅读全文
摘要:原文地址:线段树的两种建树模型作者:飘羽逸狂线段树的两种建树模式:第一种:端点形式比如对区间[0,8]可以建立如下的线段树:[0,8][0,4][4,8][0,2][2,4][4,6][6,8][0,1][1,2][2,3][3,4][4,5][5,6][6,7][7,8]第二种:区间格形式比如对区间[0,8]可以建立如下的线段树:[1,8][1,4][5,8][1,2][3,4][5,6][7,8][1,1][2,2][3,3][4,4][5,5][6,6][7,7][8,8]在这种模型下,[1,1],[2,2]...代表的不是一个点,而是一个区间格.上面和下面的两棵线段树图上的每一个节点都
阅读全文
摘要:原文地址:upper_bound()与lower_bound()使用方法作者:shenyaoxing#include #include //必须包含的头文件
using namespace std;
int main(){ int point[10] = {1,3,7,7,9}; int tmp = upper_bound(point, point + 5, 7) - point;//按从小到大,7最多能插入数组point的哪个位置 printf("%dn",tmp); tmp = lower_bound(point, point + 5, 7) - point;////按
阅读全文
摘要:转自http://blog.csdn.net/allenjy123/article/details/6627248红色已经AC一、最短路POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中POJ 3013 - Big Christmas Tree(基础)http://
阅读全文
摘要:出处:http://blog.csdn.net/shiqi_614/article/details/8228102#comments之前做了些线段树相关的题目,开学一段时间后,想着把它整理下,完成了大牛NotOnlySuccess的博文“完全版线段树”里的大部分题目,其博文地址Here,然后也加入了自己做过的一些题目。整理时,更新了之前的代码风格,不过旧的代码仍然保留着。 同样分成四类,不好归到前四类的都分到了其他。树状数组能做,线段树都能做(如果是内存限制例外),所以也有些树状数组的题目,会标示出来,并且放到其他类里。一、单点更新 1.hdu1166敌兵布阵:有N个兵营,每个兵营都给出...
阅读全文
摘要:转载原文(有删改):http://blog.csdn.net/xiajun07061225/article/details/5813726http://blog.163.com/kksunshine@yeah/blog/static/1186123882010111565210317/最近在研究C++读取*.bmp文件,感谢作者的无私奉献 O(∩_∩)O==========================================================================================================================
阅读全文
摘要:作者 : AekdyCoin转自http://hi.baidu.com/aekdycoin/item/e493adc9a7c0870bad092fd9曾经看过如下一个公式:以上的公式如果第一次见到,难免有不少疑惑:为什么可以这么写?限制条件为什么是x >= Phi(C),这个公式为什么正确?今天突发奇想,在纸上YY以后得到了以下证明(个人证明,如果有问题欢迎提出)定理 1:对于一个数对(A,C) 必然存在一个最小的正整数 L,满足其中SPOS 是一个大于等于0的整数(下面具体介绍)我们称L 为(A,C) 的最小循环节长度证明:根据鸽巢原理,得到在x >= C 后必然出现循环,从而定
阅读全文
摘要:斯特灵公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用,而且,即使在n很小的时候,斯特灵公式的取值已经十分准确。公式为:以下等式或者不等式均可以用数学归纳法予以证明!1 + 3 + 5 + ... + (2n - 1) = n^21*2 + 2*3 + 3*4 + ... + n*(n + 1) = n*(n + 1)*(n + 2) / 31*1! + 2*2! + 3*3! + ... + n*n! = (n + 1)! - 11^2 + 2^2 + 3^2 + ... + n^2 = n*(n + 1)*(2n + 1) /
阅读全文
摘要:刻苦的训练我打算最后稍微提一下。主要说后者:什么是有效地训练?我想说下我的理解。很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了。其实,这既不是充分条件、也不会是必要条件。我觉得一般情况下,对于我们普通学校的大学生,各方面能力的差距不会太大,在这种情况下,训练和学习的方法尤为重要。其实,500题仅仅是一个标志,而且仅仅表示你做ACM-ICPC有一定的时间,我们训练的目的是什么?我觉得有四点1、提高编程能力2、学习算法,(读书,读论文,包括做一些题目验证)3、准备好面临将到来的挑战(熟悉题型,调整心态)4、启发思维。这里四个目的,从训练的角度上,重要性逐次递减;为什么呢?因为
阅读全文
摘要:其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中。之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途(例如本人的专业,GIS)。以后若有机会,我会补充、完善这个列表。计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用
阅读全文
摘要:旋转卡壳求最远点对;#include
#include
using namespace std;
int n,k;
double dt;
typedef struct point
{ double x,y; point(double xx=0,double yy=0):x(xx),y(yy){}
}vector;
point p[50010],q[50010];
struct line
{ vector v;
}li,lj;
void sort1(point *a,int x,int y,point *t)
{ int m,u,v,i; if(y-x>1) { m=x+(y-x...
阅读全文
摘要:#include
#include
#include
#include
using namespace std;
int main()
{ int i,j,k,n,d,x,l,a; char s[35],p[35],m[65],c[65]; while(scanf("%d",&x)!=EOF && x) { getchar(); gets(s); gets(p); gets(c); l=strlen(s); n=strlen(c); d=((int)pow(n*1.0,1.5)+x)%n; memset(m,0,sizeof(m)); for(i=0
阅读全文
摘要:先来个中文版的:http://zhaoming198771.blog.51cto.com/927067/283990再来个比较给力的英文版。July 3rd, 2012 by Aseem Kishore |File in:Help DeskA client of mine started having a strange problem when browsing pictures and videos on his Windows 7 PC: it would popup with the following error message:COM Surrogate has stopped w
阅读全文
摘要:本文对三种最具代表性的微控制器(AT89S51单片机、7TDMI核的LPC2114型单片机和TMS320F2812)的指令周期进行了分析和。为了能观察到指令周期,将三种控制器的GPIO口设置为数字输出口,并采用循环不断地置位和清零,通过观察GPIO口的波形变化得到整个循环的周期。为了将整个循环的周期与具体的每一条指令的指令周期对应起来,通过C语言源程序得到汇编语言指令来计算每一条汇编语言的指令周期。 1 AT89S51工作机制及指令周期的 AT89S51单片机的时钟采用内部方式,时钟发生器对振荡脉冲进行2分频。由于时钟周期为振荡周期的两倍(时钟周期=振荡周期P1+振荡周期P2),而1个机器周.
阅读全文
摘要:谭浩强的第六章是循环,拿来练练手,程序是亲手写的,不一定是最优的,但一定对。另外12、13、15感觉比较扯就没写。下面是代码://1.cpp
#include #define MAX(m,n) (((m) > (n) ? (m) : (n)))
#define MIN(m,n) (((m) 0;i--) { if(!(m%i) && !(n%i)) break; } a=i; for(i=MAX(m,n);;i++) { if(!(i%m) && !(i%n)) break; } b=i; printf("a=%d\tb=%d\n",a
阅读全文
摘要:又一个实验,供以后参考实验原理 一般的通信信道中总是不可避免的存在噪声或者干扰,因此在信息传输的过程中也就必然会造成信息的损失,或者说,信源符号在有噪信道中的传输过程中会产生失真。为了降低这种信息损失,就需要我们在信源符号输入到信道之前,对其进行有效的信道编码。 信道编码是通信系统中的一个重要环节,目的就是为了降低传输过程中错误发生的概率,从而提高通信系统的可靠性。信道编码的基本思想是附加冗余信息,增加信源的剩余度,这样在接收端就可以利用相关性进行检错或者纠错。根据有噪信道编码定理,附加冗余位可以降低信息传输率,使错误概率减小,当信息传输率小于信道容量时,理论上就可以使译码错误概率任意小,从而
阅读全文
摘要:问题:win7环境下,使用MaplabX IDE 1.70,某一天象平常一样打算用ICD 3将代码加载到开发板中进行调试,意外碰到如下错误:Launching
Could not acquire hardware tool communications resources: ICD3PlatformTool SN#JIT110837830
The debugger could not be started. Terminating debug session.
User program finished其中,JIT110837830是ICD 3的型号。前提,已经使用ICD 3在同样的目标板上加
阅读全文
摘要:Huffman编码实验,原理弄懂了,源代码不是很懂,挖个坑,以后用到再细读。实验原理 在众多的无失真信道编码技术中,Huffman编码是一种有效的获得最佳码的编码技术。它能够充分利用短码,大幅度降低码字的平均码长,从而获得较高的编码效率,在保证码字的可分离性的同时,有效的提高了通信系统的有效性。也正是由于Huffman编码技术的优越性,目前在有关信源编码的许多领域中,Huffman编码作为一项基本技术,得到了极为广泛的应用。(一)Huffman编码方法由于目前数字通信中一般都使用二进制符号,因此二进制的Huffman编码技术最为普遍,其编码步骤如下:1、将信源符号按概率从大到小进行排列;2、给
阅读全文
摘要:《信息论》的实验,比较有意思,实验原理如下:对于一个通信系统来说,信息传输的有效性、可靠性、安全性和认证性是人们的主要目标。其中,信息传输的有效性指的是尽可能的使用较短的时间和较少的设备等资源来传送尽可能多的信息,而这一目的主要是通过信源编码这个环节来实现的。 虽然有许许多多不同的信源编码方法,但总的说来,信源编码主要是通过减少或消除信源的剩余度来提高传输效率的。而且,有时人们为了追求更高的传输效率,在满足实际需求的情况下,还允许在编译码过程中存在一定程度的失真,这就是所谓的有损压缩。当然,针对不同的应用要求,可以选择不同的压缩编码办法,为了方便理解和实现,针对一般的英文文本,可以设计一种半字
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_8f06da99010125ol.html翻硬币游戏一般的翻硬币游戏的规则是这样的:N枚硬币排成一排,有的正面朝上,有的反面朝上。我们从左开始对硬币按1到N编号。第一,游戏者根据某些约束翻硬币,但他所翻动的硬币中,最右边那个硬币的必须是从正面翻到反面。例如,只能翻3个硬币的情况,那么第三个硬币必须是从正面翻到反面。如果局面是正正反,那就不能翻硬币了,因为第三个是反的。第二,谁不能翻谁输。有这样的结论:局面的SG值为局面中每个正面朝上的棋子单一存在时的SG值的异或和。即一个有k个硬币朝上,朝上硬币位置分布在的翻硬币游戏中,SG值
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_8f06da990101252l.htmlGreen HackenbushHackenbush游戏是通过移除一个有根图的某些边,直到没有与地板的相连的边。地板用虚线来表示,其中移除某一条边的时候,那条边以上所连着的所有边都会移除,就像砍树枝那样,树枝以上的部分也会被移除。在这节中,我们讨论这个游戏的公平版本,每个玩家在他的回合可以删除任意的边。这个版本叫做Green Hackenbush,每条边都是绿色的,下面我们简称GH游戏。这里还有一个不公平版本,叫做Blue-Red Hackenbush,有些边是蓝色,有些边是红色,而玩
阅读全文
摘要:#include
#include
#include
#include
using namespace std;
const double eps=1e-6;
typedef struct point3
{ double x,y,z; point3(double x=0,double y=0,double z=0):x(x),y(y),z(z){}
}vector3;
struct face
{ point3 a,b,c,d; vector3 n; face(){} face(point3 a,point3 b,point3 c,point3 d,vector3 n):a(a),b...
阅读全文