單詞化日記 留言簿 主頁

关于C语言,推荐这么几本不错的书

推荐时间到了,从Noip结束后一直在学习C语言,来推荐下了..

有点基础的呢,就去看那本<The C Program Language>(C程序设计语言),听了Douban上的某些评论,买了那本英文原版的,可以接受,后来又去上海图书馆把翻译版的借了回来,要是只论理解难易度,果然英文的好.

就是有一点,这是关于K&R C的教材,和AnsiC还是有些细微不同的.

然后就是<C陷阱与缺陷>和<C专家编程>.这里面把一些容易忽略的细节整理了一下,还是满值得一读的.其中所写的K&RC和ANSIC的不同点刚好可以补充前一本书.

再然后呢,就多切题吧.....

感觉与Pascal相比,其中指针的作用更加明显了,和系统底层的联系从这里也可以体现出来.

Bless.

Tags: , ,
65

最近做的无聊事-FrozenTurtle篇

大多数是水.....部分感觉比较有特点的加*..不定期更新

线性动态规划
VOJ1355 车队过桥问题 f[i]表示前i部通过最短时间,预处理t[i,j]表示i到j的最慢速度,w[i]表示前i部车的重量和,f[i]:=min(f[k]+l/t[k+1,i])
VOJ1292 火车票 f[i]:=min(f[k]+cost(k,i))
*VOJ1474 雷曼兔(csapc) 排序后类似Lis
VOJ1571 笨笨的导弹攻击 最长上升下降混合子序列...orz
*VOJ1696 爱国者的周期 同上 判断周期用 (f[j]-1)mod(t*2)<t
VOJ1421 更换轮胎 f[i,j]表示第i圈用j种车胎所需最短时间,另开l[i]表示第i圈的最短时间用的车胎号码
*Open09ski 滑雪 f[i,j] 表示于i时间j能力所能得到最多滑雪数 f[i,j]:=max(f[i-1,j],f[i-d[g[i]],j]+1(j>=c[k]),f[i-l[k],0](0为i-l[k]时最大达到))g[i] 表示能力为i时 所能滑的最优轨道号码
VOJ1331 看球的巴士 f[i]:=min(f[j]+1)(abs(s[i]-s[j])<=d)or(abs(s[i]-s[j])=i-j) f[0]=0 f[1]=1
Cai0715-1 一起去打cs f[i,j]:=min(f[i-1,j]+b[i],f[i-1,j-a[i]]) 状态 完成i-1件作业耗甲j时间时,所需乙最短时间 决策 第i件交给谁做
VOJ1118 统计字符串 预处理g[i,j] i-j间字符串个数
*VOJ1037 搭建双塔 f[i-1,j] 不放   f[i-1,j+h[i]]  放到矮塔仍为矮塔   f[i-1,h[i]-j]+j  放到矮塔变成高塔   f[i-1,j-h[i]]+h[i]  放到高塔

背包问题
VOJ1625 精卫填海(HOI) 01背包
VOJ1418 公司聚会 倒推01背包 f[p[i],j]:=max(f[p[i],j],f[p[i],j-k]+f[i,k]),最后判断职人1号是否更优.
VOJ1544 GF 裸两维背包
VOJ1392 拼拼图的小杉 伪01背包 f[i,j]表示前i件物品选j件,所需最小集合数,g[i,j]表示最后一个集合已填充容量
VOJ1198 最佳课题选择 f[i,j] 前i种论文完成j件所需最短时间 f[i,j]:=min(f[i-1,k]+a[i]*(j-k)^b[i]) 0<=k<=j (分组背包也可做)
*VOJ1313 金明的预算方案 有依赖背包->分组背包

树形动态规划
*VOJ1180 选课 基础树形.f[k,t]:=max(f[r[k],t],max(f[l[k],t-1-i]+f[r[k],i]+s[k])) (i=1..t-1)

区间动态规划
*VOJ1242 邮局问题 f[i,j] 1到i的村庄,修j个邮局的最小距离,预处理d[i,j],表示于i,j中点修建的距离和,f[i,j]:=min(f[k,j-1]+d[k+1,i])
*VOJ1347 乘积最大 f[i,j]:=max(f[k,j-1]*s[k+1,i])
VOJ1218 数字游戏 预处理s数组后同乘积最大 f[i,j]:=max(f[k,j-1]*s[k+1,i])

多进程动态规划
VOJ1493 传纸条 f[i,j,k]第i步,A的x位置于j,B的x位置为k的最大值
*VOJ1143 三取方格数 同上,四维,第一维可用循环数组消去.
*VOJ1014 旅行商简化 f[i,j]:=min(f[j,j-1]+s[j-1,i],f[i,j-1]+s[j-1,j]) (i>=j) f[i,j]=f[j,i] 避免跳过路程,必须从近的一点j进行扩展
VOJ1680 距离 字符串距离  f[i,j]:=min(f[i-1,j-1]+d[i,j],f[i-1,j]+k,f[i,j-1]+k)
VOJ1111 水果店 总长度-最长公共子序列

状态压缩
*VOJ1424 炮兵阵地 把每一行状态用二进制存储于一个longint中,预处理每一行可能摆放,存于p[i,j],由于一行只与前两行有关,
f[i,j,k]:=max(f[i-1,k,t]+addnum(p[i,j])) f[i,j,k] 表示到第i行,第i行摆放为p[i,j],第i-1行为p[i-1,k] 时的最多炮兵数
Matrix67-0817 多米诺 类似上一题,状态压缩每一行状态,70分

递推
VOJ1232 核电站问题 连续N个东西,不能选连续m个的选法总数
VOJ1408 古韵之乞巧 f[i,k+1]:=f[i,k+1]+f[j,k] 以s[i]结尾的长为k+1的方案数

记忆化搜索
VOJ1547 逆转,然后再见 诡异的记忆化搜索..
VOJ1011 滑雪 同上

Tags: , , ,
65

一个Twitter签名图片生成脚本

一直都没有找到合适的Twitter签名图片,国外的遇到中文都成了口口,国内以前有过一个,但后来作者好像关闭了服务.

你需要的是一个国外的(别问我为什么)php服务器,支持gd库和curl就可以,完成效果如下:

用了一个Twitter的php库,很方便,背景图片是用的fanfou的那个作为样本的,头像图片从Twitter获取,下载代码后只需要更改自己的用户名,并上传一个ttf字体文件即可.

把他做成静态的,这样就可以节约许多服务器资源,用cron新建一个任务,半小时curl这个页面一次.

暂且就是这样了,贴代码,第一次用Syntax Highlighter这个插件,顺便试一下js载入太多,放弃..

打包下载地址:http://wandsea.com/down/twitter-sig.tar.gz

Tags: ,
65

Ubuntu下给照片批量添加EXIF信息水印

给照片加水印的工具有很多,以前一直用的Windows Live Writer就能做出很漂亮的水印效果,到了Ubuntu下,还没看到什么类似的工具>_<(是我懒得找了...)

耗时1H,找了好多关于Imagemagick的文章,发现这东西真有用..对于命令行下的图象处理十分方便,再加上exif工具,用来读取照片exif标签,这东西源里有.

脚本在这里下载: http://wandsea.com/down/exif.sh

下载回来,改下自己的名字,换一下字体地址,进入照片目录

for i in *.JPG; do ./exif.sh $i ;done

会自动建立备份目录,在原图上进行水印操作.

制作完水印的效果:

水印效果-1

水印效果-2

Canon EOS系列......还有一年.....- -....现在这相机亮点还好,一到晚上开高iso...惨不忍睹呃....

今天打开页面..更囧..

screenshot_003

这Adsence匹配......OrzOrz

Tags: , , , , ,
65

Firefox3.5PGO手动编译笔记

无聊无趣之作....>_<

耗时n*2小时(每编译一次2小时,编译n次)...主要是gcc的 -O3,选用就会随机出现奇异错误,我机器烂..

编译环境ubuntu9.04+gcc-4.4套装.

首先安装gcc-4.4,有deb包,在ubuntu源里搜索的到(我说是9.10的源)..传闻说会有速度提升

要是没事情做的话,也可以下载源码包,先用4.3编译4.4,然后再用4.4编译自己一遍...

PGO,就是Profile-Guided Optimization,根据配置文件编译,详解--http://forums.msdn.microsoft.com/en-US/vcgeneral/thread/f27a0849-0508-41b0-809c-fa410c031e88/

先下载firefox的最新源码,ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest-3.5/source/firefox-3.5-source.tar.bz2 ,解压到某个文件夹,磁盘空间要充足,大概1G不到点.

开始写编译配置.我是参考 http://oranqe.wordpress.com/2009/03/10/the-way-to-build-pgo-fx/ 这篇文章的,(怎么看文章自己看着办)

创建.mozconfig (你就下载这文件好了),开始修改,我的是这样的

. $topsrcdir/browser/config/mozconfig
CC=gcc-4.4
CXX=g++-4.4
CPP=cpp-4.4

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
ac_add_options --disable-tests --disable-crashreporter --disable-debug --disable-tests --disable-javaxpcom --disable-updater
ac_add_options --enable-application=browser --enable-jemalloc
ac_add_options --enable-optimize="-O2 -fforce-addr -march=native -mtune=native -pipe -fomit-frame-pointer"
ac_add_options --enable-profile-guided-optimization
mk_add_options PROFILE_GEN_SCRIPT=”sh /home/wandsea/run-firefox.sh”(这里改下目录)
#make -f client.mk profiledbuild

再创建一个文件run-firefox.sh

#!/bin/sh make -f client.mk profiledbuild
export NO_EM_RESTART=1
mkdir $OBJDIR/_profileprofile
$OBJDIR/dist/bin/firefox -no-remote -profile $OBJDIR/_profileprofile

检查下,没什么问题就进终端 make -f client.mk profiledbuild

想干什么就干什么去吧...需要编译两次,第一次结束后会自动打开firefox,(所以编译的时候旧版别开..否则出错),进行配置文件的生成,随便看点经常上的网站,js测试测试,大的小的都看看,然后关闭,继续编译..

全部搞定后,cd obj-i686-pc-linux-gnu;make package

把生成的文件复制出来就好了,现在是英文版,所以再进行中文化工作

下载个官方编译好的中文版,解压好里面有一个chrome文件夹,打开,zh-CN的那两个复制到自己编译的版本的相同位置,删掉里面en-US的两个,打开应该就是中文版的了.(图标也是相同办法)

locale还没改,插件就还是英文的,about:config,搜索general.useragent.locale,改成zh-CN,顺便把浏览器

general.useragent.extra.firefox,改成Firefox/3.5,应该就好了.

找个评测网站,试试自己的成果,呃..我的比原版3.5的js分数提升了17%....然后又用那个开发中的chromium试了下..50%...然后我就无语了.....

纯属无趣+无聊的东西..退散吧....

PS:谁知道怎样让wordpress不换双引号,不把--换成-.....无语了

(Thanks leafduo 问题解决了,Quotmarks Replacer很好用.)

PS2:对于IE无视了,模板边栏下沉,链接都不会自己换行..还是IE8..

Tags: , , ,
65

WandShare链接分享V0.1

最近在学bash,就老写这种小程序--
其实没什么技术含量,API都是提供好的,本还以为是要用服务器/客户端结构的,后来居然发现Firefox可以直接执行本地程序...

WandShare链接分享V0.1使用说明
本脚本用来把当前打开的页面分享到Twitter&饭否上
Linux+Firefox,很简陋,本是自己用的,就懒得加美化了,没有任何提示,全自动完成...
理论上bash改成批处理,Windows也可以使用,但没测试环境,呵呵,别的浏览器大概就不可以了..
首先下载WandShareV0.1.tar.gz
解压缩后放在某个文件夹里,打开Share_Sender.sh,更改用户名密码
然后打开另一个文件,更改脚本位置,然后把内容复制到浏览器的书签地址里
打开about:config,signed.applets.codebase_principal_support的属性值设置为true
完成

下载地址:http://wandsea.com/down/WandShareV0.1.tar.gz
就这样了吧~Twitter居然不让个人Blog申请API ID...BS下...大家其实也可以自己申请个Fanfou的ID,很快就能搞定的

Tags: , , , , ,
65

  • Google Adsense

  • 訂閱我

  • G-Readers

  • My Links