使用cd快速在目录间移动

本文出自<svtter.com> 难得看见一篇好文= = 操作方法 在此学习并且记录。 标记一个书签: mark [书签] 进入一个书签: g [书签] 输出全部标签: gs 实现原理 sudo vim /etc/profile 也可以使用:w !sudo tee %这种方式来保存

Read More

关于今天的健身

今天下午去健身。 牛奶事件 先去了新世界陪睡在我下铺的兄弟买杯子。也是见识了伟大的坑爹商场——放了一个大大的10元标签,下面写了一个小小的某品牌牛奶。然后放在下面两种牛奶。 在下眼力尚可,拿了没有标签的15元一杯。结账的时候才发现,也是醉了。随后付钱的时候发现了这个机智的想法——我个人认为这样做生意不会长久,不知道诸位如何作想。 健身问题 不知罗伯特何处去也,只得我两个孤独的健身。但是今天练的着实不够理想——一方面,没有练肱二头;另一方面,感觉背部的重量太小了,不太合适。于是,决定下一次加大重量,顺便为我的健友鼓劲。 感谢王大哥的指导!

Read More

筛素数更正

本文出自<svtter.com> 写在之前 maker关于线性筛素数的论文。 做到欧拉线性筛法再做补充。(当时还写了个这?) 关于线性筛素数 之前一直没有正视线性筛素数的问题。今天特意来写一个伪证明。如果当前的i不是素数,那么必然被之前的某个素数筛掉了。i × prime[j]。 一个合数必然可以写成几个素数的乘积,再或者就是p×i这种形式。如果能被i×p1筛掉之后则不需要i×p2继续筛了,i×p2可以写成p1×(i×p2) 例如12可以被6×2筛掉,之前4×3这种筛除就可以去掉。 这种方法会不会存在没有筛掉的合数? 不可能:i会一直到n,也就是整个范围都会包含在内。 代码: 之前的错误在于筛素数的时候没有筛去2的倍数,所以出现后面的值错误。

Read More

关于最近

谈谈算法 今天上午一个团体赛,晚上一个bestcoder,水了自己一脸呵。 究其原因,可能有中午没有休息,晚上来的太晚,没有好好吃饭等等。 探究原因 仔细想想,最近这段时间对于学习,生活,等等一系列的事情是否有够认真努力呢? 怕是一般情况吧= =。晚上做题的时候猛然发现之前有错的线性筛素数模版有问题,也是没有及时修正。此外,欧拉函数等等也是忘记的差不多了,太水。 没有做好,做完的事情: 操作系统的书写还是差着不少,另外,并行计算的文档还没有成型。。总之,感觉就像是什么事情都没有做好一样。心塞。 那么这段时间我到底干什么了呢?这个问题也是值得深究的。 用了很多的时间在Python的学习以及Linux的学习上了。 不能说是浪费时间,但是对于ACM,对于我现在要做的事情,的确是有所偏差。(应该算是另一种娱乐吧) 此外,还学习了线性代数。但是学习的效果如何呢?是不是太慢了,或者太过于悠哉游哉了呢? 似乎就是有点吧,可能太过于悠哉游哉了。尽管没有完成任务,但是还是觉得自己做了点东西。星期四和星期五,也是没有好好的把时间铺在算法上面,看这个看那个——用封老师的话来说,就是没出息。 哈哈= = 生活中缺少一股紧张的气息,所以可能做的不够。这是目前给自己找的原因。我想我需要一个时间好好的思考一下,处理一下自己究竟应该怎么处理自己的学习问题。 如果每次都是有些遗留,或者忘记了自己本来的目的,那么真是浪费时间了。

Read More

Linux-同步互斥

本文出自<svtter.com> 使用pthread实现经典问题:生产者消费者 关于semaphore的相关信息就不再贴出来了。 编译的时候记得-pthread选项。 运行结果 操作系统经典问题:哲学家就餐问题 mutex是c++11的新功能。记得添加C++11支持。(在运行结果中包含编译选项。) 运行结果 操作系统经典问题:读者写者问题 读者优先 使用了c++11的新特性thread 运行结果 由于可以同时阅读,所以读者reading输出可能出现少许问题。 写者优先 使rsem中只有一个读者在等待,保证了如果有写者,写者优先写 运行结果 基本上结果就是写者写完,才会有读者阅读

Read More

Linux-管道

本文出自<svtter.com> 头文件: #include<unistd.h> 使用方法: int pipe(int chan[2]); 说明: pipe会建立管道,并将文件描述词通过chan返回。一般chan[0]为管道的读取端,chan[1]是写入端。 返回值: 成功返回0,失败返回-1,错误信息保存在errno中 错误信息: EMFILE 进程已用完文件描述词最大量。 ENFILE 系统已无文件描述词可用。 EFAULT 参数filedes数组地址不合法 运行结果:

Read More

Linux系统函数简介

本文出自<svtter.com> 系统调用函数说明、参数值及定义 本文摘自老师的资料= = 使用这些函数的时候记得将头文件unistd.h包含到程序中 1、fork() 创建一个新进程 int fork() 其中返回int取值意义如下: 0:创建子进程,从子进程返回的id值大于0:从父进程返回的子进程id值 -1:创建失败 2、lockf(files,function,size): 用作锁定文件的某些段或者整个文件,本函数适用的头文件为: #include<unistd.h> 参数定义: int lockf(files,function,size) int files,function; long size; 其中:files是文件描述符:function是锁定和解锁;1表示锁定,0表示解锁。size是锁定和解锁的字节数,若用0,表示从文件的当前位置到文件尾。 3、msgget(key,flag): 获得一个消息的描述符,该描述符指定一个消息队列以便用于其他系统调用。 该函数使用偷文件如下: #include<sy/types.h> #include<sy/ipc.h> #include<sy/msg.h> 参数定义 int msgget(key,flag) key_tkey;

Read More

ACM – hdu5104-water

这个题目的总结就是不作不会死- -好端端的暴力我非要用个bfs。

看见自己wrong了还以为是哈希的问题- =

题意

  • p1+p2+p3 = n,$p1 <= p2 <= p3$
  • 输出符合条件的组数

输入输出

  • 给100组n,输出组数

分析

  • 只有3个数,暴力解就可以,注意循环终止条件。

Read More