摘要:
稳压电源是测试电路必不可少的工具。驱动小功率的电路,一般可以用电脑的USB接口,外面的两根线是正电源和地线,电压5伏,驱动电流大约500毫安。如果负载电流超过1A怎么办?一般可以买一个稳压电源或者做一个电源。但是一个30V、5A的稳压源也要至少250元,有点贵。常用的直流电压也就是3.3V、5V、12V、18V。所以,就可以用台式机的电源来改造。现在台式机的电源一般是ATX电源。ATX电源的主要特点是它没有传统的机械开关。ATX电源连接主板的是一个24脚的接口,也有20脚的。以20脚为例,引脚排布如下图。主板接口的第14脚是PS_ON,当14脚是高电平时,电压大于4.5V,电源关闭,低电平时, 阅读全文
2014年2月28日
摘要:
VGA,DVI,HDMI是目前常用的3种不同显示接口的名称。在树莓派的边缘既有HDMI的接口,也有RCA的接口,而显示器上也是既有DVI,又有VGA。上个月买连接线,没有仔细检查买了一根HDMI对VGA的接线。今天把它接到树莓派和显示器,发现显示器输入的信号不正常。再查找资料,原来HDMI是输出数字信号,VGA是输出模拟信号,怪不得显示不正常。于是,就在百度上找了一篇介绍三种接口的文章。VGA简介 VAG接口是我们最常见的,也是比较普通的接口。VGA的英文全称是Video Graphic Array,即显示绘图阵列。VGA支持在640X480的较高分辨率下同时显示16种色彩或256种灰度,同. 阅读全文
摘要:
以前在论坛、微博经常看到一张脸,五官长得像A,脸型似乎又是B,觉得很有意思。比如像这张图片。这张图片应该是网友用Photoshop完成的,他们取了郭大爷的五官,放在金元帅的脸上,在把边缘处理平滑。而上面这张图片是另外一种效果,它不仅改变了五官,连脸型轮廓也一起改变了。这种技术称为face morphing,这篇随笔就聊一聊它吧。Morphing是指把一张照片变换成另一张照片,中间的变换过程如行云流水一般自然。Cross-Disolve最方便的方法是像素值叠加,第一幅照片的像素值乘以系数k,加上第二幅照片的对应像素值乘以系数(1-k)。这个方法尽管操作方便,但是效果并不好。首先,要把两幅照片的尺 阅读全文
2014年2月27日
摘要:
原题链接题目大意:给定一个字符串,先用Morse Code编码,把编码倒序,再解码成字符串。现给定处理后的字符串,求原始信息。解法:用C++String类的函数。每次读入一个字符,就在string后面接上,并且保存字符对应morse码的长度。这里要声明一下,真正的morse码也是有句号、问号这些常用标点符号的,但不是题目里给出的那种形式。比如,句号是“.-.-.-”。参考代码:#include#includeusing namespace std;string code[30]={".-","-...","-.-.","-. 阅读全文
摘要:
原题链接题目大意:这是一道好题。在《算法导论》这本书里面,有一节是介绍如何求最大子序列的。这道题有点类似,区别是从数组变成了矩阵,求最大子矩阵。解法:完全没有算法功底的人当然不知道最大子序列这么经典的东西。所以先请教Google。我是参考了这篇文章的,tengpi.blog.163.com/blog/static/22788264200772561412895/。大意就是另开辟一个同样大小的矩阵,每个元素存放自左侧第一列到该元素的和。然后在纵向上用最大子序列的类似方法计算。参考代码:/* tengpi.blog.163.com/blog/static/227882642007725614128 阅读全文
摘要:
原题链接题目大意:模拟一个浏览器,打开一个网页、后退或者前进,输出网址。解法:用两个堆栈分别表示后退保存的网页和前进保存的网页。初始化时把当前页面压入后退堆栈的栈顶。要注意几点,一个是每次记得要清空两个堆栈,另一个,如果后退之后又打开了新的网页,前进的堆栈要清空,这和真实的浏览器的结果是一致的。参考代码:#include#include#includeusing namespace std;stack back;stack forw;int main(){ int n; cin>>n; while(n--){ string cmd,url="http://www.acm. 阅读全文
摘要:
原题链接题目大意:一群人聚众赌博。每个人先分别押注不同的金额,可以相互借钱。开奖之后,如果某个人的押注的金额正好等于任何其他三个人金额总和,那这个人就赢得其他三个人的赌注。如果同时有两个以上的赢家,押注金额最大的那个人是最终的赢家。首先输入玩家的个数,然后输入每个玩家的押注金额,经过运算输出赢家的财富(或者 no solution)。解法:参考代码:参考了下面链接的文章。首先,对所有押注金额进行从小到大排序,然后用枚举法试。因为并列的赢家取押注最多的获胜,所以从后往前试赢家的押注金额。稍作分析可知三个数当中,至少要有一个数在目标数的左边(小于),另外两个数可能在左边,也可能在右边(因为押注金额 阅读全文
摘要:
原题链接题目大意:判断一个数是不是palindrom。不限于十进制,可以在任何进制下判断。解法:还好,数字的范围不大,int类型足够搞定。方法就是从2进制开始,先把数字转换成2进制,判断是否对称,然后转换成3进制,直到16进制。这里的进制转换方法可以留意一下。参考代码:#includeusing namespace std;bool isPalindrom(int, int);int main(){ int i,n; while(cin>>n&&n!=0){ bool base[17]={false}, flag=false;; for(i=2;i<=16;i 阅读全文
摘要:
原题链接题目大意:已知三角形的三个顶点坐标,求其外接圆的周长。解法:刚看到这道题时,马上拿出草稿纸画图,想推导出重心坐标,然后求出半径,再求周长。可是这个过程太复杂了,写到一半就没有兴致了,还是求助于Google。在Wiki百科找到一个已知三条边长度,求外接三角形周长的算法,diameter = abc/2*(sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2。问题瞬间简化了,求两点距离是很方便的一件事,然后套用这个公式就可以了。参考代码:#include#include#include#define PI 3.141592653589793using namespace s 阅读全文
摘要:
原题链接题目大意:给一句话,把每个单词倒序,然后输出。解法:我是用了一个堆栈,以空格来拆分单词,把每个字母压入堆栈,然后依次输出。参考代码:/** 字符串反向,140ms,188kb* 单词反向用堆栈是比较方便的,一个个压入,遇到空格再一个个弹出* 但是不知道为什么耗时这么多,大批的人都是0ms,160kb,难道用字符串处理效率高这么多?*/#include#include#include#includeusing namespace std;int main(){ int i,j,n,cases; string str; char *p,c[80]; stack word; cin>& 阅读全文