LeeBlog

导航

2011年1月28日 #

按位异或

摘要: 以前一直忽视了异或这些小运算,今天做到HDU的2095时才发现异或的功能,这里只讲它的一小部分; 异或时一种逻辑运算,它的真值表如下 1 ^ 1 == 0; 1 ^ 0 == 1; 0 ^ 1 == 1; 0 ^ 0 == 0; 异或实质上是将参与运算的两个数据,按对应的二进制逐位进行逻辑异或运算,只有当对应位的二进制数互斥时对应为的结果才为真; 下面介绍异或运算的几种性质: 1 交换律:a ^ b ^ c = a ^ c ^ b;(很多人忽视的性质,杭电2095就是利用这个性质做的,再小菜鸟的博客里面有 ); 2 结合律:a ^ b = b ^ a;(这个相信大家都知道 ) 按位异或同样可. 阅读全文

posted @ 2011-01-28 21:28 LeeBlog 阅读(647) 评论(0) 推荐(0) 编辑

HDU 2095 find your present (2)

摘要: 原以为这是一纯水题,就果断开了1000000了数组给它(1300多K),没想Memory果断超了,后来又用链表做(写了2000多K),再次无情的被Memory刷了,无耐百度一下,竟然发现别人的代码才300多B(表示我的有2000多B),发现自己的方法OUT了。  这段代码中最重要的是异或思想;相同的数异或后为0,0再和那个唯一的数异或(异或满足交换律,所以“礼物”,在前面出现和在最后出现没有区别,结果不变),结果即为那个不相同的数.杭电的测试数据太弱了,如果n为7, 3个1,3个2,一个3,结果就错了。(异或在本空间有介绍,如有不明,可以see一see 代码 阅读全文

posted @ 2011-01-28 20:51 LeeBlog 阅读(272) 评论(0) 推荐(0) 编辑

2011年1月27日 #

HDU 2031 进制转换

摘要: 这个题是数据结构教材上的一个经典例题,有两种方法,即数组或链表,这里我采用链表做的代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include <stdio.h>#include <stdlib.h>typedef char Elemtype;typedef struct Lnode{ Elemtype e; struct Lnode *next;}Ln,*Link;void change ( Link L,i 阅读全文

posted @ 2011-01-27 15:52 LeeBlog 阅读(524) 评论(0) 推荐(0) 编辑

HDU 2029 Palindromes _easy version

摘要: 此题与2163类似只要用一个比较即可,将这个字符串从两边比起(对称比较),只要有一个不相等,就将这个字符串标记为NO,然后在输出时判断一下即可,确实够水代码 阅读全文

posted @ 2011-01-27 15:48 LeeBlog 阅读(293) 评论(0) 推荐(0) 编辑

memset

摘要: 今天在做2051时一直不能A,后来发现竟然是上一次的数据下一次还会输出来,尝试了多种方法均不行(把字符串在while 循环里面也过不了),最终想起了小白曾经教过memset;于是发现了memset的好处,决定以后在定义字符串时先memset 一下,下面来详细介绍一下memset的功能(百度文库里面讲得很详细,不过觉得这部分信息跟适合ME) 函数原型void *memset(void *s,int ch,unsigned len),在"string.h"的头文件中;参数表大小是以字节为单位,不过不同的参数类型不同的的机器,参数所占字节可能不同所以一般用sizeof来确定长度; 阅读全文

posted @ 2011-01-27 15:42 LeeBlog 阅读(314) 评论(0) 推荐(0) 编辑

HDU 2032 杨辉三角

摘要: 此题为一经典题目 阅读全文

posted @ 2011-01-27 15:40 LeeBlog 阅读(294) 评论(0) 推荐(0) 编辑

HDU 2042 不容易系列之二

摘要: 代码果断打表 阅读全文

posted @ 2011-01-27 15:34 LeeBlog 阅读(186) 评论(0) 推荐(0) 编辑

HDU 2051 Bitset

摘要: 表示从这题中学到了一个地方,定义字符串的时候最好将其初始化为'\0',并表示以后多用memset代码 阅读全文

posted @ 2011-01-27 14:56 LeeBlog 阅读(259) 评论(0) 推荐(0) 编辑

2011年1月26日 #

HDU 2027 统计元音

摘要: 继续以水题,不过注意输出格式,还有输入时不要用fflush(stdin ),用%*c代码 阅读全文

posted @ 2011-01-26 13:35 LeeBlog 阅读(222) 评论(0) 推荐(0) 编辑

isalpha及isalnum

摘要: 几天在写C语言标识符时看到别人的代码中有isalpha及isalnum,相比我的代码要省了很多东西,百度一下才知道,原来还有现成的函数可以用  这两个函数都包含在#include ctype.h中,其中 int isalpha(int ch) 用来判断ch是否为English字母,当其为英文字母a-z或A-Z时,在标准C中相当于使用isupper(ch)(判断ch是否为大写字母)||islower(ch)(判断ch是否为小写字母)返回非零值,否则返回零;  int isalnum (int c)与int isalpha类似,但它的判断范围更广,它还能判断0-9的数字,即当其为英文字母a-z 阅读全文

posted @ 2011-01-26 13:08 LeeBlog 阅读(380) 评论(0) 推荐(0) 编辑