ZJU OJ 2001

2012年8月26日 没有评论
#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
using namespace std;
 
int str_to_int(string num_str){
	int result = 0, base = 1;
	for (int i=num_str.size()-1;i>=0;--i){
		result += (num_str[i] - '0')*base;
		base *= 10;
	}
	return result;
}
 
int main(int argc, char *argv[]){
	int n;
	cin >> n;
	for (int i=0;i<n;++i){
		string sa,sb;
		cin >> sa >> sb;
		reverse(sa.begin(), sa.end());
		reverse(sb.begin(), sb.end());
		int tmp = str_to_int(sa) + str_to_int(sb);
		ostringstream o;
		if (o << tmp){
			string s = o.str();
			reverse(s.begin(), s.end());
			cout << str_to_int(s) << endl;
		}
	}
	return 0;
}
分类: OJ, 算法 标签: , , , ,

ZJU OJ 2932

2012年8月26日 没有评论
#include <iostream>
#include <map>
#include <string>
using namespace std;
 
int main(){
	map<char, string> m;
	m.insert(make_pair(' ',"%20"));
	m.insert(make_pair('!',"%21"));
	m.insert(make_pair('$',"%24"));
	m.insert(make_pair('%',"%25"));
	m.insert(make_pair('(',"%28"));
	m.insert(make_pair(')',"%29"));
	m.insert(make_pair('*',"%2a"));
 
	string s;
	char line[80];
	while (cin.getline(line,80)){
		if (line[0] == '#')
			break;
		s = line;
		for (int i=0;i<s.size();i++){
			if (m.find(s[i]) == m.end()){
				cout << s[i];
			}
			else{
				cout << m[s[i]];
			}
		}
		cout << endl;
	}
	return 0;
}
分类: OJ, 算法 标签: , , , ,

ZJU OJ 1251

2012年8月25日 没有评论
#include <iostream>
#include <vector>
using namespace std;
 
int main(){
  int n, c=0;
  while (cin >> n){
	if (n == 0)
		break;
	int sum = 0;
	c++;
	vector<int> v;
	for (int i=0;i < n;++i){
		int d;
		cin >> d;
		v.push_back(d);
		sum += d;
	}
	int avg = sum / n;
	sum = 0;// now it's number of moves
	for (int i=0;i < v.size();++i){
		if (v[i] > avg)
			sum += v[i] - avg;
	}
	cout << "Set #" << c << endl;
	cout << "The minimum number of moves is " << sum << "." << endl;
	cout << endl;
  }
  return 0;
}
分类: OJ, 算法 标签: , , , ,

ZJU OJ 1115

2012年8月25日 没有评论

模九算digital root

不要用long long,字符串处理

#include <iostream>
#include <string>
using namespace std;
 
int main(){
    string s;
    while(cin >> s){
		if (s == "0")
			break;
        int n = 0;
        for(int i = 0;i != s.size();i++)
            n += s[i] - '0';
        n %= 9;
        if(n == 0) n=9;
        cout << n << endl;
    }
    return 0;
}
分类: OJ, 算法 标签: , , , , ,

ZJU OJ 2947

2012年8月23日 没有评论
#include <iostream>
#include <string>
using namespace std;
 
int main(){
	int n,p,q;
	cin >> n;
	string s,sa,sb;
	for (int i=0;i<n;++i){
		cin >> p;
		for (int i=0;i<p;++i){
			cin >> s;
			sa += s[0];
		}
		cin >> q;
		for (int i=0;i<q;++i){
			cin >> s;
			sb += s[0];
		}
		if (sa.compare(sb))
			cout << "DIFFERENT" << endl;
		else
			cout << "SAME" << endl;
		sa = "";
		sb = "";
	}
}
分类: OJ, 算法 标签:

Commands to deactivate Windows 7/8

2012年8月20日 没有评论

Under %System Drive%\Windows\System32, type:

slmgr -upk

slmgr -cpky

slmgr -rearm

Then reboot the computer and windows would become not activated.

分类: 系统工具 标签: , ,

Fixed header web design(including ie6)

2012年2月2日 没有评论

This is the best example I found. In this example, both header and content are aligned center and the same.

http://www.css-lab.com/demos/fixed/ie6-fix-head.html

分类: 前台设计 标签: , , ,

Bash 快捷键

2011年10月23日 没有评论

转载的~~推荐几个常用的bash快捷键~~

“棕色粗体”表示“我推荐的”!

Ctrl-A 相当于HOME键,用于将光标定位到本行最前面

Ctrl-E 相当于End键,即将光标移动到本行末尾

Ctrl-B 相当于左箭头键,用于将光标向左移动一格

Ctrl-F 相当于右箭头键,用于将光标向右移动一格

Ctrl-D 相当于Del键,即删除光标所在处的字符

Ctrl-K 用于删除从光标处开始到结尾处的所有字符

Ctrl-L 清屏,相当于clear命令

Ctrl-R 进入历史命令查找状态,然后你输入几个关键字符,就可以找到你使用过的命令

Ctrl-U 用于删除从光标开始到行首的所有字符。一般在密码或命令输入错误时常用

Ctrl-H 删除光标左侧的一个字符

Ctrl-W 用于删除当前光标左侧的一个单词

Ctrl-P 相当于上箭头键,即显示上一个命令

Ctrl-N 相当于下箭头键,即显示下一个命令

Ctrl-T 用于颠倒光标所在处字符和前一个字符的位置。(目前不知道有什么作用,哪位朋友知道?)

Ctrl-J 相当于回车键

Alt-. 用于提取历史命令中的最后一个单词。你先执行history命令,然后再敲击此快捷键若干下,你就懂了!

Alt-BackSpace 用于删除本行所有的内容,基本上和Ctrl-U类似。

Alt-C 用于将当前光标处的字符变成大写,同时本光标所在单词的后续字符都变成小写。

Alt-L 用于将光标所在单词及所在单词的后续字符都变成小写。

Alt-U 用于将光标所在单词的光标所在处及之后的所有字符变成大写。

ps:使用bind -P命令可以查看所有键盘绑定。

ps2:Alt快捷键较少使用,因为常常和编辑器冲突

over~

分类: 服务器管理 标签: , ,

Consistency with and without www in URL

2011年9月3日 没有评论

Today I counted a persistence problem with cookies: I have one domain like example.com. But when I set the same cookie on http://example.com and http://www.example.com, the browsers will treat it as different ones.

So after searching, these two links

http://stackoverflow.com/questions/2345137/php-cookie-problem-www-or-without-www

http://stackoverflow.com/questions/3545228/setting-the-cookie-which-works-across-http-and-https-with-www-and-without-www

help me a lot, just a dot before domain when setting cookies will solve the problem.

分类: 前台设计 标签: , ,

使用JS实现client side include

2011年8月26日 没有评论

上一篇日志从网上转载了一个开启SSI的日志,开启了SSI以后,可以让许多页面包含共有的header以及footer,这样在做修改的时候只需要修改一个地方就可以了,十分方便。但是在实际使用中,有可能会出现无法开启SSI的情况。

比如,你向别人租用了一台虚拟主机,而该虚拟主机的管理员在httpd.conf中并没有设置Includes Option,同时很悲剧的他又设置了AllowOverrides为None,这样即使你使用.htacesss也就没有办法开启SSI了,so,这个时候该肿么办,笔者之前的做法是在一台测试服务器上开启SSI,并书写包含有SSI指令的web页面,当在向生产服务器部署的时候则写了一个python脚本将SSI指令替换生成静态html。但是这样子做的一个缺点在于,测试服务器与生产服务器之间的数据就无法进行同步,每次需要大规模修改页面外观的时候,必须对测试服务器上的SSI页面进行处理以后才可以部署到生产服务器上,十分繁琐。

于是,这篇日志的主角登场了~使用Javascript实现client side include,原理很简单,就是将header和footer的内容用document.write输出,然后在每个页面中包含相应的js文件即可。