07 2013 档案
摘要:Question 6:What is an accessor method?What is a mutator method?答案参考:http://www.xmsydw.comNumber Analysis Class(西交利物浦大学Java代写)Write a class with a constructor that accepts a file name as its argument. The file contains aseries of numbers, one on each line. The class should read the contents of the fi
阅读全文
摘要:题意:将一个整数 n 进行无序拆分,一共有2^(n-1)种;输入一个整数 k ,问 k 在所有拆分中出现的次数。分析:a[n][k]=a[i][k]+2^(n-k-1);(k=3),而对所有的 k 都有a[k][k]=1,a[k+1][k]=2,........所以数组a的值与第二维k无关。那么 a[k]=1,a[k+1]=2,...;令n=n-k+1;即可以表示为 a[1]=1,a[2]=2,...a[n]=2*a[n-1]+2^(n-3)。最终得到 a[n]=2^(n-1)+(n-2)*2^(n-3);将n=n-k+1代入得:a[n-k+1]=2^(n-k)+(n-k-1)*2^(n-k-
阅读全文
摘要:正则:http://hi.baidu.com/luke8327/blog/item/bcbebfd0d595840c3bf3cf48.htmlandroid:android: http://hi.baidu.com/%CB%AE%C4%FD%D1%F6%B9%E2/homeSpring MVC:http://blog.csdn.net/generalyy0/article/details/8464467
阅读全文
摘要:题意:给你N个数,M个操作,操作分两类。(1)"QAB“,查询区间[A,B]内的最大值。(2)"UAB",将第A个数的值改成B。线段树-单点更新。// Time 843ms; Memory 6448K#include
#include
#define maxn 10;i--) { a[i].l=a[2*i].l; a[i].r=a[2*i+1].r; a[i].n=-inf; }
}
void insert(int i,int x,int m)
{ if(x>=a[i].l && xmid) insert(2*i+1,x,m); else i
阅读全文
摘要:题意:有N个兵营,每个兵营都给出了人数ai(下标从1开始),有四种命令,(1)”Addij",表示第i个营地增加j人。(2)“Sub i j”,表示第i个营地减少j人。(3)“Query ij",查询第i个营地到第j个营地的总人数。(4)”End“,表示命令结束。有三种操作:询问区间总和,增加某个兵营的兵的数目,减少某个兵营的兵的数目。实际上也只有两个。在更新的时候,每到一个区间就把当前区间的sum增加对应的数目,到达叶子结点是返回。这样就可以不会回溯去更新父亲结点的值。查询的时候,如果区间完全匹配,直接返回区间的sum值,否则向下寻找,直到完全匹配,然后返回它们的和就可以
阅读全文
摘要:RedHat 6默认是安装有GCC,而没有安装G++编译要安装G++前最好先查看下GCC的版本号,通常GCC的版本和G++的版本是相同的,知道GCC的版本再去找G++的安装文件就容易些,版本号有在安装文件名体现。#gcc --version下面开始安装G++:加载系统镜像,挂载光驱#mount /dev/cdrom2 /home/cdrom //先前有在home目录创建mkdir了 cdrom目录#cd Packages //应用程序都放在这个目录里#ls 显示所有文件找到以下3个安装文件:libstdc++-4.4.4-13.el6.i686.rpm /可能版本号不同,但程序文件名头是相同的
阅读全文
摘要:题目大意:给出三个点的坐标,问在这三个点坐标里面的整数坐标点有多少个(不包含边上的)匹克定理:I = (A-E) / 2 + 1;A: 表示多边形面积 I : 表示多边形内部的点的个数 E:表示在多边形上的点的个数 // Time 0ms; Memory 164K#include
#include
#include using namespace std; typedef struct point { int x,y; point(int xx=0,int yy=0):x(xx),y(yy){}
}vector; point a,b,c;
vector u,v,w; vector...
阅读全文
摘要:题目大意:已知机器人行走步数及每一步的坐标变化量,求机器人所走路径围成的多边形的面积、多边形边上和内部的点的数量。思路:叉积求面积,pick定理求点。pick定理:面积=内部点数+边上点数/2-1。// Time 0ms; Memory 236K#include
#include
#include using namespace std; struct point { int x,y; point(int xx=0,int yy=0):x(xx),y(yy){}
}a,b;
int gcd(int x,int y)
{ static int t; for(;t=y;y=x%y,x...
阅读全文
摘要:大学生程序代写 路漫漫其修远兮,吾将上下而求索! 素数判定算法 1. 素数判定问题 素数判定问题是一个非常常见的问题,本文介绍了常用的几种判定方法。 2. 原始算法 素数的定义是,除了能被1和它本身整除而不能被其他任何数整除的数。根据素数定义 只需要用2到n-1去除n,如果都除不尽,则n是素数,否则,只要其中有一个数能整除则n不是素数。 ? 1 2 ...
阅读全文
摘要:通用线程:POSIX 线程详解,第 3 部分使用条件变量提高效率Daniel Robbins, 总裁兼 CEO, Gentoo Technologies, Inc.简介:本文是 POSIX 线程三部曲系列的最后一部分,Daniel 将详细讨论如何使用条件变量。条件变量是 POSIX 线程结构,可以让您在遇到某些条件时“唤醒”线程。可以将它们看作是一种线程安全的信号发送。Daniel 使用目前您所学到的知识实现了一个多线程工作组应用程序,本文将围绕着这一示例而进行讨论。条件变量详解在 上一篇文章结束时,我描述了一个比较特殊的难题:如果线程正在等待某个特定条件发生,它应该如何处理这种情况?它可以重
阅读全文
摘要:warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]该警告希望你在&(逻辑与)表达式左右加上括号。有的时候&&(逻辑且)少写了一个&,也会产生该警告。例如:if((a[2]>>1)&0x1 == 1){.........}应该将(a[2]>>1)&0x1用()号括起来。因为&运算符的优先级较低,低于==和!=运算符。
阅读全文
摘要:题意:从原点出发,沿着8个方向走,每次走1个点格或者根号2个点格的距离,最终回到原点,求围住的多边形面积。分析:直接记录所经过的点,然后计算多边形面积。注意,不用先保存所有的点,然后计算面积,边走变算,不然会超内存。最多有1000000个点。注意:精度问题,使用long long /__int64,直接使用double不准确。方向的处理使用数组。// Time 94ms; Memory 1036K
#include
#include
#define maxn 1000010 using namespace std; char s[maxn];
long long dx[]={-1,0,1,..
阅读全文
摘要:题目大意:给你n棵树,可以用这n棵树围一个圈,然后在圈里面可以养牛,每个牛需要50平方米的空间,问最多可以养多少牛?其实就是求一个凸包,计算凸包面积,然后除以50,然后就得到答案,直接上模板了。凸包这一类型的题目差不多,可以作为模板使用,时间复杂度是NlogN。//Time 32ms; Memory 568K#include
#include using namespace std; int n; typedef struct point { double x,y; point(double xx=0,double yy=0):x(xx),y(yy){}
}vector; poi...
阅读全文
摘要:题目大意grandfather给k一块凸包的土地,有钉子钉在凸包的边上,现在其中一些钉子掉掉了,判断K是否能根据剩下的钉子判断出原来这边凸包的土地,能输出YES不能输出NO思路如果根据剩余的点作出的凸包上的每一条边除两边端点意外还有多余的点。那么就是YES,注意: 有可能只有一条边,那么一定是NO;// Time 16ms; Memory 272K#include
#include using namespace std; int n; typedef struct point { double x,y; point(double xx=0,double yy=0):x(xx),...
阅读全文
摘要:题意:是有n棵树,每棵的坐标,价值和长度已知,要砍掉若干根,用他们围住其他树,问损失价值最小的情况下又要长度足够围住其他树,砍掉哪些树。。思路:先求要砍掉的哪些树,在求剩下的树求凸包,在判是否可行。(枚举+凸包)// Time 407ms; Memory 200K#include
#include
#include
#include
#include
#define inf 200000
using namespace std; bool vis[15],tvis[15];
int n,m,minv,tn; typedef struct point
{ double x,y; int ...
阅读全文
摘要:可以通过time()函数来获得计算机系统当前的日历时间(Calendar Time),处理日期时间的函数都是以本函数的返回值为基础进行运算。其原型为:time_t time(time_t * t);如果你已经声明了参数t,你可以从参数t返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NULL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:#include int main(void) { time_t t; t=time(NULL); pri...
阅读全文
摘要:一、回车与换行的来历关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。 这就是“换行”和“回车”的来历,从它们...
阅读全文
摘要:大学生程序代写 http://acm.nyist.net/JudgeOnline/problem.php?pid=511 这道题很容易想到要构建一个循环链表来确定每个球的相对位置,就是操作比较繁琐,考虑情况较多。 首先要创建节点Node,每个节点都有一个初始顺序order,指向左边的Node*指针left,何指向右边的Node*指针right。 [cpp] vie...
阅读全文
摘要:一、inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢,且听我道来: 1. 首先谈一下在C中使用这种形式宏定义的原因,C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈,代码生成等一系列的操作,因此,效率很高,这是它在C中被使用的一个主要原因。 2. 这种宏定义在形式上类似于一个函数,但在使用它时,仅仅只是做预处理器...
阅读全文
摘要:编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1. 编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理伪指令主要包括以下四个方面:(1)宏定义指令,如#define Name TokenString,#undef等。对于
阅读全文
摘要:auto :声明自动变量break:跳出当前循环case:开关语句分支char :声明字符型变量或函数const :声明只读变量continue:结束当前循环,开始下一轮循环default:开关语句中的“其它”分支do :循环语句的循环体double :声明双精度变量或函数else :条件语句否定分支(与 if 连用)enum :声明枚举类型extern:声明变量是在其它文件中声明float:声明浮点型变量或函数for:一种循环语句goto:无条件跳转语句if:条件语句int: 声明整型变量或函数long :声明长整型变量或函数register:声明寄存器变量return :子程序返回语句(可
阅读全文
摘要:“ / ” 两整数相除,结果为整数,有一方是实数形式,结果保留小数 “ % ” 求余运算符要求两侧均为整型数据, 数值取余,符号与被除数一致恩,问这个问题的人太多了,懒得继续回答,直接贴上来自己看。。。优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)/函数名(形参表).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名2-负号运算符-表达式右到左单目运算符(类型)强制类型转换(数据类型)表达式++自增运算符++变量名/变量名++单目运算符--自减运算符--变量名/变量名--单目运算符*取值运算符*指针变量单目运算
阅读全文
摘要:这么简单的程序本不应贴在这里,但每写一篇博客,积分涨10分,距离摆脱千里之外的排名又进一步,相当于刷榜了,哈哈!#include #include int main()
{ char c; int i = 0; int cnt[26] = {0}; printf("输入字母:"); while((c=getchar()) != '\n') { if(c>='A' && c='a' && c%d\n", i+'a', cnt[i]); } } return 0;
}
阅读全文
摘要:本来挺简单的一个程序,但突然想把《Friends》给糅合进去,就多花了一些心思,这是我写过最有趣的程序了。#include #include #include int getrand()
{ srand(time(NULL)); return rand()%3;
} int win_lose(int choice)
{ int rand = 0; char *p[3] = {"SCISSORS", "STONE", "CLOTH"}; rand = getrand(); printf("\nThe system give t
阅读全文
摘要:大学生程序代写 /*子串和 时间限制:5000 ms | 内存限制:65535 KB 难度:3 描述 给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1 int b[1000001]; int main(){ int N; scanf("%d",&N); while(N--){ int...
阅读全文
摘要:我们在开瓶瓶罐罐的时候,经常会遭遇因各种瓶口规格不同而找不到合适的工具的尴尬。所以有时候就为了开个瓶,家里要备多种规格的开瓶器。同样是开个瓶子嘛,何必这么麻烦?于是有人发明了多功能开瓶器,不管啤酒瓶汽水瓶还是软木塞的红酒瓶都能轻松打开。然而开瓶器的问题也会发生到程序设计中。比如我们要编写一个函数来求一个数的绝对值,然而整数、浮点型数、双精度型数都有绝对值,但为它们编写的函数返回值类型却是各不相同的。比如:int iabs(int a);float fabs(float a);double dabs(double a);这样是不是有点备了多种开瓶器的感觉?我们能不能在程序设计中也做一个多功能的开
阅读全文
摘要:Richard M. Stallman大神是谁就不用说了,一时来了兴趣,想看看Linux系统下有多少程序有这位大神参与编写的。先把所有命令导出到文件中,遍历所有命令,用man手册查一下并过滤Stallman关键词。以下是脚本#!/bin/bash
i=0;
touch Stallman
ls /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games > command
for line in `cat command`
do man $line | grep Richard\ M.\ Stallman
阅读全文
摘要:对数组进行操作,查找、插入、删除。#include #include #include int size = 0;
int flag = 0; void output(int *arry)
{ int i = 0; for(i=0; i=0 && pospos; i--) { arry[i] = arry[i-1]; } arry[pos] = num; } else //在最后的位置插入 { arry[size] = num; } size++; } else printf("只能在0-%d的位置插入。\n",...
阅读全文
摘要:随机产生一些字符,然后输入要查找的字符,本想将查找到的字符存储起来,要么初始化一个等大小的数组,要么要先检索出总共查找到多少个元素,再开辟空间存储,但这样相当于搜索了两遍,没有想到更好的方法,只是简单的将找到的字符打印出来。#include #include #include #define SIZE 100 int getstr(char *str, int max)
{ int i; srand(time(NULL)); for(i=0; i<max-1; i++) { if(rand()%2) str[i] = rand() % 26 + 'A'; //产生在...
阅读全文
摘要:输入要显示的杨辉三角的行数,会打印出金字塔型的杨辉三角,不过行数太多的话,效果不太好,可以再调整一下格式控制。#include #include int main()
{ int i,j,k; int line; int *prev, *next; printf("输入要查看杨辉三角的行数(大于2):"); scanf("%d",&line); if(line =i; j--) //外部空格 { printf(" "); } printf("%6d",1); for(k=2; k<i; k++) //
阅读全文
摘要:输入两个日期,计算之间相差多少天。 用了两种方法实现,第二种利用结构体,代码比较清晰,其余的都一样。1.普通的写法#include int leapyear(int year)
{ if((year%4==0 && year%100!=0) || year%400==0) return 1; else return 0;
} int days(int *day1, int *day2)
{ int i=0; int *tmp; int diff = 0; const int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,...
阅读全文
摘要:输入一个日期,判断下一个日期是哪一天,如果日期输入错误,则调用Linux下的cal命令显示输入的月份。#include #include #include #include int year, month, day;
const int day_30 = 30;
const int day_31 = 31;
int day_month_2 = 0;
char err_flag = 0; void compute()
{ printf("输入年月日(1992-7-19):"); scanf("%d-%d-%d",&year, &month,
阅读全文
摘要:最近回炉重造C语言,陆续写一些比较短的代码,选择其中的一些贴到这里,都是在Linux下的代码,Windows未测试。第一个判断三角形的类型,两个浮点型数据不能直接判断相等,为了输入方便一些,自己设置的精度比较低,10^(-3)。#include #include #define EPSINON 1e-3
#define ABS(a) (((a)>0)?(a):(-a)) //?:不支持表达式嵌套
#define ZERO(x) ((x)>-EPSINON && (x)(b))?(a):(b))
#define MIN(a,b) (((a)0) || !(b>0
阅读全文
摘要:MIPS: Million Instructionsexecuted Per Second,每秒百万条指令,用来计算同一秒内系统的处理能力DMIPS:Dhrystone Million Instructionsexecuted Per Second :主要用于测整数计算能力。MFLOPS:主要用于测浮点计算能力。MIPS,DMIPS和MFLOPS是常用的CPU性能评估标准,MIPS是每秒百万次指令,对于给定的一个程序,MIPS可表示成:Rc表示时钟速率,它是Tc的倒数。至此我们知道系统性能还可以用速率表示。MFLOPS即每秒百万次浮点运算。MFLOPS=IFN/(TE×106)要注意
阅读全文
摘要:大学生程序代写 /*无线网络覆盖 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学。 现在学校给了他一个机会,因此他要购买很多的无线路由。现在他正在部署某条大道的网络,而学校只允许把他的无线路由器放在路的正中间。我们默认这条大道是笔直的并且它在任何地方的宽度都...
阅读全文
摘要:问题:环境:ubuntu 12.04,g++版本4.6.3,编译目标文件时出现warnings:u1204@u1204-zhw:~/hwsvn/2sw/4prj_mips/UCP_rt5350/src/trunk$ make clean;make
rm -f *.o local_ctrl
g++ -g3 -Wall -o0 -c msgrcv_cmd.cpp -o msgrcv_cmd.o
In file included from msgrcv_cmd.h:24:0, from msgrcv_cmd.cpp:30:
controller.h: In cons...
阅读全文
摘要:大学生程序代写 /*A problem is easy 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 When Teddy was a child , he was always thinking about some simple math problems , such as “What it’s 1 cup of water plu...
阅读全文
摘要:大学生程序代写 /*房间安排 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 2010年上海世界博览会(Expo2010),是第41届世界博览会。于2010年5月1日至10月31日期间,在中国上海市举行。本次世博会也是由中国举办的首届世界博览会。上海世博会以“城市,让生活更美好”(Better City,Better Life)为主题,将充...
阅读全文
摘要:创建一个线程默认的状态是joinable。如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码).所以创建线程者应该调用pthread_join来等待线程运行结束,并可得到线程的退出代 码,回收其资源(类似于wait,waitpid) 。但是调用pthread_join(pthread_id)后,如果该线程没有运行结束,调用者会被阻塞,在有些情况下我们并不希望如此。比如在Web服务器中当主线程为每个新来的链接创建一个子线程进行处理的时候,主线程并不希望因为调用pthread_join而阻塞(因为还要继续处理之后到来的
阅读全文
摘要:类UNIX下C/C++开发,代码调试比较麻烦,最原始的加跟踪调试很土,也很费时,特别是一个庞大的项目,代码行数非常大的时候调试起来非常费劲,当core dump时定位也不容易,这里介绍几个常用工具: gdb、dbx调试工具,valgrind内存检查工具(Linux) 。gdb(GNU DeBugger)是GNU的调试器,一般和gcc配搭使用。要使用GDB进行调试,编译程序时要指定-g或-ggdb的编译选项。如: gcc –g main.cgdb指令:f(file):指定可执行文件,l(list)列出源文件,r(run)运行可执行文件,可带执行参数,b(break)设置断点,c(continue
阅读全文
摘要:大学生程序代写 矩阵 快速幂 出处:http://www.cnblogs.com/yan-boy/archive/2012/11/29/2795294.html 矩阵的快速幂是用来高效地计算矩阵的高次方的。将朴素的o(n)的时间复杂度,降到log(n)。 这里先对原理(主要运用了矩阵乘法的结合律)做下简单形象的介绍: 一般一个矩阵的n次方,我们会通过连乘n-...
阅读全文
摘要:1. 数字后面跟D表示十进制,如:123D。2. 数字后面跟B表示二进制,如:10010B。3. 数字后面跟Q表示八进制,如:652Q。4. 数字后面跟H表示十六进制,如:2B5H。把十进制数转化成二进制的方法是,不断地除以2取得余数,直到商为0为止。如:把十进行10转换成二进制 10/2
阅读全文
摘要:很久没看APUE,今天一位朋友问道关于一个mutex的问题,又翻到了以前讨论过的东西,为了不让自己忘记,把曾经的东西总结一下。先大体看下网上很多地方都有的关于pthread_cond_wait()的说明:条件变量 条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 1. 创建和注销 条件变量和互斥锁一样,都有静态动态两种创建方式,静态方式使用PTHREAD_COND_INITIALIZER常
阅读全文
摘要:大学生程序代写 http://acm.nyist.net/JudgeOnline/problem.php?pid=655 光棍的yy 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊。 现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了,问这样的组合有多...
阅读全文
摘要:大学生程序代写 http://acm.nyist.net/JudgeOnline/problem.php?pid=32 /*组合数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 找出从自然数1、2、... 、n(0 //#include int a[10]; void fun(int n,int k) { int i,j; for...
阅读全文
摘要:大学生程序代写 C++的64位整数[原]by 赤兔 http://baike.baidu.com/view/1235293.htm 在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0...
阅读全文
摘要:大学生程序代写 /*6174问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到...
阅读全文
摘要:大学生程序代写 sscanf 名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明:...
阅读全文
摘要:大学生程序代写 A*B Problem II 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 ACM的C++同学有好多作业要做,最头痛莫过于线性代数了,因为每次做到矩阵相乘的时候,大量的乘法都会把他搞乱,所以他想请你写个程序帮他检验一下计算结果是否正确。 输入 有多组测试数据,每行给出一组m,n,k(0 int main() {...
阅读全文
摘要:共用版.h文件//----------------------------------------------------------------------------// 程序名称:ConfigFile.h// 程序说明:类 ConfigFile 的定义// 程序作者:// 程序版本:1.0// 开始日期:1999-01-10//----------------------------------------------------------------------------#ifndef __CONFIGFILE_H__#define __CONFIGFILE_H__#include
阅读全文
摘要:老外写的一段代码,在Server中编写这个类读取配置文件比较实用C++代码//Config.h#pragmaonce#include#include#include#include#include/**\briefGenericconfigurationClass**/classConfig{//Dataprotected:std::stringm_Delimiter;//!m_Contents;//!::iteratormapi;typedefstd::map::const_iteratormapci;//Methodspublic:Config(std::stringfilename,st
阅读全文
摘要:什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考.core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump.如何使用core文件?gdb -c core文件路径 [应用程序的路径]进去后输入wher
阅读全文
摘要:C\C++的转义字符所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。 转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012...
阅读全文
摘要:一、引入 定义一个类的对象,首先系统已经给这个对象分配了空间,然后会调用构造函数(说明:假设存在构造函数--2010.9.5修正)。一个类有多个对象,当程序中调用对象的某个函数时,有可能要访问到这个对象的成员变量。而对于同一个类的每一个对象,都是共享同一份类函数。对象有单独的变量,但是没有单独的函数,所以当调用函数时,系统必须让函数知道这是哪个对象的操作,从而确定成员变量是哪个对象的。这种用于对成员变量归属对像进行区分的东西,就叫做this指针。事实上它就是对象的地址,这一点从反汇编出来的代码可以看到。二、分析1、测试代码:?/////////////////////////////////.
阅读全文
摘要:一个对象的成员函数其实就是一般的全局函数,只是编译器给它隐含加了一个指向该对象的const指针,这就是this指针。下面让我们一起来了解一下this指针吧!this指针是一个隐含于每一个类的成员函数中的特殊指针(包括析构函数和构造函数),它用于指向正在被成员函数操作的对象。不过,在一般的程序设计中不直接用它的,this是一个指针变量,因此在成员函数中,可以使用*this来表示正在调用该函数的对象。1. this指针的用处:一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对
阅读全文
摘要:起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高效。一、new创建类对象与不new区别下面是自己总结的一些关于new创建类对象特点:new创建类对象需要指针接收,一处初始化,多处使用new创建类对象使用完需delete销毁new创建对象直接使用堆空
阅读全文
摘要:do while 语句在使用宏定义时是一个有用的技巧,说明如下:假设有这样一个宏定义#define macro(condition) /if(condition) dosomething()现在在程序中这样使用这个宏:if(temp) macro(i);else doanotherthing();一切看起来很正常,但是仔细想想。这个宏会展开成:if(temp) if(condition) dosomething();else doanotherthing();这时的else不是与第一个if语句匹配,而是错误的与第二个if语句进行了匹配,编译通过了,但是运行的结果一定是错误的。为了避免这...
阅读全文
摘要:压摆率slew rate压摆率在英文里是slew rate,简写为SR。压摆率也称转换速率。压摆率的意思就是运算放大器输出电压的转换速率,单位有通常有V/s,V/ms和V/μs三种,它反映 的是一个运算放大器在速度方面的指标。一般来说,压摆率高的运放,其工作电流也越大,亦即耗电也大的意思。但压摆率却是高速运放的重要指标。比如说OP07的压摆率为0.3V/μs即1μs时间内电压从0V上升到0.3V,而OPA637(G=-1,10V step)SR=135 V/μs,明显比OP07快。轨到轨rail-to-rail运放的输出电位通常只能在高于负电源某一数值,而低于正电源某一数值之间变化。经过特殊设
阅读全文
摘要:很好的MVC 参考blog:http://jinnianshilongnian.iteye.com/blog/1752171MVC: 概念:是一种设计模式,并没有引入新的技术,只是把我们开发的结构组织的更加合理,使展示与模型分离、 业务逻辑调用、展示逻辑与流程控制逻辑分离。 分述: Model(模型):数据模型,提供要展示和执久化的数据,包含数据和行为,通常可认为是领域模型或是JavaBean.View(视图):负责数据的呈现,渲染页面,与客户端交换。Controller(控制器):负责接收请求并处理,把处理后的结果 返回给View .Spring mvc 是用java 实现的基于 MVC .
阅读全文
摘要:大学生程序代写 //http://acm.nyist.net/JudgeOnline/problem.php?pid=2 括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入 第一行输入一个数N(0 0) { String a = input.next(); if (...
阅读全文
摘要:大学生程序代写 /*http://acm.nyist.net/JudgeOnline/problem.php?pid=113 字符串替换 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 编写一个程序实现将字符串中的所有"you"替换成"we" 输入 输入包含多行数据 每行数据是一个字符串,长度不超过1000 数据以EOF结束...
阅读全文
摘要:大学生程序代写 /http://acm.nyist.net/JudgeOnline/problem.php?pid=458 *题目458题目信息运行结果本题排行讨论区小光棍数 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数。 他已经知道了...
阅读全文
摘要:大学生程序代写 //http://acm.nyist.net/JudgeOnline/problem.php?pid=40 公约数和公倍数 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。 输入 第一行输入一个整数n(0 int m...
阅读全文
摘要:大学生程序代写 //http://acm.nyist.net/JudgeOnline/problem.php?pid=77 /*题目77题目信息运行结果本题排行讨论区开灯问题 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按...
阅读全文
摘要:大学生程序代写 /* NYOJ69 阶乘数位长度 http://acm.nyist.net/JudgeOnline/problem.php?pid=69 数的长度 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计...
阅读全文
摘要:大学生程序代写 //http://acm.nyist.net/JudgeOnline/problem.php?pid=28 /*题目28题目信息运行结果本题排行讨论区大数阶乘 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数m(0 #i...
阅读全文
摘要:转自http://blog.csdn.net/liming0931/article/details/7752248单片机的特殊功能寄存器SFR,是SRAM地址已经确定的SRAM单元,在C语言环境下对其访问归纳起来有两种方法。1、采用标准C的强制类型转换和指针来实现采用标准C的强制转换和指针的概念来实现访问MCU的寄存器,例如:#define DDRB (*(volatile unsigned char *)0x25)分析如下: A:(unsigned char *)0x25中的0x25只是个值,前面加(unsigned char *)表示0x25是个地址,而且这个地址所存储的数据的数据类型是u
阅读全文
摘要:题意:每次可以翻动一个、二个或三个硬币。(Mock Turtles游戏)初始编号从0开始。当N==1时,硬币为:正,先手必胜,所以sg[0]=1.当N==2时,硬币为:反正,先手必赢,先手操作后可能为:反反或正反,方案数为2,所以sg[1]=2。当N==3时,硬币为:反反正,先手必赢,先手操作后可能为:反反反、反正反、正反正、正正反,方案数为4,所以sg[2]=4。位置x:01234567891011121314...sg[x]:1247811 13 1416192122252628…看上去sg值为2x或者2x+1。我们称一个非负整数为odious,当且仅当该数的二进制形式的1出现的次数是奇数
阅读全文
摘要:大致题意:给定一个字符串,添加字符,使该字符串左右对称,求添加字符数最少。设原序列S的逆序列为S' ,则这道题目的关键在于,最少需要补充的字母数 = 原序列S的长度 — S和S'的最长公共子串长度静态数组开销大小为5001*5001的int是铁定超的.据说用short int的话不会MLE,有兴趣的同学可以试试这里重点讲一下滚动数组在这个题目中的应用.自己目前理解的应用滚动数组的目的就是减少空间开销.首先可以在纸上简单模拟一下DP的转移过程.确定好最少行数或者列数之后,重点就是在如何进行"滚动"以及如何用表达式控制这个滚动.对于本题,我用的是行数以0--1-
阅读全文
摘要:问题:C语言中有struct自定义结构体类型;C++中也有struct类型,而且,与C++中面向对象主要的数据类型class还极为相似。那么,C++中struct和class之间有什么区别,什么情况下使用struct呢?解决办法:从C++语言设计者Bjarne Stroustrup的大作《C++编程语言(特别版)》中归纳C++中struct和class的区别,有以下几点:1. 成员的默认访问权限。struct的成员默认是public的;class的成员默认是private的;2. 默认继承权限。在没有明确指定的情况下,struct的默认继承方式是public,class的默认继承方式是priv
阅读全文
摘要:题意:是求最长公共子序列的一个变型题;此题中的字符只有A,G,C,T四个,再加上'-';它们之间的不同匹配有对应的不同权值W;而且只有字符相同的匹配的权值为大于0;其他都为负值。此题就是求权值最大的匹配。f[i][j]: 表示第一个字符串的前 i 个字符和第二个字符串的前 j 个字符的最大权值。状态方程:f[i][j]=max(f[i-1][j]+w[a[i]]['-'],f[i][j-1]+w['-'][b[j]],f[i-1][j-1]+w[a[i]][b[j]]);// Time 16ms; Memory 324K#include
usin
阅读全文
摘要:大致题意:输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线。规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个。f[i][j]:表示第 i 行第 j 列到最后一行的最大权值和;状态方程:f[i][j]=w[i][j]+max(f[i+1][j],f[i+1][j+1]);// Time 157ms; Memory 1236K#include
using namespace std;
int max(int a,int b)
{ return a>b?a:b;
}
int main()
{ int i,j,n,w[355][35
阅读全文
摘要:大致题意:求最长升子序列。f[i]:前i+1个元素中包括第i+1个的最长升子序列。// Time 32ms; Memory 224K#include
using namespace std;
int main()
{ int i,j,n,a[1010],f[1010],max; cin>>n; for(i=0;i>a[i]; f[0]=1; for(i=1;ia[j] && f[i]<=f[j]) { f[i]=f[j]+1; } } max=0; for(i=0;i<n;i++) if(max<f[i]) max=f[i]; cout<
阅读全文
摘要:题意:给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。规定买任一类的珍珠n个(价格为p),都要支付(n+10)*p的钱,即额外支付10*p。(1) 要求要买的珍珠的数量是一定的(2) 所买的珍珠的质量允许提高,但不允许下降(即可以用高质量珍珠替代低质量)(3) 输入时,后输入的珍珠价格一定比前面输入的要贵(4) 由(2)(3)知,珍珠的替代必须是连续的,不能跳跃替代。因为,假如方案是用第 i+2 类去替代第 i 类珍珠,而用第 i+1 类去替代第 i 类珍珠会使最终的支付价格更加低;所以,一定是因为第 i+2 类代替了第 i+1 类后会使最终的支付价
阅读全文
摘要:题意: 令原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处。就是使新队列呈三角形分布就对了。要求最少出列数,就是留队士兵人数最大,即左边的递增序列人数和右边的递减序列人数之和最大因而可转化为求“最长降子序列”和“最长升子序列”问题。// Time 79ms; Memory 268K#include
using namespace std;
int main()
{ int i,j,n,fl[1010]={0},fr[1010]={0},max=0; double h[1010]; cin>>n; for(i=0;i>h[i]; fl[0]=1;fr
阅读全文
摘要:题意:就是给出一个主串,和一本字典,问最少在主串删除多少字母,可以使其匹配到字典的单词序列。PS:是匹配单词序列,而不是一个单词。f[i]表示从message中第i个字符开始,到第L个字符(结尾处)这段区间所删除的字符数,初始化为f[L]=0由于我的程序是从message尾部向头部检索匹配,所以是下面的状态方程:1、f[i]=f[i+1]+1 不能匹配时(最坏情况)2、f[i]=min(f[i],f[p]+(p-i)-q) 可以匹配时(取最优)// Time 94ms; Memory 268K#include
using namespace std;
int main()
{ int w...
阅读全文
摘要:32位与64位的数据类型长度是不一样的,而且windows和linux也有些许区别,下面把64位下的数据长度列表如下(无符号unsigned和有符号的长度一样): linux64 windows64 linux32 windows32char 8 8 8 8short 16 16 16 16int 32 32 32 32long 6432 32 32long long 64 64 64 64size_t 64 64 32 32需要注意的是long类型在win64下是32位,千万别搞错了。size_t类型随着CPU位数变化,也要注意。总结:没事不要用long。size_t是系统类型,使用时心里.
阅读全文
摘要:动态规划,多重背包题目大意:有各种不同面值的货币,每种面值的货币有不同的数量,请找出利用这些货币可以凑成的最接近且小于等于给定的数字cash的金额。// Time 79ms; Memory 640K
#include
using namespace std;
int v,f[100010];
void zeroone_pack(int c) //01背包
{ for(int i=v;i>=c;i--) if(!f[i]) { f[i]=f[i-c]; }
}
void complete_pack(int c) //完全背包
{ for(int i=c;i=v) { com...
阅读全文
摘要:在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。其一般形式为:表达式1,表达式2其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。【例】main() { int a=2,b=4,c=6,x,y; y=(x=a+b),(b+c); printf("y=%d,x=%d",y,x);
}本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。对于逗号表达式还要说明两点:逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。例如:表达式1,(表达式2,表达式3)
阅读全文
摘要:在SMP系统中,我们的应用程序经常使用多线程的技术,那么在Linux中如何查看某个进程的多个线程呢?本文介绍3种命令来查看Linux系统中的线程(LWP)的情况:在我的系统中,用qemu-system-x86_64命令启动了一个SMP的Guest,所以有几个qemu的线程,以此为例来说明。1. pstree 命令,查看进程和线程的树形结构关系。View CodeBASH1
2
3
4
5
[root@jay-linux ~]# pstree | grep qemu |-gnome-terminal-+-bash---qemu-system-x86---2*[{qemu-system-...
阅读全文