2018-11-18-玄学

传送门:CodeForce
或者:VOJ
以下python代码是AC的:

#!/usr/bin/python3
mod = 2**64
while True :
    try :
        abcn = input().split()
        a = int(abcn[0])
        b = int(abcn[1])
        c = int(abcn[2])
        n = int(abcn[3])
        leng = 1
        if a==b and b==c :
            leng = 6
        elif a==b or b==c or c==a :
            leng = 2
        ans = 0
        if n%2 == 0 :
            ans = ( n * ( (n//2-1)*(n//2+2) + (n-2) ) // leng )
        else :
            ans = ( n * (n//2) * (n//2+1) // leng )
        print(ans%mod)
    except EOFError:
        break

以下C++代码是WA on test 9:

#include <iostream>

using namespace std;

int main()
{
    unsigned long long a ,b ,c ,n;
    cin>>a>>b>>c>>n;
    unsigned long long len=1;
    if(a==b&&b==c)
    {
        len=6;
    }
    else if(a==b||b==c||c==a)
    {
        len=2;
    }
    unsigned long long ans=0;
    if(n%2==0)
    {
        ans=(n*((n/2-1)*(n/2+2)+(n-2))/len);
    }
    else
        ans=(n*(n/2)*(n/2+1)/len);
    cout<<ans<<endl;
}

不科学啊,python代码是我根据C++代码改写而来,结果python过了,C++挂了。
我考虑过unsigned long long 的字节长度问题,输入类型问题,编译器问题,溢出问题,比较的时候的类型不同问题。还是不知道为什么啊。明明是一样的代码啊!
本机上8000组随机数,一通胡改,都没找到原因。


WA.png

上次写完博客一天之后就破案了,可是现在才来更新,我也太懒了。
经过与AC的C++代码的人肉diff,终于找到了原因。
首先python代码AC,C++代码WA,只能说明算法是正确的,代码错误出现在书写上。
python整数可以使用无限长度,C++整型却有固定长度。问题可能出现在这里。

ans=(n*((n/2-1)*(n/2+2)+(n-2))/len);
ans=(n*(n/2)*(n/2+1)/len);

事实上,问题出现在上面两行。原因各位看出来了吗,反正当时在场上的时候我是没有看出来的,回来了大眼瞪小眼的也没有看出来。回想起队友之一当时提到乘法逆元,我当时觉得不是,另一个队友也没有反应,没有支持。他自己也不确定,不坚持。确实,曾经有过他坚持提交最后AC的前例,只能说在场上的时候,自己不确定的就要征询队友意见,自己确信的就一定要坚持,这应该是一个队员应该做的吧。

好了,说了这么多,原因是:原本题目说对2**64取模,用unsign long long 是没有错的,错就错在模k系统的除法是需要使用乘法逆元的,当然,也可以使用很多个if-else判断提前相除。

因为这题错失ec-final。。。哭。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,835评论 6 13
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 8,966评论 0 13
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,335评论 0 17
  • 01 我奶奶家第一台冰箱还是老式的绿色的冰箱。跟现在的不以一样,当时市场流行的冰箱,上边是冷冻,下边是保鲜,冷冻的...
    萝莉禅猫阅读 316评论 0 2
  • 2017年,我的本命年,一直一个人,然后我却找不到自己。 为何我如此急躁, 很多人告诉我:你不小了该找个男朋友了,...
    困_兽阅读 366评论 0 0