360笔试求解答,我怀疑测试数据有问题

严重怀疑360笔试题样例有问题
编程题第二题题目说明N为偶数,但是后台测试数据是否有N为奇数的情况?
求相关人士解答。
N为偶数的情况下就是找规律,我过了91%,感觉代码没错,加了个特判如果N为奇数的情况下写个死循环,错误状态就从WA变成TLE(同样是91%case)。
贴上代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    if(n%2){
        while(1){}      //没有这一行是WA,有这一行是TLE
    }
    int a=1,b=2;
    bool now=1;
    int x;
    while(m--){
        cin>>x;
        if(x==1){
            if(now)a+=2;
            else b+=2;
        }
        now=!now;
    }
    for(int i=1;i<=n;i++){
        if(i!=1)cout<<" ";
        if((i+now+1)&1){
            a=a%n?a%n:n;
            cout<<a;
            a+=2;
        }else{
            b=b%n?b%n:n;
            cout<<b;
            b+=2;
        }
    }
    cout<<endl;
}


#360公司##笔试题目#
全部评论
我也感觉数据有问题。。。也是91%。。 做法是两个数组分别存奇数和偶数。用一个变量存从哪个数组开始交替输出,默认从奇数数组开始。如果操作数是2,就把标记移到另一个数组上。操作数是一的话就把标记数组移位,然后改变标记指向另一个数组。 逻辑这么简单,想不到哪里会出错啊。我都改成Long存了还是91%
5 回复 分享
发布于 2020-08-22 20:56
垃圾,笔试系统崩溃
2 回复 分享
发布于 2020-08-22 20:55
我和你一样,虽然解题方法不一样,但是也是只能过 91- -
2 回复 分享
发布于 2020-08-22 20:27
直接蹦了
1 回复 分享
发布于 2020-08-22 20:56
赛码崩了
1 回复 分享
发布于 2020-08-22 20:56
不能交卷了,网址有问题了嘛
1 回复 分享
发布于 2020-08-22 20:54
第二题我用vector + 一点优化技巧可以 73,deque 55,挺玄学的。感觉应该是有规律的,不止是压缩这么简单 (以上都是屁话,这数据绝逼有问题)
1 回复 分享
发布于 2020-08-22 20:51
同91%怀疑数据有问题
1 回复 分享
发布于 2020-08-22 20:47
https://paste.ubuntu.com/p/xkYqQH4V9w/ 回复以上,我第一题的代码
1 回复 分享
发布于 2020-08-22 20:40
兄弟我问下第一题用正则表达式的话需要做啥特殊处理吗,我写了只过了9%😂
点赞 回复 分享
发布于 2020-08-22 20:20
**,我的咋是非技术综合卷?我投的开发
点赞 回复 分享
发布于 2020-08-23 11:36
我的也是91,代码 https://www.nowcoder.com/discuss/485956?source_id=profile_create&channel=1009
点赞 回复 分享
发布于 2020-08-22 23:23
91不想改了,**笔试,选择题恶心人
点赞 回复 分享
发布于 2020-08-22 22:54
我是用双端队列写得,但是没全AC
点赞 回复 分享
发布于 2020-08-22 22:52
同91,奇偶分开模拟就行了,O(n)应该也不会超时啊
点赞 回复 分享
发布于 2020-08-22 22:39
请问你,这是什么思路,,能大概讲一下吗,输出的判断看不懂呀。大佬!
点赞 回复 分享
发布于 2020-08-22 21:45
思路感觉没错,相邻的 1 会合并为一个操作,相邻的 2 如果偶数个不操作,奇数个变一下,但还是超时, 45%     N, M = [int(_) for _ in sys.stdin.readline().strip().split()]     t_ls = [int(_) for _ in sys.stdin.readline().strip().split()]     P = [str(_) for _ in range(1, N+1)]     i = 0     while i < M:         if t_ls[i] == 1:             count = 0             while i < M and t_ls[i] == 1:                 count += 1                 i += 1             count = count % N             if count != 0:                 P = P[count:] + P[:count]         else:             count = 0             while i < M and t_ls[i] == 2:                 count += 1                 i += 1             if count % 2 == 1:                 for j in range(0, N, 2):                     P[j], P[j+1] = P[j+1], P[j]     print(" ".join(P))
点赞 回复 分享
发布于 2020-08-22 21:31
没看懂你的解答,能稍微解释一下吗?😑
点赞 回复 分享
发布于 2020-08-22 21:18
恶心到我了,这赛码
点赞 回复 分享
发布于 2020-08-22 21:05
好不容易写出来  崩掉了
点赞 回复 分享
发布于 2020-08-22 21:00

相关推荐

05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
实习,投递多份简历没人回...
点赞 评论 收藏
分享
评论
5
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务