10.1-6 两个栈实现一个队列 /*两个栈实现一个队列设两个栈为s1,s2入队:元素入栈到s1。出队:若s2非空,弹出s2栈顶元素;否则,将s1的所有元素倒入s2(s1栈底元素会到s2栈顶),再弹出s2栈顶元素*/#include#includeusing namespace std;typedef char ElemType;stack s1;stack s2;void enqueue(ElemTyp
玩家数据重置的几种策略 玩家数据重置是游戏逻辑里永恒的话题。历经岁月的洗礼,到目前为止,我发现(注意!是发现,不是发明!)了3种实现方法。现在,项目里玩家数据重置的时间是每天0点。方法1:记录上次重置时间last_reset_time,若last_reset_time<今天0点(为昨天或者之前的时间),则重置,据,且将其设为当前时间now。方法2:记录数据过期时间expiry_time,若当前时间n...
玩家数据重置问题的思考 问题描述:有一个参与度很高的活动,玩家的数据是每天重置的。时常有玩家抱怨,他们的活动数据会无缘无故地重置。经常就是,半夜玩了一段时间,白天再上线,打开界面看到,奋斗的成果全没了!What?先简要介绍该活动的重置机制实现。(以下为Erlang)-module(activity).-export([get_data/1]).-record(act, {time = 0 :: integer()...
成功学习编程技巧的条件 成功学习编程技巧的条件Jaana Holvikivi 赫尔辛基城市大学应用科学系 摘要第一门编程课常常使学生们不想继续他们的软件学习生涯。学生们难以理解计算机编程的逻辑。特别是那些身处不同文化的学生们不能很好应用逻辑思维,或者系统地遵循指示。数学的思维能力不能如愿地转移到编程的。难以描述写程序的思考过程,程序设计中解决问题的过程像启发式一样含糊。显然,积累的专门知识并不是那么容易描述出
树木园探险之旅 今天天气晴朗,你打算去树木园探险。土地爷爷跟你开了个玩笑:“咱们玩个游戏吧!我心中想一个数,你的任务是猜出我心中想的那个数。如果你猜小了,我会告诉你猜小了。如果你猜大了,我会告诉你猜大了。但是,一旦你猜大了一次后,那么下一次你再猜的时候,我只会告诉你猜对了或者猜错了,而不会告诉你大小。你猜对了,我便会告诉你。”你在想:这老头,必定是太久没人过来看他,闷得慌。那我就大发慈悲地陪你
各种排序的运行时间对比 冒泡排序[cpp] view plain copy //time:34.220s #include #include #include #include using namespace std; class MY{ int a; //public: friend o
关于图的题 POJ 2186 强连通分量 分量图为什么别人的MemoryTime Code Length都比我少![cpp] view plain copy #include #include #include #include using n
半年内要完成的事 1. 做毕业设计时,我写了一个C语言的测试小程序,主体是一个for循环。icc的某些优化选项将它变成无限循环。为了找出发生什么事,要用gdb单步调试(一次运行一条机器指令)。2.翻译一篇讲述计算机专业入门课——编程教育的论文,Conditions for Successful Learning of Programming Skills。它道出了许多大一新生初学编程时的心声。2017年的目...
数字转换成字符串,int 转换成const char* Question:将一个int类型转换成字符串。函数原型:const char* itoa(int val)负数前面要添个负号,正数不用。写了15min……const char* itoa(int val){ char* s=(char*)malloc(35); if(!s) return NULL; int sign=val&0x80
生成n位格雷码 //使用递归生成n位格雷码/*先生成n-1位格雷码,共有2^(n-1)个。然后将这2^(n-1)个格雷码逆序复制到接下来的2^(n-1)个位中。然后前2^(n-1)个最后补0。后2^(n-1)个补1。为什么要逆序复制呢?因为要保证相邻的格雷码只有一位不同。这样在这2^n个格雷码中,第2^(n-1)和第2^(n-1)+1只有第n位不同。*/#include#include#i
const Pointers and Pointer to const Objects 常量指针和指向常量对象的指针 //英文来源:C++ Primer, 4th editionint main(){ //Part of the problem in reading const declarations arises because the 'const' can go either before or after the type. //为什么有const的代码阅读起来会比较困难呢?
22.5-5求有向图的分量图 22.5-5求有向图的分量图1.求出强连通分量(1)第1次dfs,求出(逆)拓扑序(2)第2次对以逆图的逆拓扑序dfs,得到的DFS森林,便求出强连通分量。期间要记录结点v所属的强连通分量为scc_count。2.对于原图的每条边,若两个端点不属同一强连通分量,即!stronglyreachable(v,t),便加进DAG中参考资料:C++算法--图算法(第3版
二分查找:binary_search、lower_bound和upper_bound的实现 先来复习一下最经典的大一就学的binary_search。#include#include#includeusing namespace std;class MY{ int a;//public: friend ostream& operator <<(ostream& os,const MY &my){ os<<my.a;return os; }
图的BFS #include#include#include#include#include#includeusing namespace std;const int M=100;enum COLOR{WHITE,GRAY,BLACK};struct VERTEX{ int index;//点的编号 int distance; int previous;//前驱结点编
poj 1458 最长公共子序列 迭代版:#include#include#include#includeusing namespace std;const int M=310;typedef char ELEM;ELEM X[M];ELEM Y[M];int c[M][M];int LCS_LENGTH(int XLen,int YLen){//cout<<XLen<<" "<<YLen<<endl;
用顺序统计树(红黑树扩张)解决逆序对POJ1804 #include#include#include#include//#includeusing namespace std;enum RBCOLOR{RED,BLACK};class RBNODE{public: int key; RBNODE* left; RBNODE* right; RBNODE* parent; RBCOLOR col
10.3-4 实现ALLOCATE和FREE,使双向链表在多数组表示法中在存储器保持紧凑,占前n个位置。 10.3-4实现ALLOCATE和FREE,使双向链表在多数组表示法中在存储器保持紧凑,占前n个位置。自由表Free初始化:0,1,2,...其实是一个stack。0是栈顶元素,Free是栈顶指针。下一个被分配之对象是最后被释放的。自由表只使用next数组。Free和双链表L交错。地址是数组下标,int类型。看了这篇blog,我就有灵感了。#include#def