
C/C++
文章平均质量分 76
HTUN
Computer Science
展开
-
Permutation 算法
#include#includetypedef struct{int *arr;int length;}SqList;void Perm(SqList &L,int m){int i,j,temp;if(m==L.length){for(i=0;i<L.length;i++)printf("%d ",L.arr[i]);printf("原创 2012-12-23 22:23:43 · 1139 阅读 · 0 评论 -
多进程情况下文件句柄共享的问题
1 Linux中的父子进程fork() 和 clone()系统调用可用来建立新的进程。这两个系统调用结束时,内核在系统的物理内存中为新的进程分配新的 task_struct 结构,同时为新进程要使用的堆栈分配物理页。Linux 还会为新的进程分配新的进程标识符。然后,新 task_struct 结构的地址保存在链表中,而旧进程的 task_struct 结构内容被复制到新进程的 task_struc原创 2015-04-19 00:58:42 · 5538 阅读 · 0 评论 -
从Recycled Numbers谈字符串和数字的操作便利性
首先是CodeJam上的一道题目:ProblemDo you ever become frustrated with television because you keep seeing the same things, recycled over and over again? Well I personally don't care about television, but原创 2014-03-30 12:26:43 · 1836 阅读 · 0 评论 -
fgetc, fgetchar 的区别
一句话总结:fgetchar = fgetc(stdin)以下转载自:http://support.tenasys.com/INtimeHelp_5/fgetc.html详细说明:Fgetc reads a single character from the current position of the specified stream and increment原创 2014-03-18 22:48:31 · 9562 阅读 · 0 评论 -
C语言输入中对scanf和gets的讨论
1. scanf的函数原型是 scanf(format,parmeter1,...) ,而gets的函数原型是 gets(char *)。 2. scanf和gets最容易被谈论的差别就是scanf不能接受带空格的字符串,而gets可以。事实上,准确的说,如果一个字符串要被赋值为一个变量,但其中含有空格的话,scanf是不能接受到的,因为scanf遇到空格、换行以及制表符时都会结束针对当原创 2014-03-02 22:32:55 · 1649 阅读 · 0 评论 -
单向链表的实现及思考
最近重新开始写C,有一些问题也随之而来。重新写了个单项链表,通过这个链表复习了一些自己差不多快忘了的原理。 关于链表的实现: 1. 用C写了Node的结构体,而链表其实就是指向头结点的指针而非指整张表。所以链表和结点指针是同一回事,这一点和平时的认知可能相驳。 2. 谁来管理链表(即指向头结点的指针)?我们写了3个文件,linklist.h linklist.原创 2013-11-30 19:01:56 · 1136 阅读 · 0 评论 -
XOJ 1004.Sort Ver.2 From XMU
DescriptionGive a set of numbers, output them after sort. You may use any algorithm you like to solve it.InputEach input file contains only one case.Each test case begins wit原创 2012-12-23 22:20:12 · 1229 阅读 · 0 评论 -
POJ 1218 解题报告
水题一个,模拟实现就好。源代码:#include #includeusing namespace std; class Prison{private: vector locked; vector unlocked; int N;public: void Init() { cin>>N; l原创 2012-12-23 22:29:45 · 578 阅读 · 0 评论 -
POJ 1218 解题报告
还是水题,模拟实现。唯一需要注意的地方就是输出的格式。如果一个单词一个单词的输入,并算出其编码再返回,会遇上PRESENTATION ERROR,因为你永远不知道下一个是不是END,所以你无法决定在该单词的译码输出之后该不该换行。所以用getline函数实现就好了,这样,你可以知道一行输入完毕,输出的时候也就输出一行罢了。 getlineistream& get原创 2012-12-23 22:32:37 · 594 阅读 · 0 评论 -
POJ 1146 解题报告
解题思路: 和C++中STL的next_permutation类似,寻找序列的下一个排列。需注意的一点是,该序列中存在字母相同的数位,所以如果自己编写next_permutation的功能,在多个相同字母均可选择的情况下,需考虑优先选择哪一个。next_permutation具体实现思路: 对于序列p1,p2,```,pn,其下一个全排列序列的方法原创 2012-12-23 22:27:19 · 1150 阅读 · 0 评论 -
POJ 1316 解题报告
水题一个,纯粹打表。不过值得注意的是用纯C++会TLE,主要是因为cin和cout的效率太低。所以这道题还是用C的printf比较好。源代码:#include int main(){ int temp,flag=1; for (int i=1;i<9994;++i) { flag=1; for (int原创 2012-12-23 22:34:10 · 644 阅读 · 0 评论 -
I/O复用
1. I/O复用的原因及场景之所以会进行I/O复用是因为不想让代码阻塞在某一个I/O相关的系统调用中。因此,只要是涉及到操作多个文件描述府的程序,都适合使用I/O复用。2. 基本的I/O处理模型2.1 阻塞式I/O“一直等待,直至有数据返回” 最常见的I/O方式,在进行IO系统调用时,进程阻塞,直至系统调用完成返回,进程继续进行。例如,程序中调用recv函数,然后该进程阻塞在这里,直到recv函数原创 2015-04-19 21:17:21 · 697 阅读 · 0 评论