欢迎辞

欢迎来到“笃志以砺,决起而飞”!
如果您是第一次来到本站,建议访问本站导读以便更快地了解本站。
如果您喜欢本站,欢迎订阅

 

2012 年五月
« 四  
 123456
78910111213
14151617181920
21222324252627
28293031 

POJ 2109 Power of Cryptography

虽然这道题使用 double 类型就可以过,但我由于担心精度问题还是写了高精度。
实际上,由于一个数被乘方之后很小的差别对应的结果差别非常大,所以 double 应该确实可以。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
 
using namespace std;
 
const int bitlen = sizeof(long);
const int bitmax = 10000;
 
#define maxof(a,b) (a > b ? a : b)
 
int a;
string b;
 
/* Class Number
 * Represents a big number.
 */
template<int T>
class number {
	public:
		/* init a new number by a input of integer. */
		number(const long i) {
			init();
			if (i < bitmax) {
				bit[0] = 1;
				bit[T] = i;
				return;
			}
			long l = 0, j = i, m;
			while ((m = j / bitmax, j) != 0) {
				bit[T - l++] = j - m * bitmax;
				j = m;
			}
			bit[0] = l;
		}
		/* the real size of bit[] */
		long size() const {
			return bit[0];
		}
		void show() const {
			if (bit[0] == 0) {
				cout << "0";
				return;
			}
			for (int i = 0; i < bit[0]; ++i) {
				cout << bit[T - bit[0] + i + 1];
			}
			cout << "(" << bit[0] << ")" << endl;
		}
		string showToString() const {
			if (bit[0] == 0) {
				return string("0");
			}
			string s;
			char ct[5];
			for (int i = 0; i < bit[0]; ++i) {
				sprintf(ct, "%d", bit[T - bit[0] + i + 1]);
				int p = 4 - strlen(ct);
				if (p > 0 && i != 0)
					for (int f = 0; f < p; ++f)
						s.append ("0");
				s.append(ct);
			}
			return s;
		}
		number<T> operator+(const number<T> &num2) const {
			if (num2.size() == 0) {
				return *this;
			}
			int len = maxof(this->size(), num2.size()), jw = 0;
			number<T> sum(0);
			for (int a = 0; a < len; ++a) {
				sum.bit[T - a] = this->bit[T - a] + num2.bit[T - a] + jw;
				jw = 0;
				if (sum.bit[T - a] >= bitmax) {
					sum.bit[T - a] %= bitmax;
					jw = 1;
				}
			}
			if (jw == 1)
				len++;
			sum.bit[0] = len;
			return sum;
		}
		number<T> operator<<(const int i) const {
			if (i != 1)
				throw exception();
			number<T> tmp(*this);
			for (int i = tmp.size (); i > 0; --i)
				tmp.bit[T - i] = tmp.bit[T - i + 1];
			tmp.bit[T] = 0;
			tmp.bit[0]++;
			return tmp;
		}
		number<T> operator*(const number<T> &num2) const {
			if (this->size() == 0 || num2.size() == 0) {
				return number<T>(0); // 0
			}
			if (this->size() == 1 && num2.size() == 1) {
				return number<T>(this->bit[T] * num2.bit[T]);
			}
			number<T> sum(0);
			for (int a = 0; a < this->size(); ++a) {
				for (int b = 0; b < num2.size(); ++b) {
					int cj = this->bit[T - a] * num2.bit[T - b];
					number<T> tmp(cj);
					for (int c = 0; c < a + b; ++c) {
						tmp = tmp << 1;
					}
					sum = sum + tmp;
				}
			}
			return sum;
		}
		long bit[T + 1];
	private:
		void init()	{
			memset(bit, 0, sizeof(bit));
		}
};
 
typedef number<100> bignum;
 
bignum power(int i, int p) {
	bignum tmp(i), tmp2(i);
	for (int i = 0; i < p - 1; ++i)
		tmp = tmp * tmp2;
	return tmp;
}
 
void check(int l, int r) {
	if (l == r)	{
		cout << l << endl;
		return;
	}
	int m = (l + r) / 2;
	bignum tmp = power(m, a);
	string ss = tmp.showToString();
	if (b == ss) {
		cout << m << endl;
		return;
	}
	else {
		if (ss.size() > b.size() || (ss.size() == b.size() && ss > b)) {
			check (l, m - 1);
		}
		else {
			check (m + 1, r);
		}
	}
}
 
int main () {
	while (cin >> a >> b) {
		check(1, 1000000000);
	}
	return 0;
}

精英的「灰飛煙滅」與大衆的「浴火重生」——從清華學堂失火看精英與大衆的分裂

註:本文轉載於自網絡,作者係北大2008級本科生江東晛。從 BYVoid 二次轉載。

本文邏輯結構

清华学堂火灾——网民的非理性反应
第一部分:同情心的缺失——反映出精英与大众的严重对立、人心的扭曲
第二部分:从精英的角度看大众——平民意识确实在无理取闹
第三部分:从大众的角度看精英——中国精英的人才流失——教育特权化的社会意识——受过教育的精英脱离了大众,坠入了自我利益的深渊——大众不是完全在无理取闹
第四部分:知识精英的命运——超阶级性作为知识阶层的特质、知识阶层“设计社会”的使命——当今中国知识精英的阶级化危险——历史:新文化运动之后独立知识分子的悲剧——现实:中国知识精英可能会重复阶级化的悲剧
第五部分:社会极化的逻辑——精英的寡头化导致下层的民粹化——意识形态重新武装社会
第六部分:理想社会的期待——正常社会中精英与大众的制约关系——知识精英的最后防线——中国精英的普遍使命

正文始

2010年11月13日,就在清华大学即将迎来百年校庆之际,一把大火却没有任何预兆地降临在了这所学校的头上。该校历史最悠久、意义最重大的建筑——清华学堂,在这场大火中遭遇了重创。虽然在外观上看不出来主体结构有任何损坏,但是,当两眼蔚蓝色的天空透过空洞的窗棂呈现在我眼前的时候,我知道,里面的木结构材料早已经灰飞烟灭了。


阅读全文 »

测试一下我的生活如何

这是我做 Take the Rate My Life Quiz 的结果。

Life:
8.1

Mind:
7

Body:
7.6

Spirit:
8

Friends/Family:
5.9

Love:
6.9

Finance:
7.1

有兴趣的也可以去做做。

情繫母校活動打醬油的演講幻燈片

由於同學組織了情繫母校的活動,讓各個高校的學生介紹自己的學校,我就做了一個幻燈片介紹了一下。爲了兼容性,沒有採用傳統的PPT(我也買不起Office,其他軟件又有兼容性問題),採用了 PDF 格式,全屏播放,和 PPT 效果一樣。

也順便放到這裡,供大家使用。

鏈接在這裡。

组织学生迎宾是亟待革除的恶俗(转载)

组织学生迎宾是亟待革除的恶俗

肖雪慧

1月2日,湖南省常德市桃源县第五中组织学生列队站在雪地里迎宾。那天是气温仅-3℃-1℃的冰雪天。学生雪地站立等候一个多小时,官员才姗姗驾临,再作半个多小时报告,足足让学生在雪地呆了两小时之久。


图:-3℃-1℃的冰雪天,学生雪地站立等候姗姗来迟的官员,然后坐在满是冰渣的凳子上听官员作报告

如此场景的图片传到网上,引起轩然大波。零下几度的冰冻天气,即使穿得足够厚、即使身体强健的成年人,以静止状态在户外也受不住几分钟。而这些中学生在雪地长时间站立,活动结束,就有学生冻病了。


阅读全文 »

第 7 页,共 66 页12345678910111213...203040...最旧 »