i******r 发帖数: 793 | 1 第三题想到算法了
但是效率太低,超时了
资格赛都做不完,太伤了 |
p*****2 发帖数: 21240 | |
h**6 发帖数: 4160 | 3 就是带循环的周期,和前几年gcj的主题公园差不多。 |
g***3 发帖数: 2304 | 4 agree. 那次做主题公园的时候就没想到,超时后才想到。。。
【在 h**6 的大作中提到】 : 就是带循环的周期,和前几年gcj的主题公园差不多。
|
l*****a 发帖数: 14598 | 5 我都不参加
【在 i******r 的大作中提到】 : 第三题想到算法了 : 但是效率太低,超时了 : 资格赛都做不完,太伤了
|
s****n 发帖数: 48 | 6 我也超时了。有没有大牛好心贴一下答案,好让我知道自己的对不对。 |
p*****2 发帖数: 21240 | 7
我准备明天如果自己做对的话,把答案放到博客里。否则就不献丑了。
【在 s****n 的大作中提到】 : 我也超时了。有没有大牛好心贴一下答案,好让我知道自己的对不对。
|
f*******t 发帖数: 7549 | 8 超时是什么意思,不是自己上传答案吗?只要在自己的电脑上能跑,还怕什么 |
l*******b 发帖数: 2586 | 9 给下载数据,到上传数据6分钟.中间随自己随便折腾.大约是没自己给个测试数据先试下
【在 f*******t 的大作中提到】 : 超时是什么意思,不是自己上传答案吗?只要在自己的电脑上能跑,还怕什么
|
f*******t 发帖数: 7549 | 10 啊,这个我都是一遍过的,运气比较好
【在 l*******b 的大作中提到】 : 给下载数据,到上传数据6分钟.中间随自己随便折腾.大约是没自己给个测试数据先试下
|
|
|
l*******b 发帖数: 2586 | 11 拜一拜...我改了无数遍
【在 f*******t 的大作中提到】 : 啊,这个我都是一遍过的,运气比较好
|
f*******t 发帖数: 7549 | 12 前两题暴力算法很容易写,不太会出bug。第三题我想一整天后终于想到了最优解,编
程倒是很简单,一遍过没啥稀奇的
【在 l*******b 的大作中提到】 : 拜一拜...我改了无数遍
|
p*****2 发帖数: 21240 | 13
很牛呀。你CF做到什么程度了?
【在 f*******t 的大作中提到】 : 前两题暴力算法很容易写,不太会出bug。第三题我想一整天后终于想到了最优解,编 : 程倒是很简单,一遍过没啥稀奇的
|
f*******t 发帖数: 7549 | 14 我一年前也没怎么做过呀
【在 p*****2 的大作中提到】 : : 很牛呀。你CF做到什么程度了?
|
f********4 发帖数: 988 | 15 第三题到底是什么意思,我就没看明白,它给的例子我没算出和它一样的答案就没继续
做了。汗。。 |
Y********f 发帖数: 410 | 16 怎么知道有没有超时呢?
贴一下俺的,抛砖引玉
int processOneCase(int n, int k, int a, int b, int c, int r)
{
// first k element,
// if a element < k, but it appear in later position,
//put all these emement but last element INT_MAX
vector vect(k, INT_MAX);
// whether a [0,k) show in the above vector
vector bitMap(k+1, 0);
// used for duplicate element for vect
map posMap;
for (int i = 0; i < k; i++)
{
int value = (i == 0) ? a : (b * (long long)vect[i-1] + c) % r;
vect[i] = value;
if (value < k)
{
if (bitMap[vect[i]] == 1)
{
int pos = posMap[vect[i]];
vect[pos] = INT_MAX;
}
posMap[vect[i]] = i;
bitMap[vect[i]] = 1;
}
}
// the following k+1 element
vector seq(k+1, 0);
int pos = 0;
for (int i = 0; i < seq.size(); i++)
{
if (i > 0 && vect[i-1] <= pos)
{
seq[i] = vect[i-1];
}
else
{
if (i > 0 && vect[i-1] < k)
{
bitMap[vect[i-1]] = 0;
}
while(bitMap[pos])
{
pos++;
}
seq[i] = pos++;
}
}
return seq[n % (k + 1)];
}
【在 s****n 的大作中提到】 : 我也超时了。有没有大牛好心贴一下答案,好让我知道自己的对不对。
|