从Codechef长征比赛中获得ANUGCD的WA
Getting WA in ANUGCD from Codechef March Long Contest
我在Codechef March Long Contest中的问题GCD条件中得到WA。
请告诉我我做错了什么,或者一些测试用例,代码产生错误的答案。
链接的问题
我已经使用RMQ(范围最大查询)为每个素数
for(i=0;i<limit;i++)
{
int sz=b[i].size();
if(!sz)continue;
int level=0;
cc[i].resize(sz);
for(j=0;j<sz;j++)cc[i][j].push_back(b[i][j]);//level 0
for(level=1;(1<<level)<=sz;level++)
{
for(j=0;j+(1<<level)<=sz;j++)
{
int c1=cc[i][j][level-1];
int c2=cc[i][j+(1<<(level-1))][level-1];
int mx=(a[c1]<a[c2])?c2:c1;
cc[i][j].push_back(mx);
}
}
}
首先,我将
转换为如下结构:-
输入示例:- 10 6 20 15 8
(b[i]->存储i的因子索引)
b[2] -> 1、2、3、5
b[3]——> 2、4
b [5] -> 1, 3, 4
现在实现RMQ后,它将如下:-
(cc[i][j][k]存储b[i][j]和b[i][j+(2^k)-1]之间最大元素的索引)
cc [2] [0] -> 1, 2, 3, 5
cc[2][1]——> 1,3,3
cc [2] [2] -> 3
cc [3] [0] -> 2, 4
cc[3][1]——> 4
cc[5][0] -> 1、3、4
cc [5] [1] -> 3
代码
100 1
88 33 97年56 23日54 8 74 43 95 91 63 38 13 7 7 52 29日6 85 70 15 52 18 78 9 85 51 28 43 68 75 78 75 23 32 34 48 74 28 90 36 66 95 24 54 23 29 90 45 96 93 99 75 81 93 73 2 31 100 19 8 75 93 39 60 41 64 88 30 100 89 84 46 28 20 56 22 78 75 64 75 76 2 8 20 32 7 38 39 33 82 93
95 95 97
输出是-1 -1,但是gcd(38,95) = 19,所以ans应该是 381 。
第75行用'continue'代替'break'给出AC:)
- 为什么我在代码厨师的 CMPRSS 问题中得到 WA(错误答案)?
- 我已经通过了该问题的所有测试用例,甚至是Udebugg上的所有测试用例,并且仍然在UVA在线法官上获得了WA裁决
- 带地图的解决方案给了空调,unordered_map的解决方案给了WA.为什么
- 为什么我在SPOJ上为Buglife获得WA
- SPOJ GSS1 WA - Segment tree
- 当我试图提交mkbudge-spoj时获得WA
- Getting WA for SPOJ smpseq
- 给出WA的简单算术(ARITH)
- 为什么我在Codechef的褪色回文中得到一个WA,即使我在我的代码中没有发现任何错误,它对我来说工作得很好
- 3n+1 uVa gives WA
- 从Codechef长征比赛中获得ANUGCD的WA
- 在SPOJ INCSEQ -递增子序列中获取WA