2011年4月12日
http://www.1ting.com/ 一听音乐网
安装moonlight : 官网 http://www.go-mono.com/moonlight 下载插件
这样就可以了,只装flash容易死。
posted @
2011-04-12 12:52 douhui 阅读(708) |
评论 (0) |
编辑 收藏
tar参数:
-c 创建一个压缩包(默认是tar格式)
-z 创建一个gz包
-v 显示过程
-f 设定创建的包名
-x 解压一个压缩包(默认是tar格式)
-j 创建一个bz2包
实例:
tar -czvf YaSuo.tar.gz dhFiles/* 将当前目录下dhFiles文件夹中的所有文件压缩成gz包
tar -xzvf YaSuo.tar.gz 解压
其他的如zip等命令可参考csdn blog:
http://blog.csdn.net/mecho/archive/2009/07/02/4316591.aspx
posted @
2011-04-12 09:31 douhui 阅读(3181) |
评论 (0) |
编辑 收藏
2011年4月7日
换源;
ubuntu scim输入法的安装
$sudo apt-get install scim
$sudo apt-get install scim-modules-socket
$sudo apt-get install scim-modules-table
$sudo apt-get install scim-pinyin
$sudo apt-get install scim-tables-zh
$sudo apt-get install scim-input-pad
posted @
2011-04-07 14:14 douhui 阅读(377) |
评论 (0) |
编辑 收藏
2010年8月13日
时间过得真快,不知不觉已经一周没有更新随笔了。随笔慢慢地将变成随便的一笔吧,千万不要。
最近在实习,我负责的任务主要是后台数据的挖掘,用C#结合ORACLE数据库来实现。代码是现成的,我要做的就是确保得到正确的结果和稳定的运行。经过三天的读代码,写代码,终于初步完成。但由于现在还没开始利用这些数据,所以问题肯定较多,到时候就要一一解决了。
不说这个,昨天看了大整数加法,试着去北大网站上做了一个相似的题,最后终于ACCEPT。
求n个大整数相加
1#include<stdio.h>
2#include<string.h>
3#define MAX_LEN 110
4int an1[MAX_LEN][MAX_LEN+10];
5char szLine[MAX_LEN+10];
6
7
8int main()
9{
10 int i,j,n,nLen;
11 memset(an1,0,sizeof(an1));
12 for(n=0;n<MAX_LEN;n++)
13 {
14 scanf("%s",szLine);
15 if(!strcmp(szLine,"0"))
16 break;
17 nLen=strlen(szLine);
18 j=0;
19 for(i=nLen-1;i>=0;i--)
20 an1[n][j++]=szLine[i]-'0';
21 }
22 for(i=1;i<n;i++)
23 for(j=0;j<MAX_LEN;j++)
24 {
25 an1[0][j]+=an1[i][j];
26 if(an1[0][j]>=10)
27 {
28 an1[0][j]-=10;
29 an1[0][j+1]++;
30 }
31 }
32 bool bStartOutput=false;
33 for(i=MAX_LEN;i>=0;i--)
34 {
35 if(bStartOutput)
36 printf("%d",an1[0][i]);
37 else if(an1[0][i])
38 {
39 printf("%d",an1[0][i]);
40 bStartOutput=true;
41 }
42
43 }
44 if(!bStartOutput)
45 printf("%d",0);
46 return 0;
47}
48
这题要注意的是,首先,00这样的输入是合法的,所以判断程序结束时,不能单纯的判定第一个字符为‘0’;然后就是00+00输出0,就是结果为0时的输出。
推荐一本书,程序设计导引及在线实践,我现在正在看,也是bbs上别人推荐的,很适合acm或是想研究算法的新手。
posted @
2010-08-13 19:44 douhui 阅读(255) |
评论 (0) |
编辑 收藏
2010年8月5日
今天很忙,感觉有点力不从心。
花旗杯显得有些不太把握,总感觉在两周之内很难完成,技术难点太多。
如何实现任务的周期时执行;
如何设计页面;
关键算法又如何实现;
这些都是值得考虑的。
最近在看《C++ Primer 第四版》,看完第一章才发现以前的那点C++知识就只能证明自己知道C++的存在。
今天在自己机子上实验成功了SVN在不同局域网的使用,算是一点小成绩。
开始在交大的网站上做新手题了,昨天做的第一题,找零钱问题,结果又是在bbs上发帖,又是在网上搜资料,最后还是靠同学的代码才被accept。
不多说了,上代码,分析一下。
#include<iostream.h>
int main()
{
float a[8]={100,50,20,10,5,1,0.5,0.1};
float sum;
while(cin>>sum)
{
int count=0,i;
sum=sum+0.001;
for(i=0;i<8;i++)
{
while(sum>=a[i])
{
sum-=a[i];
count++;
}
}
cout<<count<<endl;
}
return 0;
}
这个题用贪心算法,不难求解。我的疑惑主要有两点:
首先,我在网上搜到一种利用除法和模来计算找零张数的,结果提交上去是wrong answer ,很无语,本来我还感觉比减法要快。
然后就是浮点数比较时经常会出错,所以代码中有个+0.001的小技巧,值得借鉴。
/////////////////////////////////////////////////////
2010年8月7日
根据bbs上题目原作者的提醒,意识到上面提到的解法出现wrong answer的原因在于浮点数的计算误差。修改后代码如下:
1 #include<iostream>
2 using namespace std;
3
4 int a[8]={1000,500,200,100,50,10,5,1};
5
6 int main()
7 {
8 double sum;
9 int i,count,temp;
10 while(cin>>sum)
11 {
12 sum*=10;
13 temp=(int)(sum+0.1);
14 count=0;
15 for(i=0;i<8;i++)
16 {
17 count+=temp/a[i];
18 temp%=a[i];
19 }
20 cout<<count<<endl;
21 }
22
23 return 0;
24 }
第13行中double型的变量sum转为int型的temp之前,要加上0.1,这样就可以被accpet。
posted @
2010-08-05 23:01 douhui 阅读(266) |
评论 (0) |
编辑 收藏
2010年8月2日
复试没过,回来还被实习组长批了一顿,郁闷。
首先,关于复试,失败了。
关于实习,我确实不够自觉,没有和组长进行沟通,所以她对我的不满可以理解。
终于回来了,呵呵。
Nothing can stop me.
posted @
2010-08-02 15:34 douhui 阅读(400) |
评论 (0) |
编辑 收藏
2010年7月20日
唉 昨天晚上看了两部电影,日志没更新。。。
昨天还在分治与递归,偶然间发现了一个求两个数最大公约数的算法。
欧几里德:
1int GongYueShu(int m,int n)
2{
3
4return ((n==0) ? m:GongYueShu(n,m%n));
5//辗转相除,欧几里得
6}
只要一行,呵呵。
还有就是适合大数的二分法,stein算法:
1int gcd(int a,int b) //对于大数,stein算法
2{
3 if(a<b){//arrange so that a>b
4 int temp = a;
5 a = b;
6 b=temp;
7 }
8 if(b==0)//the base case
9 return a;
10 if(a%2==0 && b%2 ==0)//a and b are even
11 return 2*gcd(a/2,b/2);
12 if ( a%2 == 0)// only a is even
13 return gcd(a/2,b);
14 if ( b%2==0 )// only b is even
15 return gcd(a,b/2);
16 return gcd((a+b)/2,(a-b)/2);// a and b are odd
17}
也很巧妙,呵呵。
对了,对于昨天的三路划分快速排序,终于看懂了。
1void QuickSort(int *a, int left,int right)
2{
3 int i,j,k,p,q;
4 int pivot = a[right];
5 if(right<=left)return;
6 i=left-1;j=right;p=left-1;q=right;
7 while(1){
8 while(a[++i]<pivot)
9 if(i==j)break;
10 while(pivot<a[--j])
11 if(j==left)break;
12 if(i>=j)break;
13 myswap(a,i,j);
14 if(a[i]==pivot)
15 {
16 p++;myswap(a,p,i);
17 }
18 if(a[j]==pivot)
19 {
20 q--;myswap(a,q,j);
21 }
22 }
23 if(pivot>a[right])
24 {
25 myswap(a,i,right);
26 k=right-1;
27 }
28 else k=right;
29 //j--;i++; //加上就出错
30 while(k>=q&&i<=right)
31 {
32
33 myswap(a,k,i);k--;i++;
34 } //把左边等于pivot的元素移到中间
35 for(k=left;k<=p;k++,j--) //把右边等于pivot的元素移到中间
36 myswap(a,k,j);
37 QuickSort(a,left,j);
38 QuickSort(a,i,right);
39}
posted @
2010-07-20 12:57 douhui 阅读(206) |
评论 (0) |
编辑 收藏