我大概hack了所有题解……(真)

P1314 [NOIP2011 提高组] 聪明的质监员

一个真正的five @ 2019-10-24 21:03:49

HACK

#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv) 
{
    freopen("a.in","w",stdout);
    int n = 200000;
    int m = 200000;
    int s = 1;
    printf("%d %d %d\n",n,m,s);
    for(int i = 1;i <= 200000;i++)printf("%d %d\n",1,1000000);
    for(int j = 1;j <= 200000 - 1;j++)printf("%d %d\n",1,n);
    printf("%d %d",1,n); 
    return 0;
}

by 一个真正的five @ 2019-10-24 23:20:54

@万万没想到 我并没有卡高精度,只是可以用,其实只要加一次区间就和s判断,看大小,一个区间只有2乘以10的5次方乘10的6次方。并不会爆long long,但是有很多题解忽略了这个问题,直接全部加起来,还有我读题有什么问题吗,请指正我一定改。


by 一个真正的five @ 2019-10-24 23:25:34

对了,我指的是区间和,再乘以2×10的5次方同样也不会爆Long long。我又读了一遍题,我依旧认为这个数据属于题目要求范围。


by 万万没想到 @ 2019-10-25 19:15:22

@一个真正的five

你的这组数据的真实大小,首先是200000x1000000这是∑v[j]。

然后再x200000这是∑j。

然后需要再乘以200000,因为是Y1+Y2+Y3+...+Ym,均摊下来是这样的,所以爆longlong了


by 一个真正的five @ 2019-10-25 21:26:35

@万万没想到 我说了是加一个区间,就与s判断,因为abs(S减y)最大值不会超过s,所以当加的区间大于2 s时就返回,而且我知道我为什么可以hake掉他们的数据,我卡的就是这个,而你现在还说用这个算法,我不知道你有没有认真看我发给你的回复。


by 一个真正的five @ 2019-10-25 21:27:37

@万万没想到 如要继续讨论,可以跟我私信。


by 万万没想到 @ 2019-10-25 23:31:31

说的有理@一个真正的five 但CCF的数据水


by 人殇物已非 @ 2019-10-26 21:36:54

其实一年多前做这个题的时候我就发现最大范围可以卡死longlong,但是,既然noip没有把最大数据拿出来卡longlong,为什么要讲求一个高精或者别的什么操作去把这个极限数据搞定呢。虽然我也很肯定这种实事求是探究入微的态度,但是noip可以最大数据卡掉longlong的题不止这一个,还有很多......你要不要一起全hack了()


by 一个真正的five @ 2019-10-30 16:03:04

@人殇物已非 那是出题的问题,如果不用为什么要出呢?还有hack数据,是用来发现看似正确的方法的错误,避免以后再遇见类似的问题错,hack数据当然是越多越好,而且hack题解更好,避免误导他人,如还有问题,请私信。


by 不调和音 @ 2019-11-08 13:26:54

您就是传说中正义的伙伴吧


by yzc358230151 @ 2020-01-14 15:36:47

后排吃瓜

\   O O  O   /
 \   O  O   /
  \________/

上一页 | 下一页