Gravatar
helloworld123
积分:774
提交:1187 / 2211
ha

Gravatar
甘罗
积分:2310
提交:645 / 1261
回复 @常可神牛 :
多谢常神牛的题解

Gravatar
HouJikan
积分:1854
提交:596 / 1973
手怎么这么贱。。。自己把方程推出来了能打错3次。。

Gravatar
rpCardinal
积分:752
提交:268 / 711
PBDS大法好,只要35行即可AC。

Gravatar
清羽
积分:824
提交:197 / 786
回复 @Nil : 现在,要求你计算出和为素数共有多少种。他说的应该是“加起来是素数的情况有多少种”吧,而不是“加起来的素数有多少种”

题目 50 [NOIP 2002]选数
2015-02-10 08:54:36
Gravatar
albertxwz
积分:247
提交:76 / 258
初始化很重要,,跪了。。

Gravatar
Asm.Def
积分:1014
提交:240 / 495
回复 @cstring :
卧槽槽槽槽……忘了忘了……不要在意,我马上写= =
Update: spj已加入……我会说这题的spj比原题写着还麻烦?- - http://paste.ubuntu.com/10104855/

Gravatar
hjt
积分:251
提交:84 / 261
感觉测试数据和题目不符啊。。

Gravatar
JSX
积分:1211
提交:508 / 975
感觉整个人都被反演了 #.#

题目 1908 [WC 2014]时空穿梭
2015-02-07 06:05:24
Gravatar
cjk
积分:135
提交:22 / 95
一道好题,两种解法

题目 279 龙凡
2015-02-07 01:02:29
Gravatar
mikumikumi
积分:4120
提交:830 / 1893
张灵犀你弱爆了

题目 474 集合
2015-02-06 19:21:24
Gravatar
ztx
积分:2207
提交:758 / 1351
泪流满面

Gravatar
albertxwz
积分:247
提交:76 / 258
C++中的STL库完全可以秒掉。。。
MAP+QUEUE+STRING

Gravatar
ChangeMC
积分:12
提交:4 / 13
代码很简单,也就18行...

Gravatar
evd
积分:174
提交:55 / 163
看起来挺难,弄明白题意后就非常简单了。其实就是在找一个元素的最终位置,如果该位置上没有其它元素,直接移过去;如果有其它元素,再对其进行相同的操作,或者将其移动到不会被占用的内存块上,直到所有元素都到达自己最终的位置。

题目 1222 磁盘碎片整理
2015-02-05 15:34:25
Gravatar
Asm.Def
积分:1014
提交:240 / 495
咦?好奇怪啊……为什么筛F(n)的时候对素数定义$F(p) = mod + 1 - p$会挂但是定义成$F(p) = 1 - p$最后再判断正负就是对的?= =
呃我写一下推导过程吧,练练$\LaTeX{}$ ……
\begin{align}
Ans = & \sum_{a=1}^N \sum_{b=1}^M lcm(a, b) \\
=& \sum_{d=1}^{ \min(N, M)} \sum_{i=1}^{\lfloor {N/d} \rfloor} \sum_{j=1}^{\lfloor {M/d} \rfloor } [\gcd(i, j) = 1] i j d\\
= &\sum_{d=1}^{ \min(N, M)} \sum_{i=1}^{\lfloor {N/d} \rfloor} \sum_{j=1}^{\lfloor {M/d} \rfloor } \sum_{t | i \land t | j} \mu (t) i j d\\
考虑直接枚举t*d,&用i*d,j*d,\frac{td}{t}分别替换i, j, d;\\
Ans =& \sum_{td=1}^{ \min(N, M)} td \sum_{t | td} \mu (t) t \sum_{i=1}^{\lfloor {N/td} \rfloor } \sum_{j=1}^{\lfloor {M/td} \rfloor } i j \\
设F(n) = &\sum_{t | n} \mu (t) t ;\\
则Ans = & \sum_{td=1}^{ \min(N, M)} td F(td) \sum_{i=1}^{\lfloor {N/td} \rfloor } \sum_{j=1}^{\lfloor {M/td} \rfloor } i j
\end{align}
再来看F函数:
先直接用定义证明F是积性函数,然后直接套欧拉筛法:

F[1] = 1;
for(int i = 2;i <= Min;++i){
if(!notp[i])prime[cnt++] = i, F[i] = 1 - i;
for(int j = 0;j < cnt;++j){
int t = i * prime[j];
if(t > Min)break;
notp[t] = true;
if(i % prime[j] == 0){//miu(i * prime[j]) == 0
F[t] = F[i];
break;
}
F[t] = (LL)F[i] * F[prime[j]] % mod;
}
}

Gravatar
albertxwz
积分:247
提交:76 / 258
水到了这种地步,我也是醉了呀。。。看来NOIP(第一题)已经堕落了;;;;;

Gravatar
Asm.Def
积分:1014
提交:240 / 495
回复 @cstring :
是一种论文排版的工具

Gravatar
天一阁
积分:1723
提交:544 / 1314
表示根本不会。。。。。

Gravatar
天一阁
积分:1723
提交:544 / 1314
回复 @Asm.Def :
LATEX是什么。。。。